Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!

> Помощь по разделу

Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов

 
Ответить в данную темуНачать новую тему
> Движковые события, их аргументы и описание
aka_sektor
сообщение 08.10.2017, 17:05
Сообщение #1


Грандмастер
**************

Репутация:   118  
Группа: Участник
Сообщений: 1788
Награды: 4
Регистрация: 04.04.2013




Вставить ник Цитировать выделенное в форуму быстрого ответа


Интересует описание каждого события, какие аргументы оно имеет и их описание.
trade_start
Код
callback(GameObject::eTradeStart)();
trade_stop
Код
callback(GameObject::eTradeStop)();
trade_sell_buy_item
Код
Actor()->callback    (GameObject::eTradeSellBuyItem)(pItem->object().lua_game_object(), bDir, dwTransferMoney);
trade_perform_operation
Код
smart_cast<CAI_Trader*>(pThis.base)->callback(GameObject::eTradePerformTradeOperation)(money_get, money_put);
trader_global_anim_request
Код
m_trader->callback(GameObject::eTraderGlobalAnimationRequest)();
trader_head_anim_request
Код
m_trader->callback(GameObject::eTraderHeadAnimationRequest)();
trader_sound_end
Код
m_trader->callback    (GameObject::eTraderSoundEnd)();
zone_enter
Код
callback(GameObject::eZoneEnter)(lua_game_object(),l_tpGameObject->lua_game_object());
zone_exit
Код
callback(GameObject::eZoneExit)(lua_game_object(),l_tpGameObject->lua_game_object());
level_border_exit
Код
callback(GameObject::eExitLevelBorder)(lua_game_object());
level_border_enter
Код
callback(GameObject::eEnterLevelBorder)(lua_game_object());
death
Код
callback(GameObject::eDeath)(lua_game_object(), who_object ? who_object->lua_game_object() : 0);
callback(GameObject::eDeath)(lua_game_object(),who_object  ? who_object : 0);
patrol_path_in_point
Код
m_game_object->callback    (GameObject::ePatrolPathInPoint)(m_game_object->lua_game_object(),u32(ScriptEntity::eActionTypeMovement),m_curr_point_index);
inventory_pda
Нету
inventory_info
Код
callback(GameObject::eInventoryInfo)(lua_game_object(), *info_id);
article_info
Код
callback(GameObject::eArticleInfo)(lua_game_object(), g, n, _atype);
use_object
Код
Actor()->callback(GameObject::eUseObject)((smart_cast<CGameObject*>(pIItem))->lua_game_object());
pThis->callback(GameObject::eUseObject)(pThis->lua_game_object(),who_use->lua_game_object());
hit
Код
object().callback(GameObject::eHit)(
        m_object->lua_game_object(),
        amount,
        vLocalDir,
        smart_cast<const CGameObject*>(who)->lua_game_object(),
        element
    );

    callback(GameObject::eHit)(
        lua_game_object(),
        HDS.power,
        HDS.dir,
        smart_cast<const CGameObject*>(HDS.who)->lua_game_object(),
        HDS.bone()
        );

    callback(GameObject::eHit)(
        lua_game_object(),
        HDS.power,
        HDS.dir,
        smart_cast<const CGameObject*>(HDS.who)->lua_game_object(),
        HDS.bone()
        );

    callback(GameObject::eHit)(
        lua_game_object(),
        amount,
        vLocalDir,
        smart_cast<const CGameObject*>(who)->lua_game_object(),
        element
    );
sound
Код
object().callback(GameObject::eSound)(
            object().lua_game_object(),
            (*I).m_lua_game_object,
            (*I).m_sound_type,
            (*I).m_position,
            (*I).m_sound_power
        );
action_movement
Код
m_game_object->callback    (GameObject::ePatrolPathInPoint)(m_game_object->lua_game_object(),u32(ScriptEntity::eActionTypeMovement),m_curr_point_index);
object().callback(GameObject::eActionTypeMovement)(object().lua_game_object(),u32(eActionTypeMovement), -1);
action_watch
Код
object().callback(GameObject::eActionTypeWatch)(object().lua_game_object(),u32(eActionTypeWatch));
action_animation
Код
l_tpScriptMonster->object().callback(GameObject::eActionTypeAnimation)(l_tpScriptMonster->object().lua_game_object(),u32(eActionTypeAnimation));
action_sound
Код
object().callback(GameObject::eActionTypeSound)(object().lua_game_object(),u32(eActionTypeSound));
action_particle
Код
object().callback(GameObject::eActionTypeParticle)(object().lua_game_object(),u32(eActionTypeParticle));
action_object
Код
object().callback(GameObject::eActionTypeObject)(object().lua_game_object(),u32(eActionTypeObject));
actor_sleep
Код
Нету
helicopter_on_point
Код
parent->callback(GameObject::eHelicopterOnPoint)(dist,currP, currPatrolVertex ? currPatrolVertex->vertex_id() : -1);
parent->callback(GameObject::eHelicopterOnPoint)(dist,currP, -1);
helicopter_on_hit
Код
callback(GameObject::eHelicopterOnHit)(pHDS->damage(),pHDS->impulse,pHDS->hit_type,pHDS->who->ID());
on_item_take
Код
object->callback(GameObject::eOnItemTake)(inventory_item->object().lua_game_object());
on_item_drop
Код
object->callback(GameObject::eOnItemDrop)(inventory_item->object().lua_game_object());
script_animation
Код
object().callback        (GameObject::eScriptAnimation)    ();
task_state
Код
Actor()->callback(GameObject::eTaskStateChange)(parent, this, task_state);
take_item_from_box
Код
Actor()->callback(GameObject::eInvBoxItemTake)( this->lua_game_object(), GO->lua_game_object() );
map_location_added
Код
Actor()->callback(GameObject::eMapLocationAdded)(*spot_type, id);

