Перейти к контенту

Сообщество Мапперов


Министр

Рекомендуемые сообщения

Народ я хочу добавить гурппировку на болото а как я не знаю... если на стандартные есть charcter_desc... то на балота нет, обьясните где найти что бы NPC прописать на болото группировку чистое небо добавил и костюмы такие же как и в чистом небе... плиз помагите!

Поделиться этим сообщением


Ссылка на сообщение

народ удалите переходы в деревне новичков, плз!!!

и скинте потом all.spawn

так как game.graph не влияет, как я понял, а то у меня редактор ща не работает, плз сделай мне и я буду очень благодарен!!!

Поделиться этим сообщением


Ссылка на сообщение

да уберите плз переходы на кардоне в деревни новичков, я с all.spawn плохо лажу, плз!!! умоляю, мне это надо срочно.

Строгое предупреждение от модератора n6260
Тебя учили просить вежливо? И соблюдай орфографию.

Поделиться этим сообщением


Ссылка на сообщение

народ дайте мне acdc на патч 1.0004 для тч

что бы убрать переходы из деревни новичков.

 

Поделиться этим сообщением


Ссылка на сообщение

а можете достать мапу Темная Лощина, каторая стоит межу кардоном и Темной Долине

Поделиться этим сообщением


Ссылка на сообщение

Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

Line : 73

Description : <no expression>

Arguments : LUA error: ...ory of snipers\gamedata\scripts\escape_dialog.script:6: attempt to index field 'pstor' (a nil value)

 

Помогите узнать проблему?

Знаю что проблемма с файлом escape_dialog.script

и именно с каким тегом тоже знаю, но что нужно поставить? я не знаю. плз! помогите!

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Вылетает при первом разговоре с сидоровичем, как заканчиваю.

--------------------------------------------------------------------------------------------------------
-- Trader Factions - ABC Mod by Speed aka Cabrobro.
--------------------------------------------------------------------------------------------------------

function wish_pre(trader, actor)
   if db.storage[db.actor:id()].pstor["wish_zombied"] == "yes" then
        return true 
    else
        return false
    end
end
function wish_pre_money(trader, actor)
   if db.actor:money() >= 15000 then return true end
return false
end
function wish_give_med(trader, actor)
   db.storage[db.actor:id()].pstor["wish_zombied"] = "no"
   db.storage[db.actor:id()].pstor["count_zombie "] = 0
   db.actor:set_character_community("actor", 0, 0)
   dialogs.relocate_money(actor, 15000, "out")
   level.remove_pp_effector (1986)
   level.remove_pp_effector (1987)
   level.add_pp_effector ("deadcity_wake1.ppe", 1976, false)
   dialogs.break_dialog(trader, actor)
end

function factions_repair_checkduty_r(trader, actor)
   if relation_registry.community_goodwill ("dolg", db.actor:id ()) < 0 then
        local chkgoodwill = relation_registry.community_goodwill("dolg",  db.actor:id())
        if chkgoodwill > -100 and db.actor:money() >= 5000 then return true end
        if chkgoodwill < -100 and chkgoodwill >= -1000 and db.actor:money() >= 10000 then return true end
        if chkgoodwill < -1000 and db.actor:money() >= 25000 then return true end
   end
return false
end

function factions_repair_checkduty_j(trader, actor)
local whatami = db.actor:character_community()
   if (relation_registry.community_goodwill ("dolg", db.actor:id()) >= 0) and (db.actor:money() >= 50000) and (whatami ~= "actor_dolg") and (whatami == "actor") then return true
   else return false
   end
end

function factions_repair_checkfree_r(trader, actor)
   if relation_registry.community_goodwill ("freedom", db.actor:id()) < 0 then
        local chkgoodwill = relation_registry.community_goodwill("dolg",  db.actor:id())
        if chkgoodwill > -100 and db.actor:money() >= 5000 then return true end
        if chkgoodwill < -100 and chkgoodwill >= -1000 and  db.actor:money() >= 10000 then return true end
        if chkgoodwill < -1000 and db.actor:money() >= 25000 then return true end
   else return false
   end
return false
end

function factions_repair_checkfree_j(trader, actor)
local whatami = db.actor:character_community()
   if (relation_registry.community_goodwill ("freedom", db.actor:id()) >= 0) and (db.actor:money() >= 50000) and (whatami ~= "actor_freedom") and (whatami == "actor") then return true
   else return false
   end
end

function factions_repair_checkstalker_r(trader, actor)
    local whatami = db.actor:character_community()
    local gulag = xr_gulag.get_gulag_by_name ("esc_lager")
    if (gulag) then
        if (gulag:npc_is_enemy_to_anybody(db.actor)) and (db.actor:money() >= 5000) and (whatami ~= "monolith") and (whatami ~= "bandit") and (whatami ~= "military") and (whatami ~= "killer") then
           return true
        end
    end
    return false
end

