Skocz do zawartości

Zabranie pieniędzy ze zwłok [SoC]


Gość Diegtiariow

Rekomendowane odpowiedzi

Gość Diegtiariow

NAZWA: Zabranie pieniędzy ze zwłok [SoC]
AUTOR: RETRIX

 

POTRZEBNE PLIKI:

Spoiler
  • gamedata/scripts/treasure_manager.script
  • gamedata/scripts/lootmoney.script (NOWY PLIK)

 

OPERACJE NA PLIKACH:

Spoiler

Znajdujemy w rozpakowanym katalogu gamedata plik w ścieżce gamedata/scripts/treasure_manager.script.

W pliku treasure_manager.script znajdujemy następującą konstrukcję kodu:

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

Po linii TREASURE USE piszemy następujący kod:

if (npc and db.actor) then
lootmoney.lootmoney(npc)
end

W efekcie wykonanej pracy otrzymujemy w pliku treasure_manager.script następującą konstrukcję:

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

if (npc and db.actor) then
lootmoney.lootmoney(npc)
end

Teraz w katalogu z grą względem ścieżki gamedata/scripts tworzymy nowy dokument tekstowy lootmoney.txt. Otwieramy plik za pomocą notatnika lub innego edytora tekstu i zapisujemy go jako lootmoney.script z kodowaniem ANSI. Możesz wziąć gotowy skrypt LUA, wyczyścić go i zmienić jego nazwę. To ma niewielkie znaczenie.

W pliku gamedata/scripts/lootmoney.script piszemy taki kod:

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]Martwy stalker: %c[default]"..npc:character_name().."\\n%c[255,255,0,0]Znaleziono pieniądze: %c[default]"..game.translate_string(tostring(deadmoney).."rub.")
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

Teraz wystarczy zapisać i zamknąć pliki. Sposób powinien zadziałać. Podczas przeszukiwania zwłok stalkerów automatycznie pobierana jest określona suma pieniędzy, podobnie jak otrzymuje się informacje o schowkach i artykułach w encyklopedii.

Struktura tego ficzera została wzięta z LootMoney MOD.

 

ŹRÓDŁO:

https://ap-pro.ru/forums/topic/1583-soc-snyatie-deneg-s-trupov/

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z tej strony, zgadzasz się na nasze Warunki użytkowania.