на главную
об игре
S.T.A.L.K.E.R.: Call of Pripyat
01.10.2009
Правка скрипта
Комментарии: 9
сначала
лучшие
Ваш комментарий
вот полные скрипты, потому как я хз, может упустил что
Оригинал
Мои исправления
Cheeki_Breeki
Лучше имена функций
jup_forazot_actor_has_2000
и
jup_forazot_actor_hasnt_2000
не менять, может они еще где используются.
KPOT1987
VETER15
спасибо за помощь
KPOT1987
да вроде не должны. попробую потом не менять.
Cheeki_Breeki
Предоставленные файлы очень сильно различаются.
Что-то где-то ты с файлами напутал, из-за этого и ошибки.
KPOT1987
хмм, возможно с разных версий мода скинул... вылет происходит же именно при разговоре, а точнее, на ветке диалога с функцией передачи денег.
Cheeki_Breeki
не в той кодировке сохранял, либо сумма энная
В общем, есть скрипт в диалоге на выдачу денег ГГ азоту, меняю сумму и происходит вылет без лога. Подозреваю, что помимо суммы нужно было редактировать что-то еще, только вот что ? Поможет кто на примере оригинального скрипта ?
Вот оригинальный
function jup_azot_by_sborka1 (first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor (first_speaker, second_speaker, "grenade_rgd5", 2)
end
function jup_azot_by_sborka11 (first_speaker, second_speaker)
local amount = 2000
dialogs.relocate_money_from_actor (first_speaker, second_speaker, amount)
dialogs.relocate_item_section_to_actor (first_speaker, second_speaker, "grenade_rgd5_double")
end
function jup_forazot_actor_has_2000(first_speaker, second_speaker)
return db.actor:money() >= 2000
end
function jup_forazot_actor_hasnt_2000(first_speaker, second_speaker)
return db.actor:money() < 2000
end
function jup_forazot_actor_has_grsborkatype1 (first_speaker, second_speaker)
local cnt = 0
local function zat_b30_count(npc, item)
--printf("item:section: %s", item:section())
if item:section() == "grenade_rgd5" then
cnt = cnt + 1
end
end
db.actor:iterate_inventory(zat_b30_count, nil)
if cnt > 1 then
return true
end
return false
end
function jup_forazot_actor_hasnt_ grsborkatype1(first_speaker, second_speaker)
local cnt = 0
local function zat_b30_count(npc, item)
--printf("item:section: %s", item:section())
if item:section() == "grenade_rgd5" then
cnt = cnt + 1
end
end
db.actor:iterate_inventory(zat_b30_count, nil)
if cnt > 1 then
return false
end
return true
end
А вот что я наисправлял
function jup_azot_by_sborka1 (first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor (first_speaker, second_speaker, "grenade_rgd5", 2)
end
function jup_azot_by_sborka11 (first_speaker, second_speaker)
local amount = 300
dialogs.relocate_money_from_actor (first_speaker, second_speaker, amount)
dialogs.relocate_item_section_to_actor (first_speaker, second_speaker, "grenade_rgd5_double")
end
function jup_forazot_actor_has_300 (first_speaker, second_speaker)
return db.actor:money() >= 300
end
function jup_forazot_actor_hasnt_300 (first_speaker, second_speaker)
return db.actor:money() < 300
end
function jup_forazot_actor_has_grsborkatype1 (first_speaker, second_speaker)
local cnt = 0
local function zat_b30_count(npc, item)
--printf("item:section: %s", item:section())
if item:section() == "grenade_rgd5" then
cnt = cnt + 1
end
end
db.actor:iterate_inventory(zat_b30_count, nil)
if cnt > 1 then
return true
end
return false
end
function jup_forazot_actor_hasnt_grsborkatype1 (first_speaker, second_speaker)
local cnt = 0
local function zat_b30_count(npc, item)
--printf("item:section: %s", item:section())
if item:section() == "grenade_rgd5" then
cnt = cnt + 1
end
end
db.actor:iterate_inventory(zat_b30_count, nil)
if cnt > 1 then
return false
end
return true
end
Заранее спасибо.