function factions_repair_checkstalker(first_speaker, second_speaker)
    local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
    local item_name_and_price = ""
    local howmuch = 5000
    local gulag = xr_gulag.get_gulag_by_name ("esc_lager")
    if (gulag) then
        if gulag:npc_is_enemy_to_anybody(db.actor) and db.actor:money() >= 5000 then
            item_name_and_price = game.translate_string("list_factions_repair_4").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
            db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
        end
    end
end

function factions_repair_setstalker_r(trader, actor)
    local howmuch = 5000
    local gulag = xr_gulag.get_gulag_by_name ("esc_lager")
    if (gulag) then
        if gulag:npc_is_enemy_to_anybody(db.actor) and db.actor:money() >= 5000 then
            local chkgoodwill = relation_registry.community_goodwill("stalker",  db.actor:id())
            xr_gulag.setGulagRelation ("esc_lager", game_object.neutral, db.actor)    
            relation_registry.set_community_goodwill ("stalker", db.actor:id(), 0)    
            dialogs.relocate_money(actor, howmuch, "out")
        end
    end
end

function factions_repair_checkduty(first_speaker, second_speaker)
    local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
    local item_name_and_price = ""
    local howmuch = 0
    if db.actor ~= nil then 
      if relation_registry.community_goodwill ("dolg", db.actor:id()) < 0 then
        local chkgoodwill = relation_registry.community_goodwill("dolg",  db.actor:id())
        if chkgoodwill > -100 and db.actor:money() >= 5000 then howmuch = 5000     end
        if chkgoodwill < -100 and chkgoodwill >= -1000 and db.actor:money() >= 10000 then howmuch = 10000 end
        if chkgoodwill < -1000 and db.actor:money() >= 25000 then howmuch = 25000 end
        item_name_and_price = game.translate_string("list_factions_repair_0").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
        db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
      elseif (relation_registry.community_goodwill ("dolg", db.actor:id()) >= 0) and (db.actor:money() >= 50000) then
        howmuch = 50000
        item_name_and_price = game.translate_string("list_factions_repair_1").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
        db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
      end
    end
end

function factions_repair_checkfree(first_speaker, second_speaker)
    local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
    local item_name_and_price = ""
    local howmuch = 0
  if db.actor ~= nil then 
   if relation_registry.community_goodwill ("freedom", db.actor:id()) < 0 then
        local chkgoodwill = relation_registry.community_goodwill("freedom",  db.actor:id ())
        if chkgoodwill > -100 and db.actor:money() >= 5000 then howmuch = 5000 end
        if chkgoodwill < -100 and chkgoodwill >= -1000 and db.actor:money() >= 10000 then howmuch = 10000 end
        if chkgoodwill < -1000 and  db.actor:money() >= 25000 then howmuch = 25000 end
        item_name_and_price = game.translate_string("list_factions_repair_2").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
        db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
    elseif (relation_registry.community_goodwill ("freedom", db.actor:id()) >= 0) and (db.actor:money() >= 50000) then
        howmuch = 50000
        item_name_and_price = game.translate_string("list_factions_repair_3").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
        db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
    end
  end
end

function factions_repair_setduty_r(trader, actor)
    local howmuch = 0
    if db.actor ~= nil then 
        local chkgoodwill = relation_registry.community_goodwill("dolg",  db.actor:id())
        if chkgoodwill > -100 and db.actor:money() >= 5000 then howmuch = 5000 end
        if chkgoodwill < -100 and chkgoodwill >= -1000 and db.actor:money() >= 10000 then howmuch = 10000 end
        if chkgoodwill < -1000 and  db.actor:money() >= 25000 then howmuch = 25000 end
        dialogs.relocate_money(actor, howmuch, "out")
        relation_registry.set_community_goodwill ("dolg", db.actor:id(), 0)
    end
end

function factions_repair_setduty_j(trader, actor)
    if db.actor ~= nil then 
        dialogs.relocate_money(actor, 50000, "out")
        db.actor:set_character_community("actor_dolg", 0, 0)
        local chkgoodwill = relation_registry.community_goodwill("dolg",  db.actor:id())
        if chkgoodwill > 0 then 
            chkgoodwill = chkgoodwill + 200
            relation_registry.set_community_goodwill ("dolg", db.actor:id(), chkgoodwill)
        else
            relation_registry.set_community_goodwill ("dolg", db.actor:id (), 200)
        end
    end
end

function factions_repair_setfree_r(trader, actor)
    local howmuch = 0
    if db.actor ~= nil then 
        local chkgoodwill = relation_registry.community_goodwill("freedom",  db.actor:id())
        if chkgoodwill > -100 and db.actor:money() >= 5000 then howmuch = 5000 end
        if chkgoodwill < -100 and chkgoodwill >= -1000 and db.actor:money() >= 10000 then howmuch = 10000 end
        if chkgoodwill < -1000 and  db.actor:money() >= 25000 then howmuch = 25000 end
        dialogs.relocate_money(actor, howmuch, "out")
        relation_registry.set_community_goodwill ("dolg", db.actor:id(), 0)
    end
end

