Все посты %s в %S - AMK Team
Перейти к контенту

[CoP] Ковыряемся в файлах


Halford

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

Думаю это будет что-то вроде этого

function item(task, objective)
if db.actor ~= nil then
return db.actor:object("wpn_pm") ~= nil then
db.actor:give_info_portion("actor_has_item")
end

Но тогда возникает вопрос, куда вставить вызов функции?(думаю в диалог не прокатит)

P.S. Предыдущий пост отредактировать не смог

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

Гм... Вылазит зелёный жучок и ругается вот с таким логом

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:1270: attempt to index local 'obj' (a nil value)

 

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

Опять вылет :o

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ...рипяти\gamedata\scripts\smart_terrain_control.script:65: attempt to index field 'actor' (a nil value)

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

Если лог указывает на smart_terrain_control.script это ещё не значит что именно в нем я правил.

Просто скрипты связаны между собой и ошибка в одном может привести к эффекту домино

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

Так и не пойму в чем проблема :dash3:

Вот как у меня

В моем скрипте

function actor_has_pda()
if db.actor:object(a) ~= nil then
if a == "pda_bandit_tech" and not db.actor:has_info("actor_has_pda") then
db.actor:give_info_portion("actor_has_pda")
end
end
end

pda_bandit_tech-это pda, который я ввёл в игру и с ним проблем не было

 

В bind_stalker.script

function actor_binder:update(delta)
    object_binder.update(self, delta)
.................................................
...................................................
new_quests.actor_has_pda
end

Изменено пользователем psevdoгринго

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

Вообщето там написано если у актора

есть предмет и нет инфопоршня,

то тогда выдать ему этот инфопоршень.

это делается для того, чтоб игроку не выдавался несколько раз один и тот же инфопоршень

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

Не помогает. Тут не в этом дело, собака зарыта где-то здесь

if db.actor:object(a) ~= nil then

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

Всем спасибо за помощь :) Но у меня ещё один вопрос - Нужно сделать непися, враждебного к ГГ,

