SoC. Снятие денег с трупов — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

SoC. Снятие денег с трупов — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
(Отмена правки 9176 участника 146.101.133.37 (обсуждение))
м (tags)
 
(не показаны 11 промежуточные версии 7 участников)
Строка 1: Строка 1:
 +
Нам понадобится файл ''''treasure_manager.script''''.
  
 +
В этом файле находим такие строки:
 +
 +
<lua>
 +
--' Юзание инициатора (возможность выдать тайник)
 +
function CTreasure:use(npc)
 +
printf("TREASURE USE")
 +
После строки --printf("TREASURE USE")-- пишем
 +
 +
if (npc and db.actor) then
 +
lootmoney.lootmoney(npc)
 +
end
 +
</lua>
 +
 +
У нас должно выйти
 +
 +
<lua>
 +
--' Юзание инициатора (возможность выдать тайник)
 +
function CTreasure:use(npc)
 +
printf("TREASURE USE")
 +
 +
if (npc and db.actor) then
 +
lootmoney.lootmoney(npc)
 +
end
 +
</lua>
 +
 +
Теперь создаём файл '''lootmoney.script''' и в нём пишем
 +
 +
<lua>
 +
function lootmoney(npc)
 +
if npc ~= nil and not string.find(npc:section(),"arena") and npc:character_community()~="arena_enemy" then
 +
local money = npc:money()
 +
if money ~= nil and money ~=0 then
 +
local deadmoney = money
 +
 +
                                local npc_rank
 +
npc_rank = ranks.get_obj_rank_name(npc)
 +
if npc_rank ~= nil then
 +
if npc_rank == "novice" and deadmoney >=400 then deadmoney=math.random(25,400)   
 +
elseif npc_rank == "experienced" and deadmoney >=500 then deadmoney=math.random(50,500) 
 +
elseif npc_rank == "veteran" and deadmoney >=600 then deadmoney=math.random(100,600)
 +
elseif npc_rank == "master" and deadmoney >=700 then deadmoney=math.random(200,700) 
 +
                          end
 +
  end
 +
local news_texti = "\\n%c[255,255,0,0]Мёртвый сталкер: %c[default]"..npc:character_name().."\\n%c[255,255,0,0]Обнаружено денег: %c[default]"..game.translate_string(tostring(deadmoney).."руб.")
 +
db.actor:give_game_news(news_texti, "ui\\ui_iconsTotal", Frect():set(0,0,83,47), 1, 4000)
 +
db.actor:give_money(deadmoney)
 +
game_stats.money_quest_update(deadmoney)
 +
npc:give_money(-money)
 +
game_stats.money_quest_update(-money)
 +
end
 +
end
 +
end
 +
</lua>
 +
 +
[[Категория:Скрипты]]

Текущая версия на 07:09, 2 апреля 2011

Нам понадобится файл 'treasure_manager.script'.

В этом файле находим такие строки:

 
--' Юзание инициатора (возможность выдать тайник)
function CTreasure:use(npc)
	printf("TREASURE USE")
После строки --printf("TREASURE USE")-- пишем
 
	if (npc and db.actor) then
		lootmoney.lootmoney(npc)
	end
 

У нас должно выйти

 
--' Юзание инициатора (возможность выдать тайник)
function CTreasure:use(npc)
	printf("TREASURE USE")
 
	if (npc and db.actor) then
		lootmoney.lootmoney(npc)
	end
 

Теперь создаём файл lootmoney.script и в нём пишем

 
function lootmoney(npc)
	if npc ~= nil and not string.find(npc:section(),"arena") and npc:character_community()~="arena_enemy" then
		local money = npc:money()
		if money ~= nil and money ~=0 then
				local deadmoney = money
 
                                local npc_rank
		npc_rank = ranks.get_obj_rank_name(npc)
		if npc_rank ~= nil then
			if npc_rank == "novice" and deadmoney >=400 then deadmoney=math.random(25,400)    
			elseif npc_rank == "experienced" and deadmoney >=500 then deadmoney=math.random(50,500)  
			elseif npc_rank == "veteran" and deadmoney >=600 then deadmoney=math.random(100,600) 
			elseif npc_rank == "master" and deadmoney >=700 then deadmoney=math.random(200,700)  
                          end
						  end
				local news_texti = "\\n%c[255,255,0,0]Мёртвый сталкер: %c[default]"..npc:character_name().."\\n%c[255,255,0,0]Обнаружено денег: %c[default]"..game.translate_string(tostring(deadmoney).."руб.")
				db.actor:give_game_news(news_texti, "ui\\ui_iconsTotal", Frect():set(0,0,83,47), 1, 4000)
				db.actor:give_money(deadmoney)
				game_stats.money_quest_update(deadmoney) 
				npc:give_money(-money)
				game_stats.money_quest_update(-money)
			end
		end
	end
 
Другие места
LANGUAGE