function factions_repair_setfree_j(trader, actor)
    if db.actor ~= nil then 
        dialogs.relocate_money(actor, 50000, "out")
        db.actor:set_character_community("actor_freedom", 0, 0)
        local chkgoodwill = relation_registry.community_goodwill("freedom",  db.actor:id())
        if chkgoodwill > 0 then 
            chkgoodwill = chkgoodwill + 200
            relation_registry.set_community_goodwill ("freedom", db.actor:id(), chkgoodwill)
        else
            relation_registry.set_community_goodwill ("freedom", db.actor:id(), 200)
        end
    end
end

function factions_repair_checkmon_j(trader, actor)
   local whatami = db.actor:character_community()
   local playhitemb = db.actor:object("h_2")
   local freep = db.storage[db.actor:id()].pstor["freepplay"]    
   if (freep == "yes" or playhitemb ~= nil or db.joinfactions == "yes") and (db.actor:money() >= 50000) and (whatami ~= "monolith") and (whatami == "actor") then return true
   else return false
   end
end

function factions_repair_checkmonolith(first_speaker, second_speaker)
    local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
    local item_name_and_price = ""
    local howmuch = 50000
        if  db.actor:money() >= 50000 then
            item_name_and_price = game.translate_string("list_factions_repair_5").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
            db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
        end
end

function factions_repair_setmon_j(trader, actor)
    if db.actor ~= nil then 
        dialogs.relocate_money(actor, 50000, "out")
        db.actor:set_character_community("monolith", 0, 0)
        local chkgoodwill = relation_registry.community_goodwill("monolith",  db.actor:id())
        if chkgoodwill > 0 then 
            chkgoodwill = chkgoodwill + 200
            relation_registry.set_community_goodwill ("monolith", db.actor:id(), chkgoodwill)
        else
            relation_registry.set_community_goodwill ("monolith", db.actor:id(), 200)
        end
    end
end

function factions_repair_bandit_j(trader, actor)
   local whatami = db.actor:character_community()
   local playhitemb = db.actor:object("h_2")
   local freep = db.storage[db.actor:id()].pstor["freepplay"]    
   if (freep == "yes" or playhitemb ~= nil or db.joinfactions == "yes") and (db.actor:money() >= 10000) and (whatami ~= "bandit") and (whatami == "actor") then return true
   else return false
   end
end

function factions_repair_checkbandit(first_speaker, second_speaker)
    local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
    local item_name_and_price = ""
    local howmuch = 10000
        if  db.actor:money() >= 10000 then
            item_name_and_price = game.translate_string("list_factions_repair_7").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
            db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
        end
end

function factions_repair_setbandit_j(trader, actor)
    if db.actor ~= nil then 
        dialogs.relocate_money(actor, 10000, "out")
        db.actor:set_character_community("bandit", 0, 0)
        local chkgoodwill = relation_registry.community_goodwill("bandit",  db.actor:id())
        if chkgoodwill > 0 then 
            chkgoodwill = chkgoodwill + 200
            relation_registry.set_community_goodwill ("bandit", db.actor:id(), chkgoodwill)
        else
            relation_registry.set_community_goodwill ("bandit", db.actor:id(), 200)
        end
    end
end


function factions_repair_mil_j(trader, actor)
   local whatami = db.actor:character_community()
   local playhitemb = db.actor:object("h_2")
   local freep = db.storage[db.actor:id()].pstor["freepplay"]    
   if (freep == "yes" or playhitemb ~= nil or db.joinfactions == "yes") and (db.actor:money() >= 40000) and (whatami ~= "military") and (whatami == "actor") then return true
   else return false
   end
end

function factions_repair_checkmil(first_speaker, second_speaker)
    local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
    local item_name_and_price = ""
    local howmuch = 40000
        if  db.actor:money() >= 40000 then
            item_name_and_price = game.translate_string("list_factions_repair_6").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
            db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
        end
end

function factions_repair_setmil_j(trader, actor)
    if db.actor ~= nil then 
        dialogs.relocate_money(actor, 40000, "out")
        db.actor:set_character_community("military", 0, 0)
        local chkgoodwill = relation_registry.community_goodwill("military",  db.actor:id())
        if chkgoodwill > 0 then 
            chkgoodwill = chkgoodwill + 200
            relation_registry.set_community_goodwill ("military", db.actor:id(), chkgoodwill)
        else
            relation_registry.set_community_goodwill ("military", db.actor:id(), 200)
        end
    end
end


function factions_repair_kill_j(trader, actor)
   local whatami = db.actor:character_community()
   local playhitemb = db.actor:object("h_2")
   local freep = db.storage[db.actor:id()].pstor["freepplay"]    
   if (freep == "yes" or playhitemb ~= nil or db.joinfactions == "yes") and (db.actor:money() >= 30000) and (whatami ~= "killer") and (whatami == "actor") then return true
   else return false
   end
end

function factions_repair_checkkill(first_speaker, second_speaker)
    local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
    local item_name_and_price = ""
    local howmuch = 30000
        if  db.actor:money() >= 30000 then
            item_name_and_price = game.translate_string("list_factions_repair_8").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
            db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
        end
end

