コード例 #1
0
ファイル: global_functions.cpp プロジェクト: lev1976g/easywow
void LuaGossip::OnHello(Object* pObject, Player* Plr)
{
    GET_LOCK;
    if(pObject->GetTypeId() == TYPEID_UNIT)
    {
        if(m_unit_gossip_binding == NULL) { RELEASE_LOCK; return; }

        lua_engine::BeginLuaFunctionCall(m_unit_gossip_binding->refs[GOSSIP_EVENT_ON_TALK]);
        push_creature(TO_CREATURE(pObject));
        push_int(GOSSIP_EVENT_ON_TALK);
        push_player(Plr);
        lua_engine::ExecuteLuaFunction(3);
    }
    else if(pObject->GetTypeId() == TYPEID_ITEM)
    {
        if(m_item_gossip_binding == NULL) { RELEASE_LOCK; return; }

        lua_engine::BeginLuaFunctionCall(m_item_gossip_binding->refs[GOSSIP_EVENT_ON_TALK]);
        push_item(TO_ITEM(pObject));
        push_int(GOSSIP_EVENT_ON_TALK);
        push_player(Plr);
        lua_engine::ExecuteLuaFunction(3);
    }
    else if(pObject->GetTypeId() == TYPEID_GAMEOBJECT)
    {
        if(m_go_gossip_binding == NULL) { RELEASE_LOCK; return; }

        lua_engine::BeginLuaFunctionCall(m_go_gossip_binding->refs[GOSSIP_EVENT_ON_TALK]);
        push_go(TO_GAMEOBJECT(pObject));
        push_int(GOSSIP_EVENT_ON_TALK);
        push_player(Plr);
        lua_engine::ExecuteLuaFunction(3);
    }
    RELEASE_LOCK
}
コード例 #2
0
void LuaGameObject::AIUpdate()
{
    NULL_BINDING_CHECK
    lua_engine::BeginLuaFunctionCall(m_binding->refs[GAMEOBJECT_EVENT_AIUPDATE]);
    push_go(_gameobject);
    lua_engine::ExecuteLuaFunction(1);
    RELEASE_LOCK
}
コード例 #3
0
ファイル: instance_functions.cpp プロジェクト: Selenah/ArcEmu
void LuaInstance::OnGameObjectPushToWorld(GameObject* pGameObject)
{
	NULL_BINDING_CHECK
	lua_engine::BeginLuaFunctionCall(m_binding->refs[INSTANCE_EVENT_ON_GO_PUSH]);
	push_int(m_instanceId);
	push_go(pGameObject);
	lua_engine::ExecuteLuaFunction(2);
	RELEASE_LOCK
}
コード例 #4
0
void LuaGameObject::OnDespawn()
{
    NULL_BINDING_CHECK

    lua_engine::BeginLuaFunctionCall(m_binding->refs[GAMEOBJECT_EVENT_ON_DESPAWN]);
    push_go(_gameobject);
    lua_engine::ExecuteLuaFunction(1);
    RELEASE_LOCK
}
コード例 #5
0
ファイル: instance_functions.cpp プロジェクト: Selenah/ArcEmu
void LuaInstance::OnGameObjectActivate(GameObject* pGameObject, Player* pPlayer)
{
	NULL_BINDING_CHECK
	lua_engine::BeginLuaFunctionCall(m_binding->refs[INSTANCE_EVENT_ON_GO_ACTIVATE]);
	push_int(m_instanceId);
	push_go(pGameObject);
	push_unit(pPlayer);
	lua_engine::ExecuteLuaFunction(3);
	RELEASE_LOCK
}
コード例 #6
0
void LuaGameObject::OnActivate(Player* pPlayer)
{
    NULL_BINDING_CHECK

    lua_engine::BeginLuaFunctionCall(m_binding->refs[GAMEOBJECT_EVENT_ON_USE]);
    push_go(_gameobject);
    push_int(GAMEOBJECT_EVENT_ON_USE);
    push_player(pPlayer);
    lua_engine::ExecuteLuaFunction(3);
    RELEASE_LOCK
}
コード例 #7
0
void LuaGameObject::OnLootTaken(Player* pLooter, ItemPrototype* pItemInfo)
{

    NULL_BINDING_CHECK

    lua_engine::BeginLuaFunctionCall(m_binding->refs[GAMEOBJECT_EVENT_ON_LOOT_TAKEN]);
    push_go(_gameobject);
    push_int(GAMEOBJECT_EVENT_ON_LOOT_TAKEN);
    push_player(pLooter);
    push_int(pItemInfo->ItemId);
    lua_engine::ExecuteLuaFunction(4);
    RELEASE_LOCK
}
コード例 #8
0
ファイル: global_functions.cpp プロジェクト: lev1976g/easywow
void LuaGossip::OnSelectOption(Object* pObject, Player* Plr, uint32 Id, const char* EnteredCode)
{
    GET_LOCK;
    if(pObject->GetTypeId() == TYPEID_UNIT)
    {
        if(m_unit_gossip_binding == NULL) { RELEASE_LOCK; return; }

        lua_engine::BeginLuaFunctionCall(m_unit_gossip_binding->refs[GOSSIP_EVENT_ON_SELECT_OPTION]);
        push_creature(TO_CREATURE(pObject));
        push_int(GOSSIP_EVENT_ON_SELECT_OPTION);
        push_player(Plr);
        push_int(Id);
        push_str(EnteredCode);
        lua_engine::ExecuteLuaFunction(5);
    }
    else if(pObject->GetTypeId() == TYPEID_ITEM)
    {
        if(m_item_gossip_binding == NULL) { RELEASE_LOCK; return; }
        lua_engine::BeginLuaFunctionCall(m_item_gossip_binding->refs[GOSSIP_EVENT_ON_SELECT_OPTION]);
        push_item(TO_ITEM(pObject));
        push_int(GOSSIP_EVENT_ON_SELECT_OPTION);
        push_player(Plr);
        push_int(Id);
        push_str(EnteredCode);
        lua_engine::ExecuteLuaFunction(5);
    }
    else if(pObject->GetTypeId() == TYPEID_GAMEOBJECT)
    {
        if(m_go_gossip_binding == NULL) { RELEASE_LOCK; return; }
        lua_engine::BeginLuaFunctionCall(m_go_gossip_binding->refs[GOSSIP_EVENT_ON_SELECT_OPTION]);
        push_go(TO_GAMEOBJECT(pObject));
        push_int(GOSSIP_EVENT_ON_SELECT_OPTION);
        push_player(Plr);
        push_int(Id);
        push_str(EnteredCode);
        lua_engine::ExecuteLuaFunction(5);
    }
    RELEASE_LOCK
}