From 5dea12785b611db791262b80b79bc246155c45be Mon Sep 17 00:00:00 2001 From: AURUMVORXX Date: Mon, 4 Nov 2024 13:28:42 +0300 Subject: [PATCH] feat: Added most of the onPlayer** events --- g2o/events.py | 27 ++- src/events/sqevents.cpp | 25 +++ src/events/sqevents.h | 23 +++ src/events/sqevents_player.cpp | 335 ++++++++++++++++++++++++++++++++- 4 files changed, 406 insertions(+), 4 deletions(-) diff --git a/g2o/events.py b/g2o/events.py index aa4f22e..fb025c7 100644 --- a/g2o/events.py +++ b/g2o/events.py @@ -135,4 +135,29 @@ addEvent('onPlayerChangeMana') addEvent('onPlayerChangeMaxHealth') addEvent('onPlayerChangeMaxMana') addEvent('onPlayerChangeWeaponMode') -addEvent('onPlayerChangeWorld') \ No newline at end of file +addEvent('onPlayerChangeWorld') + +addEvent('onPlayerCommand') +addEvent('onPlayerDead') +addEvent('onPlayerDisconnect') +addEvent('onPlayerEnterWorld') +addEvent('onPlayerJoin') +addEvent('onPlayerMessage') +addEvent('onPlayerMobInteract') +addEvent('onPlayerRespawn') +addEvent('onPlayerShoot') +addEvent('onPlayerSpellCast') +addEvent('onPlayerSpellSetup') +addEvent('onPlayerTeleport') +addEvent('onPlayerToggleFaceAni') + +addEvent('onPlayerEquipAmulet') +addEvent('onPlayerEquipArmor') +addEvent('onPlayerEquipBelt') +addEvent('onPlayerEquipHandItem') +addEvent('onPlayerEquipHelmet') +addEvent('onPlayerEquipMeleeWeapon') +addEvent('onPlayerEquipRangedWeapon') +addEvent('onPlayerEquipRing') +addEvent('onPlayerEquipShield') +addEvent('onPlayerEquipSpell') \ No newline at end of file diff --git a/src/events/sqevents.cpp b/src/events/sqevents.cpp index 653f834..fc9c0b9 100644 --- a/src/events/sqevents.cpp +++ b/src/events/sqevents.cpp @@ -45,4 +45,29 @@ void registerSquirrelEvents() addEventHandler("onPlayerChangeMaxMana", sq_onPlayerChangeMaxMana, 0); addEventHandler("onPlayerChangeWeaponMode", sq_onPlayerChangeWeaponMode, 0); addEventHandler("onPlayerChangeWorld", sq_onPlayerChangeWorld, 0); + + addEventHandler("onPlayerCommand", sq_onPlayerCommand, 0); + addEventHandler("onPlayerDead", sq_onPlayerDead, 0); + addEventHandler("onPlayerDisconnect", sq_onPlayerDisconnect, 0); + addEventHandler("onPlayerEnterWorld", sq_onPlayerEnterWorld, 0); + addEventHandler("onPlayerJoin", sq_onPlayerJoin, 0); + addEventHandler("onPlayerMessage", sq_onPlayerMessage, 0); + addEventHandler("onPlayerMobInteract", sq_onPlayerMobInteract, 0); + addEventHandler("onPlayerRespawn", sq_onPlayerRespawn, 0); + addEventHandler("onPlayerShoot", sq_onPlayerShoot, 0); + addEventHandler("onPlayerSpellCast", sq_onPlayerSpellCast, 0); + addEventHandler("onPlayerSpellSetup", sq_onPlayerSpellSetup, 0); + addEventHandler("onPlayerTeleport", sq_onPlayerTeleport, 0); + addEventHandler("onPlayerToggleFaceAni", sq_onPlayerToggleFaceAni, 0); + + addEventHandler("onPlayerEquipAmulet", sq_onPlayerEquipAmulet, 0); + addEventHandler("onPlayerEquipArmor", sq_onPlayerEquipArmor, 0); + addEventHandler("onPlayerEquipBelt", sq_onPlayerEquipBelt, 0); + addEventHandler("onPlayerEquipHandItem", sq_onPlayerEquipHandItem, 0); + addEventHandler("onPlayerEquipHelmet", sq_onPlayerEquipHelmet, 0); + addEventHandler("onPlayerEquipMeleeWeapon", sq_onPlayerEquipMeleeWeapon, 0); + addEventHandler("onPlayerEquipRangedWeapon", sq_onPlayerEquipRangedWeapon, 0); + addEventHandler("onPlayerEquipRing", sq_onPlayerEquipRing, 0); + addEventHandler("onPlayerEquipShield", sq_onPlayerEquipShield, 0); + addEventHandler("onPlayerEquipSpell", sq_onPlayerEquipSpell, 0); } \ No newline at end of file diff --git a/src/events/sqevents.h b/src/events/sqevents.h index cc16f03..84e8940 100644 --- a/src/events/sqevents.h +++ b/src/events/sqevents.h @@ -16,6 +16,29 @@ SQInteger sq_onPlayerChangeMaxHealth(HSQUIRRELVM); SQInteger sq_onPlayerChangeMaxMana(HSQUIRRELVM); SQInteger sq_onPlayerChangeWeaponMode(HSQUIRRELVM); SQInteger sq_onPlayerChangeWorld(HSQUIRRELVM); +SQInteger sq_onPlayerCommand(HSQUIRRELVM); +SQInteger sq_onPlayerDead(HSQUIRRELVM); +SQInteger sq_onPlayerDisconnect(HSQUIRRELVM); +SQInteger sq_onPlayerEnterWorld(HSQUIRRELVM); +SQInteger sq_onPlayerEquipAmulet(HSQUIRRELVM); +SQInteger sq_onPlayerEquipArmor(HSQUIRRELVM); +SQInteger sq_onPlayerEquipBelt(HSQUIRRELVM); +SQInteger sq_onPlayerEquipHandItem(HSQUIRRELVM); +SQInteger sq_onPlayerEquipHelmet(HSQUIRRELVM); +SQInteger sq_onPlayerEquipMeleeWeapon(HSQUIRRELVM); +SQInteger sq_onPlayerEquipRangedWeapon(HSQUIRRELVM); +SQInteger sq_onPlayerEquipRing(HSQUIRRELVM); +SQInteger sq_onPlayerEquipShield(HSQUIRRELVM); +SQInteger sq_onPlayerEquipSpell(HSQUIRRELVM); +SQInteger sq_onPlayerJoin(HSQUIRRELVM); +SQInteger sq_onPlayerMessage(HSQUIRRELVM); +SQInteger sq_onPlayerMobInteract(HSQUIRRELVM); +SQInteger sq_onPlayerRespawn(HSQUIRRELVM); +SQInteger sq_onPlayerShoot(HSQUIRRELVM); +SQInteger sq_onPlayerSpellCast(HSQUIRRELVM); +SQInteger sq_onPlayerSpellSetup(HSQUIRRELVM); +SQInteger sq_onPlayerTeleport(HSQUIRRELVM); +SQInteger sq_onPlayerToggleFaceAni(HSQUIRRELVM); void registerSquirrelEvents(); diff --git a/src/events/sqevents_player.cpp b/src/events/sqevents_player.cpp index 62dcd26..4c16195 100644 --- a/src/events/sqevents_player.cpp +++ b/src/events/sqevents_player.cpp @@ -108,14 +108,343 @@ SQInteger sq_onPlayerChangeWeaponMode(HSQUIRRELVM vm) SQInteger sq_onPlayerChangeWorld(HSQUIRRELVM vm) { - SQInteger playerid, world, waypoint; + SQInteger playerid; + const SQChar* world; + const SQChar* waypoint; sq_getinteger(vm, 2, &playerid); - sq_getinteger(vm, 3, &world); - sq_getinteger(vm, 4, &waypoint); + sq_getstring(vm, 3, &world); + sq_getstring(vm, 4, &waypoint); py::dict kwargs = py::dict("playerid"_a=playerid, "world"_a=world, "waypoint"_a=waypoint); g2o.attr("callEvent")("onPlayerChangeWorld", **kwargs); + return 0; +} + +// ------------------------------------------------------- + +SQInteger sq_onPlayerCommand(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* command; + const SQChar* params; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &command); + sq_getstring(vm, 4, ¶ms); + + py::dict kwargs = py::dict("playerid"_a=playerid, "command"_a=command, "params"_a=params); + g2o.attr("callEvent")("onPlayerCommand", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerDead(HSQUIRRELVM vm) +{ + SQInteger playerid, killerid; + + sq_getinteger(vm, 2, &playerid); + sq_getinteger(vm, 3, &killerid); + + py::dict kwargs = py::dict("playerid"_a=playerid, "killerid"_a=killerid); + g2o.attr("callEvent")("onPlayerDead", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerDisconnect(HSQUIRRELVM vm) +{ + SQInteger playerid, reason; + + sq_getinteger(vm, 2, &playerid); + sq_getinteger(vm, 3, &reason); + + py::dict kwargs = py::dict("playerid"_a=playerid, "reason"_a=reason); + g2o.attr("callEvent")("onPlayerDisconnect", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerEnterWorld(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* world; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &world); + + py::dict kwargs = py::dict("playerid"_a=playerid, "world"_a=world); + g2o.attr("callEvent")("onPlayerEnterWorld", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerJoin(HSQUIRRELVM vm) +{ + SQInteger playerid; + + sq_getinteger(vm, 2, &playerid); + + py::dict kwargs = py::dict("playerid"_a=playerid); + g2o.attr("callEvent")("onPlayerJoin", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerMessage(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* message; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &message); + + py::dict kwargs = py::dict("playerid"_a=playerid, "message"_a=message); + g2o.attr("callEvent")("onPlayerMessage", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerMobInteract(HSQUIRRELVM vm) +{ + SQInteger playerid, from, to; + + sq_getinteger(vm, 2, &playerid); + sq_getinteger(vm, 3, &from); + sq_getinteger(vm, 3, &to); + + py::dict kwargs = py::dict("playerid"_a=playerid, "from"_a=from, "to"_a = to); + g2o.attr("callEvent")("onPlayerMobInteract", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerRespawn(HSQUIRRELVM vm) +{ + SQInteger playerid; + + sq_getinteger(vm, 2, &playerid); + + py::dict kwargs = py::dict("playerid"_a=playerid); + g2o.attr("callEvent")("onPlayerRespawn", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerShoot(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* munition; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &munition); + + py::dict kwargs = py::dict("playerid"_a=playerid, "munition"_a=munition); + g2o.attr("callEvent")("onPlayerShoot", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerSpellCast(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerSpellCast", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerSpellSetup(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerSpellSetup", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerTeleport(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* vobName; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &vobName); + + py::dict kwargs = py::dict("playerid"_a=playerid, "vobName"_a=vobName); + g2o.attr("callEvent")("onPlayerTeleport", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerToggleFaceAni(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* aniName; + SQBool toggle; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &aniName); + sq_getbool(vm, 4, &toggle); + + py::dict kwargs = py::dict("playerid"_a=playerid, "vobName"_a=aniName, "toggle"_a = toggle); + g2o.attr("callEvent")("onPlayerToggleFaceAni", **kwargs); + + return 0; +} + +// ------------------------------------------------------- + +SQInteger sq_onPlayerEquipAmulet(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerEquipAmulet", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerEquipArmor(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerEquipArmor", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerEquipBelt(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerEquipBelt", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerEquipHandItem(HSQUIRRELVM vm) +{ + SQInteger playerid, hand; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getinteger(vm, 3, &hand); + sq_getstring(vm, 4, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "hand"_a = hand, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerEquipHandItem", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerEquipHelmet(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerEquipHelmet", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerEquipMeleeWeapon(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerEquipMeleeWeapon", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerEquipRangedWeapon(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerEquipRangedWeapon", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerEquipRing(HSQUIRRELVM vm) +{ + SQInteger playerid, hand; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getinteger(vm, 3, &hand); + sq_getstring(vm, 4, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "hand"_a = hand, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerEquipRing", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerEquipShield(HSQUIRRELVM vm) +{ + SQInteger playerid; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getstring(vm, 3, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerEquipShield", **kwargs); + + return 0; +} + +SQInteger sq_onPlayerEquipSpell(HSQUIRRELVM vm) +{ + SQInteger playerid, slotId; + const SQChar* instance; + + sq_getinteger(vm, 2, &playerid); + sq_getinteger(vm, 3, &slotId); + sq_getstring(vm, 4, &instance); + + py::dict kwargs = py::dict("playerid"_a=playerid, "slotId"_a = slotId, "instance"_a=instance); + g2o.attr("callEvent")("onPlayerEquipSpell", **kwargs); + return 0; } \ No newline at end of file