function factions_repair_setkill_j(trader, actor)
    if db.actor ~= nil then 
        dialogs.relocate_money(actor, 30000, "out")
        db.actor:set_character_community("killer", 0, 0)
        local chkgoodwill = relation_registry.community_goodwill("military",  db.actor:id())
        if chkgoodwill > 0 then 
            chkgoodwill = chkgoodwill + 200
            relation_registry.set_community_goodwill ("killer", db.actor:id(), chkgoodwill)
        else
            relation_registry.set_community_goodwill ("killer", db.actor:id(), 200)
        end
    end
end


function factions_repair_eco_j(trader, actor)
   local whatami = db.actor:character_community()
   if (db.actor:money() >= 50000) and (whatami ~= "ecolog") and (whatami == "actor") then return true
   else return false
   end
end

function factions_repair_checkeco(first_speaker, second_speaker)
    local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
    local item_name_and_price = ""
    local howmuch = 50000
        if  db.actor:money() >= 50000 then
            item_name_and_price = game.translate_string("list_factions_repair_10").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
            db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
        end
end

function factions_repair_seteco_j(trader, actor)
    if db.actor ~= nil then 
        dialogs.relocate_money(actor, 50000, "out")
        db.actor:set_character_community("ecolog", 0, 0)
        local chkgoodwill = relation_registry.community_goodwill("ecolog",  db.actor:id())
        if chkgoodwill > 0 then 
            chkgoodwill = chkgoodwill + 200
            relation_registry.set_community_goodwill ("ecolog", db.actor:id(), chkgoodwill)
        else
            relation_registry.set_community_goodwill ("ecolog", db.actor:id(), 200)
        end
    end
end



function factions_repair_quit_j(trader, actor)
   local whatami = db.actor:character_community()
   if (whatami == "actor_dolg") or (whatami == "actor_freedom") or (whatami == "monolith") or (whatami == "bandit") or (whatami == "military") or (whatami == "killer") or (whatami == "ecolog") then
       if (db.actor:money() >= 10000) then return true end
   end
   return false
end

function factions_repair_checkquit(first_speaker, second_speaker)
    local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
    local item_name_and_price = ""
    local howmuch = 10000
        if  db.actor:money() >= 10000 then
            item_name_and_price = game.translate_string("list_factions_repair_9").." %c[255,238,155,23]"..howmuch.."Ru%c[default]"
            db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
        end
end

function factions_repair_setquit_j(trader, actor)
    if db.actor ~= nil then 
        dialogs.relocate_money(actor, 10000, "out")
        db.actor:set_character_community("actor", 0, 0)
    end
end


--------------------------------------------------------------------------------------------------------
-- Trader Repair by Shebuka, edited by Speed aka Cabrobro.
--------------------------------------------------------------------------------------------------------

local weapon_profit_margin = 1.5
local armor_profit_margin = 1.4
local weapon_cond = 0.90
local suit_cond = 0.90

function trader_repair_precond(trader, actor)
    local item_in_slot_1 = db.actor:item_in_slot(1)
    local item_in_slot_2 = db.actor:item_in_slot(2)
    local item_in_slot_6 = db.actor:item_in_slot(6)
    if item_in_slot_1 ~= nil and weapon_cond > item_in_slot_1:condition() + 0.01 then return true
    elseif item_in_slot_2 ~= nil and weapon_cond > item_in_slot_2:condition() + 0.01 then return true
    elseif item_in_slot_6 ~= nil and suit_cond > item_in_slot_6:condition() + 0.01 then return true
    else return false
    end     
end

function trader_check_money_s1(trader, actor)
    local item_in_slot = db.actor:item_in_slot(1)
    if item_in_slot ~= nil then 
        local item_repair_cost = math.floor( (1-item_in_slot:condition()) * item_in_slot:cost() * weapon_profit_margin )
        if item_repair_cost > 0 and db.actor:money() >= item_repair_cost and (weapon_cond - 0.01) > item_in_slot:condition() then
            return true
        end 
    end
    return false
end

function trader_check_money_s2(trader, actor)
    local item_in_slot = db.actor:item_in_slot(2)
    if item_in_slot ~= nil then 
        local item_repair_cost = math.floor( (1-item_in_slot:condition()) * item_in_slot:cost() * weapon_profit_margin )
        if item_repair_cost > 0 and db.actor:money() >= item_repair_cost and (weapon_cond - 0.01) > item_in_slot:condition() then
            return true
        end 
    end
    return false
end

function trader_check_money_s6(trader, actor)
    local item_in_slot = db.actor:item_in_slot(6)
    if item_in_slot ~= nil then 
        local item_repair_cost = math.floor( (1-item_in_slot:condition()) * item_in_slot:cost() * armor_profit_margin )
        if item_repair_cost > 0 and db.actor:money() >= item_repair_cost and (suit_cond - 0.01) > item_in_slot:condition() then
            return true
        end 
    end
    return false
end