независимо от отношения группировки непися к ГГ. Пробовал сам поковыряться в логике, но не получилось :(

Сообщение от модератора Halford
Используй set_relation. Например:
function become_friend(first_speaker, second_speaker)
    first_speaker:set_relation(game_object.friend, second_speaker)
end

Если нужно сделать врагом - то game_object.enemy, нейтралом - game_object.neutral

 

Помогите! Сделал свой броник, начинаю новую игру с ним и вылет

Ну вообщето ты нам написал не лог ошибки. Лог ошибки это всё то что идёт после строки FATAL ERROR. И выложи файлы своего броника.

Сообщение от модератора Halford
Это вылет. Ток "без лога"...

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


Ссылка на сообщение
Используй set_relation. Например:

function become_friend(first_speaker, second_speaker)

first_speaker:set_relation(game_object.friend, second_speaker)

end

Если нужно сделать врагом - то game_object.enemy, нейтралом - game_object.neutral

Происходит вылет :(

Expression : !m_error_code

Function : raii_guard::~raii_guard

File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

Line : 748

Description : ....r. - Зов Припяти\gamedata\scripts\new_quests.script:202: attempt to index local 'first_speaker' (a nil value)

 

Вызов функции добавлял в bind_stalker.actor_binder:update(delta)

 

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

ktytxrf , посмотри в теме "Уроки по модостроению" там было про создание апгрейдов.

mrak13 ищи в папке textures/act

 

Опять возник вопрос. Мне раньше никогда не приходилось спавнить что-то в инвентарь NPC. Так что возникли некоторые проблемы. Конечно, можно было просто добавить предмет неписю через его профиль, но тогда надо начинать новую игру. Вот я решил сделать для этого скрипт. Вот такой

function spawn_killers_pda()
    local npc
    npc = "zat_b103_lost_merc_leader" -------Тесак- наёмник на подстанции--------
    alife():create("killers_pda", npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id())
end

Но игра всё время вылетает. пробовал по разному писать функцию но игра ругается что якобы не может вызвать метод position

Изменено пользователем psevdoгринго

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

Ну например в alife_zaton.ltx вставляешь вот такую вот хреновину

[1866]

; cse_abstract properties

section_name = level_changer

name = zaton_level_changer_0001

position = 133.4,-7.04,190.17 ;--координаты левл чанджера

direction = 0,0,0

cse_abstract__unk1_h16 = 0x1

 

; cse_alife_object properties

game_vertex_id = 296

distance = 65

level_vertex_id = 1194668

object_flags = 0xffffff3e

 

; cse_shape properties

shapes = shape0

shape0:type = box

shape0:axis_x = 8.25219917297363,0,0

shape0:axis_y = 0,3.09340000152588,0

shape0:axis_z = 0,0,8.25219917297363

shape0:offset = 0,0,0

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

; cse_alife_level_changer properties

dest_game_vertex_id = 666

dest_level_vertex_id = 437980

dest_position = 211.057,4.54,-19.411 ;--коордтнаты выхода из левл чанджера

dest_direction = 0,0,0

dest_level_name = pripyat

dest_graph_point = pripyat_lc_graph_point

silent_mode = 1

 

; se_level_changer properties

 

Начинаешь новую игру, заходишь на Скадовск и вуаля - ты в Припяти

Изменено пользователем psevdoгринго

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

Блин, вылетает. И при обоих способах один и тот же лог

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : No such operator defined

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


Ссылка на сообщение
Сразу не обратил внимание, но в строчке:

alife():create("killers_pda", npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id())

зачем там npc:id()?

Оставь без него:

alife():create("killers_pda", npc:position(), npc:level_vertex_id(), npc:game_vertex_id())

Опять вылет. Нет, тут что-то не то

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

ktytxrf

Надо менять quest_item = true на false

 

Код

function spawn_killers_pda()

local id, npc

name = "zat_b103_lost_merc_leader"

id = name.id

npc = level.object_by_id(id)

alife():create("killers_pda", npc.position, npc.m_game_vertex_id, npc.m_level_vertex_id, npc.id)

end

 

Блин, не спавниться

Изменено пользователем psevdoгринго

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

Мужики, вы меня конечно извините... Но у меня опять проблема.

Делал переходы между локациями через скрипт, всё было нормально пока не пришлось их отметить в КПК. Пробовал отмечат как в ТЧ

local sim = alife()
if sim then
local obj = sim:story_object(960)
    if obj then
        level.map_add_object_spot(obj.id, "level_changer_up", "На Затон")
    end

Пробовал как в ЧН

local sim = alife()
    if sim then
        local obj = sim:story_object(960)
        set_lchanger_mapspot(obj, "level_changer_up", "На Затон")
end

функцию set_lchanger_mapspot ессно взял из ЧН.

Ну так вот ни один из этих способов не даёт эффекта, т.е. значок в КПК так и не появляется :(

Пробовал вставлять вот такое в функцию инициализации level_changer'а

level.map_add_object_spot(obj.id, "level_changer_up", "На Затон")

Тогда всё появляется, но когда переходишь на другую локацию- исчезает :shok:

В общем помогите чем можете...

Ладно, другого выхода как нарисовать нет...

Изменено пользователем psevdoгринго

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

кровоSTALKER, вот

function actor_have_item(first_speaker, second_speaker)
        local item_sections = {"your_item"} 
        local needed = 20 --тут пишешь скока предметов
        local count = 0
        local item_section
    local function calc(temp, item)
        if item:section() == item_section then
        count = count + 1
end
end
    for k,v in pairs(item_sections) do
    item_section = v
    get_story_object("actor"):iterate_inventory(calc, actor)
end
    return count >= needed
end

Изменено пользователем psevdoгринго

Ушёл из модостроения

Последний мод http://www.amk-team.ru/forum/index.php?sho...=60#entry351951

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


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

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