SoC. Снятие денег с трупов — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Deathdoor (обсуждение | вклад) (Отмена правки 9176 участника 146.101.133.37 (обсуждение)) |
RedPython (обсуждение | вклад) м (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