function trader_repiar_weapon_s1(trader, actor)
   weapon_profit_margin = 1.5
   armor_profit_margin = 1.4
   weapon_cond = 0.90
   suit_cond = 0.90
   if actor:name() == "esc_cabrobro" then
    weapon_profit_margin = 1.0
    armor_profit_margin = 1.1
    weapon_cond = 0.96
    suit_cond = 0.96
   end
    local item_in_slot = db.actor:item_in_slot(1)
    if item_in_slot ~= nil then
        local item_repair_cost = math.floor( (1-item_in_slot:condition()) * item_in_slot:cost() * weapon_profit_margin )
        item_in_slot:set_condition(weapon_cond)
        db.storage[db.actor:id()].pstor[item_in_slot:id().."_repair"] = "trader"
        dialogs.relocate_money(actor, item_repair_cost, "out")
    end
end

function trader_repiar_weapon_s2(trader, actor)
   weapon_profit_margin = 1.5
   armor_profit_margin = 1.4
   weapon_cond = 0.90
   suit_cond = 0.90
   if actor:name() == "esc_cabrobro" then
    weapon_profit_margin = 1.0
    armor_profit_margin = 1.1
    weapon_cond = 0.96
    suit_cond = 0.96
   end
    local item_in_slot = db.actor:item_in_slot(2)
    if item_in_slot ~= nil then
        local item_repair_cost = math.floor( (1-item_in_slot:condition()) * item_in_slot:cost() * weapon_profit_margin )
        item_in_slot:set_condition(weapon_cond)
        db.storage[db.actor:id()].pstor[item_in_slot:id().."_repair"] = "trader"
        dialogs.relocate_money(actor, item_repair_cost, "out")
    end
end

function trader_repiar_armor_s6(trader, actor)
   weapon_profit_margin = 1.5
   armor_profit_margin = 1.4
   weapon_cond = 0.90
   suit_cond = 0.90
   if actor:name() == "esc_cabrobro" then
    weapon_profit_margin = 1.0
    armor_profit_margin = 1.1
    weapon_cond = 0.96
    suit_cond = 0.96
   end
    local item_in_slot = db.actor:item_in_slot(6)
    if item_in_slot ~= nil then
        local suitsc
        if db.storage[db.actor:id()].pstor[item_in_slot:id().."_helmet"] == "off" then suitsc = 0.2 else suitsc = 0 end
        local item_repair_cost = math.floor( (1-item_in_slot:condition()) * item_in_slot:cost() * armor_profit_margin )
        item_in_slot:set_condition(suit_cond - suitsc)
        db.storage[db.actor:id()].pstor[item_in_slot:id().."_repair"] = "trader"
        dialogs.relocate_money(actor, item_repair_cost, "out")
    end    
end

function repair_costs(first_speaker, second_speaker)
    local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
   weapon_profit_margin = 1.5
   armor_profit_margin = 1.4
   weapon_cond = 0.90
   suit_cond = 0.90
   if first_speaker:name() == "esc_cabrobro" then
    weapon_profit_margin = 1.0
    armor_profit_margin = 1.1
    weapon_cond = 0.96
    suit_cond = 0.96
   end
    
    local item_name_and_price = ""
    local item_repair_cost = 0
    if db.actor ~= nil then 
        local item_in_slot_1 = db.actor:item_in_slot(1)
        local item_in_slot_2 = db.actor:item_in_slot(2)
        local item_in_slot_6 = db.actor:item_in_slot(6)
    
        if item_in_slot_1 ~= nil then 
            item_repair_cost = math.floor( (1-item_in_slot_1:condition()) * item_in_slot_1:cost() * weapon_profit_margin )
            if item_repair_cost > 0 and (weapon_cond - 0.01) > item_in_slot_1:condition() then
                item_name_and_price = game.translate_string("list_trader_repair_0").." %c[255,238,155,23]"..item_repair_cost.."Ru%c[default]"
                db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
            end
        end
        if item_in_slot_2 ~= nil then
            item_repair_cost = math.floor( (1-item_in_slot_2:condition()) * item_in_slot_2:cost() * weapon_profit_margin )
            if item_repair_cost > 0 and (weapon_cond - 0.01) > item_in_slot_2:condition() then
                item_name_and_price = game.translate_string("list_trader_repair_1").." %c[255,238,155,23]"..item_repair_cost.."Ru%c[default]"
                db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
            end
        end
        if item_in_slot_6 ~= nil then
            item_repair_cost = math.floor( (1-item_in_slot_6:condition()) * item_in_slot_6:cost() * armor_profit_margin )
            if item_repair_cost > 0 and (suit_cond - 0.01) > item_in_slot_6:condition() then
                item_name_and_price = game.translate_string("list_trader_repair_2").." %c[255,238,155,23]"..item_repair_cost.."Ru%c[default]"
                db.actor:give_talk_message(item_name_and_price, task_texture, task_rect, "iconed_trade_info")
            end
        end
    end
end


--------------------------------------------------------------------------------------------------------
-- Dialog & InfoPortions Function
--------------------------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------------------------
-- Trader
--------------------------------------------------------------------------------------------------------
function trader_alredy_give_job(trader, actor)
    if (has_alife_info("agroprom_military_case") and not has_alife_info("agroprom_military_case_done")) or
       (has_alife_info("escape_blockpost_case") and not has_alife_info("escape_blockpost_case_done")) or
       (has_alife_info("tutorial_artefact_start") and not has_alife_info("tutorial_artefact_done")) or
       (has_alife_info("tutorial_wounded_start") and not has_alife_info("esc_serious_talk"))
    then
        return true
    end
    return false 