ЧН добавил ещё:
action_removed
Код
object().callback(GameObject::eActionTypeRemoved)(object().lua_game_object(),u32(eActionTypeRemoved));
weapon_no_ammo
Код
Actor()->callback(GameObject::eWeaponNoAmmoAvailable)(lua_game_object(), AC);


Сообщение отредактировал aka_sektor - 08.10.2017, 17:14
Перейти в начало страницы
 
aka_sektor
сообщение 08.10.2017, 23:34
Сообщение #2


Грандмастер
**************

Репутация:   118  
Группа: Участник
Сообщений: 1788
Награды: 4
Регистрация: 04.04.2013




Вставить ник Цитировать выделенное в форуму быстрого ответа


Думаю так.

Не имеют аргументов:
trade_start
trade_stop
trader_global_anim_request
trader_head_anim_request
trader_sound_end
script_animation

Чет непонятное с колбеком. Вроде и нет его ohmy.gif :
inventory_pda
actor_sleep

По аргументам:
lua_game_object() это аргумент npc
*info_id это info_id
g это group
n это name
pHDS->damage() это power
pHDS->impulse это impulse
pHDS->hit_type это hit_type
pHDS->who->ID это enemy_id
this->lua_game_object() это box

bDir это sell_bye, ещё код:
Код
bool bDir = (pThis.type!=TT_ACTOR) && bBuying;

dwTransferMoney это money

Разный код одного и того же аргумента:
GO->lua_game_object() это item
pItem->object().lua_game_object() это тоже item

l_tpGameObject->lua_game_object() это obj
m_game_object->lua_game_object() это тоже obj

Сообщение отредактировал aka_sektor - 09.10.2017, 00:25


--------------------


Те кто играют уже не забудут ​​​​​​​© Алексей Сытянов
Перейти в начало страницы
 
deonisii
сообщение 09.10.2017, 00:23
Сообщение #3


Игровой Бог
**********************

Репутация:   1379  
Группа: Участник
Сообщений: 5863
Награды: 10
Регистрация: 07.12.2006




Вставить ник Цитировать выделенное в форуму быстрого ответа


Что это?
Перейти в начало страницы
 
aka_sektor
сообщение 09.10.2017, 00:25
Сообщение #4


Грандмастер
**************

Репутация:   118  
Группа: Участник
Сообщений: 1788
Награды: 4
Регистрация: 04.04.2013




Вставить ник Цитировать выделенное в форуму быстрого ответа


deonisii, если не понимаешь, проходи мимо.

Далее...

pThis->lua_game_object() это тоже аргумент obj
m_object->lua_game_object() это тоже obj
who_use->lua_game_object() это who
(who)->lua_game_object() это тоже who
(HDS.who)->lua_game_object() это тоже who
amount это amount
vLocalDir это local_direction
HDS.bone() это bone_index
m_lua_game_object это who_id
m_sound_type это sound_type
m_position это sound_position
m_sound_power это sound_power
dist это distance
currP это position
currPatrolVertex ? currPatrolVertex->vertex_id() это path_idx

Сообщение отредактировал aka_sektor - 09.10.2017, 01:24


--------------------


Те кто играют уже не забудут ​​​​​​​© Алексей Сытянов
Перейти в начало страницы
 
aka_sektor
сообщение 09.10.2017, 14:34
Сообщение #5


Грандмастер
**************

Репутация:   118  
Группа: Участник
Сообщений: 1788
Награды: 4
Регистрация: 04.04.2013




Вставить ник Цитировать выделенное в форуму быстрого ответа


Похоже по аргументам бессмысленно было.

Аргументы можно как угодно называть. Они в разных контекстах, каждый в своем. Важно их количество и что они значат, а как назвать неважно вообще.


--------------------


Те кто играют уже не забудут ​​​​​​​© Алексей Сытянов
Перейти в начало страницы
 
NanoBot-AMK
сообщение 09.10.2017, 17:14
Сообщение #6


Почти Мастер
***********

Репутация:   75  
Группа: Участник
Сообщений: 1168
Награды: 4
Регистрация: 10.11.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Кстати, для колбека:
callback(GameObject::eHelicopterOnHit)(pHDS->damage(),pHDS->impulse,pHDS->hit_type,pHDS->who->ID());
Вызывается только если виновник, актор, сталкер или аномалия. В исходниках рекомендуется подкрутить код, что-бы колбек вызывался и для других объектов(вертолёты, БТРы, турели, взрывные объекты и т.д.). В XRayExt я добавил правку соответствующую.


--------------------
СТАЛКЕР только для ПК!
Перейти в начало страницы
 

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 26.04.2024, 21:42