SoC. Снятие денег с трупов — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
VanStal (обсуждение | вклад) (Отмена правки 9747 участника 196.25.255.214 (обсуждение)) |
VanStal (обсуждение | вклад) (Отмена правки 9746 участника 87.216.219.52 (обсуждение)) |
||
| Строка 1: | Строка 1: | ||
| − | + | В этой теме я напишу как сделать так что бы можно было снимать деньги с трупов. | |
| + | Нам надо файл treasure_manager.script | ||
| + | В этом файле находим такие строки | ||
| + | |||
| + | <pre>--' Юзание инициатора (возможность выдать тайник) | ||
| + | function CTreasure:use(npc) | ||
| + | printf("TREASURE USE") | ||
| + | После строки --printf("TREASURE USE")-- пишем | ||
| + | |||
| + | if (npc and db.actor) then | ||
| + | lootmoney.lootmoney(npc) | ||
| + | end | ||
| + | </pre> | ||
| + | У нас должно выйти | ||
| + | <pre>--' Юзание инициатора (возможность выдать тайник) | ||
| + | function CTreasure:use(npc) | ||
| + | printf("TREASURE USE") | ||
| + | |||
| + | if (npc and db.actor) then | ||
| + | lootmoney.lootmoney(npc) | ||
| + | end | ||
| + | </pre> | ||
| + | Теперь создаём файл lootmoney.script | ||
| + | и в нём пишем | ||
| + | |||
| + | <pre>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 | ||
| + | </pre> | ||
| + | [[Категория:Скрипты]] | ||
Версия 05:35, 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