end

function trader_give_extra_job(trader, actor)
    local actor = db.actor
    if has_alife_info("escape_blockpost_case") and not has_alife_info("escape_blockpost_case_done")
    then
        return true
    end
    return false
end

function bandits_die(actor,npc)
    local actor = db.actor
    if has_alife_info("esc_kill_bandits_quest_kill") and not has_alife_info("esc_kill_bandits_noquest_kill")
    then
        return true
    end
    return false
end

function trader_need_extra_job(trader, actor)
    if not has_alife_info("escape_blockpost_case") and 
        has_alife_info("esc_return")
    then
        return true
    end
    return false
end

function is_tutorial()
    return not has_alife_info("tutorial_end")
end

function is_not_tutorial()
    return has_alife_info("tutorial_end")
end

function is_not_tutorial_art(actor, trader)
    local tutorial_artefact = db.actor:object("af_blood_tutorial")
    if (has_alife_info("tutorial_artefact_start") and not has_alife_info("tutorial_artefact_done")
        and  tutorial_artefact ~= nil) or has_alife_info("tutorial_artefact_done")
    then
        return true
    end
    return false
end

function not_final_job(trader, actor)
    local actor = db.actor
    return not has_alife_info("escape_blockpost_case_done")
end

function trader_test(actor, npc)
    printf ("!!!!!")    
    return true
end



function trader_dont_give_job(first_speaker, second_speaker)
    return not trader_alredy_give_job(first_speaker, second_speaker)
end

function finalize_quests(first_speaker, second_speaker)
    if tutorial_artefact_end(first_speaker, second_speaker) == true or
       tutorial_wounded_end(first_speaker, second_speaker) == true
    then
        return true
    end
    return false
end

function not_finalize_quests(first_speaker, second_speaker)
    return not this.finalize_quests(first_speaker, second_speaker)    
end

function tutorial_artefact_end(first_speaker, second_speaker)
    local actor = db.actor
    local tutorial_artefact = first_speaker:object("af_blood_tutorial")
    if has_alife_info("tutorial_artefact_start") and 
       not has_alife_info("tutorial_artefact_done") and
       tutorial_artefact ~= nil
    then
        return true
    end
    return false
end

function tutorial_artefact_have_not(first_speaker, second_speaker)
    local actor = db.actor
    local tutorial_artefact = first_speaker:object("af_blood_tutorial")
    if has_alife_info("tutorial_artefact_start") and 
       not has_alife_info("tutorial_artefact_done") and
       tutorial_artefact == nil
    then
        return true
    end
    return false
end

function tutorial_wounded_end(first_speaker, second_speaker)
    local actor = db.actor
    -- local wounded_flash = first_speaker:object("esc_wounded_flash")
    if has_alife_info("tutorial_wounded_start")    and 
        has_alife_info("tutorial_wounded_give_info")    and     
       not has_alife_info("esc_serious_talk")
-- and   wounded_flash ~= nil
    then
        return true
    end
    return false
end

function trader_dont_has_job(first_speaker, second_speaker)
    if trader_need_military_case(first_speaker, second_speaker) == false and
       trader_need_blockpost_box(first_speaker, second_speaker) == false
    then
        return true
    end
    return false
end


--' Escape tutorial artefact
function have_tutorial_artefact(first_speaker, second_speaker)
      return first_speaker:object("af_blood_tutorial") ~= nil
end
function give_medkit(first_speaker, second_speaker)
    dialogs.relocate_item_section(first_speaker, "medkit", "in")
end
function give_tutorial_artefact(first_speaker, second_speaker)
    dialogs.relocate_item_section(second_speaker, "af_blood_tutorial", "out")
end


--' Meet fox
function have_fox_info(first_speaker, second_speaker)
      return first_speaker:object("fox_flash") ~= nil
end

--' fox help

function transfer_medikit_to_fox (player, wounded)
    wounded:set_relation(game_object.friend, player)
    db.actor:give_info_portion("escape_fox_heal")
end

function give_weapon_to_actor (trader, actor)
    dialogs.relocate_item_section(trader, "wpn_usp", "in")
    dialogs.relocate_item_section(trader, "ammo_11.43x23_fmj", "in")
    dialogs.relocate_item_section(trader, "ammo_11.43x23_fmj", "in")
    dialogs.relocate_item_section(trader, "ammo_11.43x23_fmj", "in")
    dialogs.relocate_item_section(trader, "ammo_11.43x23_fmj", "in")
    dialogs.relocate_item_section(trader, "wpn_knife", "in")
    dialogs.relocate_item_section(trader, "antirad", "in")
    dialogs.relocate_item_section(trader, "bandage", "in")

end


--' Escape blockpost box
function have_blockpost_case(first_speaker, second_speaker)
      return first_speaker:object("quest_case_01") ~= nil
end


function give_blockpost_case(first_speaker, second_speaker)
    dialogs.relocate_item_section(second_speaker, "quest_case_01", "out")
end

function give_blockpost_case_reward(first_speaker, second_speaker)
    dialogs.relocate_money(first_speaker, 2000, "in")
end

--' Agroprom military case
function trader_need_military_case(first_speaker, second_speaker)
    if has_alife_info("esc_serious_talk") and
       not has_alife_info("agroprom_military_case")
    then
        return true
    end
    return false
end

--' Escape trader artefact
function have_artefact_from_fleshes(first_speaker, second_speaker)
    local actor = db.actor
    if actor ~= nil and
       (actor:object("af_vyvert") ~= nil or
       actor:object("af_gravi") ~= nil or
       actor:object("af_gold_fish") ~= nil)
    then
        return true
    end
      return false
end


--' Ящик с блокпоста
function trader_need_blockpost_box(first_speaker, second_speaker)
    if has_alife_info("tutorial_end") and
       has_alife_info("esc_trader_speak") and
       not has_alife_info("escape_blockpost_case")
    then
        return true
    end
    return false
end

--' tutorial wounded in vagon
function wounded_need_help(first_speaker, second_speaker)
    local actor = db.actor
    return actor ~= nil and not has_alife_info( "tutorial_wounded_help" )
end

--' trader needs military documents
function trader_need_military_document(first_speaker, second_speaker)
    if has_alife_info("escape_blockpost_case_done") and
       not has_alife_info("agroprom_military_case")
    then
        return true
    end
    return false
end

--' trader dialog about docs from labx18
function actor_has_documents (actor, npc)
    if actor:object("dar_document4") then
        return true
    else
        return false
    end
end

--' Escape dynamite for Wolf
function transfer_wolf_reward(first_speaker, second_speaker)
    dialogs.relocate_item_section(actor, "af_medusa", "in")
    dialogs.relocate_item_section(actor, "ammo_9x19_fmj", "in")
    dialogs.relocate_item_section(actor, "ammo_9x19_fmj", "in")
    dialogs.relocate_item_section(actor, "medkit_scientic", "in")
            -- alterei logf("spawing mutants wolf 2nd talk")
            local bloodvilla = vector():set( -201.74, -15.31, -161.78 )
            alife():create("chimera_weak", bloodvilla, db.actor:level_vertex_id() , db.actor:game_vertex_id() )
            fracunderbridge = vector():set( -201.74, -15.31, -161.78 ) 
            alife():create("chimera_weak", fracunderbridge, db.actor:level_vertex_id() , db.actor:game_vertex_id() )
            local snorkvilla = vector():set( -163.81, -18.28, -128.66 )
            alife():create("cat_weak", snorkvilla, db.actor:level_vertex_id() , db.actor:game_vertex_id() )
            local snorkvilla = vector():set( -201.74, -15.31, -161.78 )
            alife():create("cat_weak", snorkvilla, db.actor:level_vertex_id() , db.actor:game_vertex_id() )
            local snorkbridge = vector():set( 28.65, 2.90, 26.77 )
            alife():create("cat_weak", snorkbridge, db.actor:level_vertex_id() , db.actor:game_vertex_id() )
            local nmsp = vector():set( 10, 10, 20 )
            nmsp.x = nmsp.x + 10
            alife():create("tushkano_normal", nmsp, db.actor:level_vertex_id() , db.actor:game_vertex_id() )
            alife():create("tushkano_normal", nmsp, db.actor:level_vertex_id() , db.actor:game_vertex_id() )
            alife():create("tushkano_normal", nmsp, db.actor:level_vertex_id() , db.actor:game_vertex_id() )
            alife():create("tushkano_normal", nmsp, db.actor:level_vertex_id() , db.actor:game_vertex_id() )
            local nmsp = vector():set( -15.43, 3.93, 56.08 )
            alife():create("gigant_strong", nmsp, db.actor:level_vertex_id(), db.actor:game_vertex_id())
end

function wolf_additional_reward(first_speaker, second_speaker)
    dialogs.relocate_item_section(first_speaker, "medkit", "in")
    dialogs.relocate_item_section(first_speaker, "bandage", "in")
    dialogs.relocate_item_section(first_speaker, "wpn_fort", "in")
    dialogs.relocate_item_section(first_speaker, "grenade_f1", "in") 
    dialogs.relocate_item_section(first_speaker, "ammo_9x18_fmj", "in")    
end


--' Escape Wounded's flash
function wounded_give_flash(first_speaker, second_speaker)
    dialogs.relocate_item_section(first_speaker, "esc_wounded_flash", "in")
end

function have_wounded_flash(first_speaker, second_speaker)
      return first_speaker:object("esc_wounded_flash") ~= nil
end
function dont_have_wounded_flash(first_speaker, second_speaker)
      return not have_wounded_flash(first_speaker, second_speaker)
end

function give_wounded_flash(first_speaker, second_speaker)
    dialogs.relocate_item_section(second_speaker, "esc_wounded_flash", "out")
    dialogs.relocate_money(second_speaker, 1500, "in")
end

function give_knife_to_actor(first_speaker, second_speaker)
    dialogs.relocate_item_section(first_speaker, "wpn_knife", "in")
end

--' Escape bandits factory
function give_factory_reward_trader(first_speaker, second_speaker)
    dialogs.relocate_money(first_speaker, 500, "in")
end

--' Give X-18 documents read

function give_documents_reward (first_speaker, second_speaker)
    dialogs.relocate_money(first_speaker, 1000, "in")
end


--' Kill killers raid
function give_reward_killers(first_speaker, second_speaker)
    dialogs.relocate_money(first_speaker, 2500, "in")
end


--' Soldiers on bridge
function has_soldiers_bribe(actor, npc)
    return actor:money() >= 500
end

function give_soldiers_bribe(actor, npc)
    dialogs.relocate_money(npc, 500, "out")    
end

function fox_pay_money(actor, npc)
    dialogs.relocate_money(npc, 1500, "in")    
    treasure_manager.get_treasure_manager():give_treasure("esc_secret_truck_goods")
end

function run_tutorial_pda(first_speaker, second_speaker)
    printf("!-!-!")
    first_speaker:stop_talk()
    second_speaker:stop_talk()
    game.start_tutorial("part_1_pda")
end

function wolf_precond_univ (actor, npc)
    return has_alife_info("esc_kill_bandits_quest_done") or (has_alife_info("tutorial_wounded_give_info") and not has_alife_info("esc_kill_bandits_quest_have"))
end

 

 

И ёще вопрос добавлял группировку, но вылетает при синхронизации

Expression : e_entity

Function : xrServer::Process_event_reject

File : E:\stalker\patch_1_0004\xr_3da\xrGame\xrServer_process_event_reject.cpp

Line : 12

Description : entity not found. id_parent=1917 id_entity=1918 frame=17140

 

 

Изменено пользователем Руслан

Поделиться этим сообщением


Ссылка на сообщение

народ как настроить карту в ПДА?

что бы карты качественно отображались, а не друг на друге?

Поделиться этим сообщением


Ссылка на сообщение

Народ у кого нибудь есть карта Темный Кордон для Сталкер Чистое Небо или Зов Припяти (думаю разницы почти нету)

Поделиться этим сообщением


Ссылка на сообщение

zoidberg123456789, можно и из билда :)

щас интересует статься для настройки переходов в ЗП.

 

Дай те пожалуйста ссылку на статью подключение локации к Сталкер Зов Припяти

(настройка переходов)

 

Поделиться этим сообщением


Ссылка на сообщение

Народ при декомпиляции all.spawn вылетает ошибка:

unknown af_armor_1 at acdccop.pl line 2782

 

как понимаю что то в acdccop.pl

 

Помогите плз!

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Шип спасибо! видимо автор того мода вообще стока хрени надбавлял, что даже распаковать нормально нельзя :)

Ща буду так дальше делать! спс

 

Благодарности в ЛС.

 

все вроде сделал, теперь там пишит

data left in и тут всякие файлы.

доходит до последнего и зависает и ничего не просиходит.

 

Скрин выложи, гадать тут никто не будет.

Изменено пользователем Cyclone

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

555e94216e13t.jpg

Что делать? как исправить?

Декомпилировал all.spawn

 

ACDCCOP

 

Call of Pripyat

Изменено пользователем Руслан

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Народ не знаете ли есть карта Бар, и Росток отдельно?

(Для COP)

 

Добавлено через 38 мин.:

Прощу кто нить помогите сделать ACDC COP

для Dead City Mod

http://narod.ru/disk/14962910001/all.spawn.html

 

Версия игры: 1.6.01

Call of Pripyat

Изменено пользователем Руслан

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

Народ кто неть перенисите мне Бар и Завод Росток в ЗП!

пожалуйста, если надо могу заплотить даже.

 

Строгое предупреждение от модератора Cyclone
Запрещено оставлять повторные сообщения. Занесение в шкалу.
Изменено пользователем Cyclone

Поделиться этим сообщением


Ссылка на сообщение

Народ дай те пожалуйста все текстуры от бара и дикой территории.

Желательно текстуры гор/холмов каторые в баре есть.

Плз, кинь те в ЛС или тут.

Буду блогодарен очень.

Поделиться этим сообщением


Ссылка на сообщение

Я партировал уровень бара прошло все успешно.

Щас портировал 3 раза Дикую Территорию и при переходе на нее вылет.

Expression : !object->used_ai_locations() || ai().level_graph().valid_vertex_id(object->m_tNodeID)

Function : CALifeSwitchManager::add_online

File : D:\prog_repository\sources\trunk\xrGame\alife_switch_manager.cpp

Line : 64

Description : Invalid vertex for object

Arguments :

 

Координаты брал из ТЧ.

Кро game_vertex и level_vertex.

все делал по статье http://sdk.stalker-game.com/ru/index.php?t...0%9C%D0%9A_Team

 

http://narod.ru/disk/15326310001/all.spawn.html

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...