feat: Update for G2O 0.3.2.0

This commit is contained in:
AURUMVORXX
2025-06-16 17:13:24 +03:00
parent 1a9b086c9a
commit 18706e982c
7 changed files with 165 additions and 10 deletions

View File

@@ -568,6 +568,30 @@ addEventHandler("onPlayerToggleFaceAni", function(playerid, aniName, toggle)
toggle = toggle toggle = toggle
} }
if (_globalInstance != -1)
_globalInstance._send("event", data);
});
addEventHandler("onPlayerSpawnForPlayer", function(playerid, spawnid)
{
local data = {
event = "onPlayerSpawnForPlayer",
playerid = playerid,
spawnid = spawnid
}
if (_globalInstance != -1)
_globalInstance._send("event", data);
});
addEventHandler("onPlayerUnspawnForPlayer", function(playerid, spawnid)
{
local data = {
event = "onPlayerUnspawnForPlayer",
playerid = playerid,
spawnid = spawnid
}
if (_globalInstance != -1) if (_globalInstance != -1)
_globalInstance._send("event", data); _globalInstance._send("event", data);
}); });

View File

@@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "PyG2O" name = "PyG2O"
version = "2.2.0" version = "2.3.0"
description = "" description = ""
authors = ["AURUMVORAX <aurumvorax.enthroned@gmail.com>"] authors = ["AURUMVORAX <aurumvorax.enthroned@gmail.com>"]

View File

@@ -12,6 +12,7 @@ from .functions.math import getVectorAngle
from .functions.game import getHostname from .functions.game import getHostname
from .functions.game import getMaxSlots from .functions.game import getMaxSlots
from .functions.game import getServerPublic
from .functions.game import getPlayersCount from .functions.game import getPlayersCount
from .functions.game import exit from .functions.game import exit
from .functions.game import getDayLength from .functions.game import getDayLength
@@ -22,6 +23,7 @@ from .functions.game import serverLog
from .functions.game import setDayLength from .functions.game import setDayLength
from .functions.game import setServerDescription from .functions.game import setServerDescription
from .functions.game import setServerWorld from .functions.game import setServerWorld
from .functions.game import setServerPublic
from .functions.game import setTime from .functions.game import setTime
from .functions.npc import clearNpcActions from .functions.npc import clearNpcActions
@@ -48,6 +50,7 @@ from .functions.player import equipItem
from .functions.player import getPlayerAmulet from .functions.player import getPlayerAmulet
from .functions.player import getPlayerAngle from .functions.player import getPlayerAngle
from .functions.player import getPlayerAni from .functions.player import getPlayerAni
from .functions.player import getPlayerOverlays
from .functions.player import getPlayerArmor from .functions.player import getPlayerArmor
from .functions.player import getPlayerAtVector from .functions.player import getPlayerAtVector
from .functions.player import getPlayerBelt from .functions.player import getPlayerBelt
@@ -96,6 +99,7 @@ from .functions.player import isPlayerUnconscious
from .functions.player import kick from .functions.player import kick
from .functions.player import playAni from .functions.player import playAni
from .functions.player import playFaceAni from .functions.player import playFaceAni
from .functions.player import fadeOutAni
from .functions.player import readySpell from .functions.player import readySpell
from .functions.player import removeItem from .functions.player import removeItem
from .functions.player import removePlayerOverlay from .functions.player import removePlayerOverlay
@@ -174,6 +178,7 @@ __all__ = [
"getHostname", "getHostname",
"getMaxSlots", "getMaxSlots",
"getServerPublic",
"getPlayersCount", "getPlayersCount",
"exit", "exit",
"getDayLength", "getDayLength",
@@ -184,6 +189,7 @@ __all__ = [
"setDayLength", "setDayLength",
"setServerDescription", "setServerDescription",
"setServerWorld", "setServerWorld",
"setServerPublic",
"setTime", "setTime",
"clearNpcActions", "clearNpcActions",
@@ -210,6 +216,7 @@ __all__ = [
"getPlayerAmulet", "getPlayerAmulet",
"getPlayerAngle", "getPlayerAngle",
"getPlayerAni", "getPlayerAni",
"getPlayerOverlays",
"getPlayerArmor", "getPlayerArmor",
"getPlayerAtVector", "getPlayerAtVector",
"getPlayerBelt", "getPlayerBelt",
@@ -258,6 +265,7 @@ __all__ = [
"kick", "kick",
"playAni", "playAni",
"playFaceAni", "playFaceAni",
"fadeOutAni",
"readySpell", "readySpell",
"removeItem", "removeItem",
"removePlayerOverlay", "removePlayerOverlay",

View File

@@ -104,6 +104,58 @@ class ItemGround:
""" """
return self._rotation return self._rotation
async def setPosition(self, x: float, y: float, z: float):
"""
This method will set the item ground position in the world.
**Parameters:**
* `float` **x**: the position in the world on the x axis.
* `float` **y**: the position in the world on the y axis.
* `float` **z**: the position in the world on the z axis.
"""
data = f'return ItemsGround.getById({self.id}).setPosition({x}, {y}, {z})'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result
async def setRotation(self, x: float, y: float, z: float):
"""
This method will set the item ground rotation in the world.
**Parameters:**
* `float` **x**: the rotation in the world on the x axis.
* `float` **y**: the rotation in the world on the y axis.
* `float` **z**: the rotation in the world on the z axis.
"""
data = f'return ItemsGround.getById({self.id}).setRotation({x}, {y}, {z})'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result
async def get_physicsEnabled(self) -> bool:
"""
This method will get the item ground physicsEnabled flag.
**Returns:**
* `bool`: ``true`` if physics is enabled, otherwise ``false``
"""
data = f'return ItemsGround.getById({self.id}).physicsEnabled'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result
async def set_physicsEnabled(self, enabled: bool):
"""
This method will set the item ground physicsEnabled flag.
**Parameters:**
* `bool` **enabled**: represents the state of physicsEnabled flag
"""
data = f'return ItemsGround.getById({self.id}).physicsEnabled = {enabled}'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result
@property @property
def id(self) -> int: def id(self) -> int:
return self._id return self._id

View File

@@ -59,7 +59,7 @@ def addEvent(name : str):
g2o.addEvent('testEvt') g2o.addEvent('testEvt')
``` ```
""" """
if not name in eventList: if name not in eventList:
eventList[name] = [] eventList[name] = []
def event(event_name: str, priority: int = 9999) -> None: def event(event_name: str, priority: int = 9999) -> None:
@@ -213,6 +213,9 @@ addEvent('onPlayerEquipRing')
addEvent('onPlayerEquipShield') addEvent('onPlayerEquipShield')
addEvent('onPlayerEquipSpell') addEvent('onPlayerEquipSpell')
addEvent('onPlayerSpawnForPlayer')
addEvent('onPlayerUnspawnForPlayer')
addEvent('onPacket') addEvent('onPacket')
addEvent('onPlayerUseCheat') addEvent('onPlayerUseCheat')

View File

@@ -29,8 +29,6 @@ async def getHostname() -> str:
result = await server.make_request(data) result = await server.make_request(data)
return result return result
async def getMaxSlots() -> int: async def getMaxSlots() -> int:
""" """
This function will get the max number of slots available on the server. This function will get the max number of slots available on the server.
@@ -85,6 +83,23 @@ async def getPlayersCount() -> int:
result = await server.make_request(data) result = await server.make_request(data)
return result return result
async def getServerPublic() -> bool:
"""
This function will get the publicity state of the server.
## Declaration
```python
async def getServerPublic() -> bool
```
## Returns
`bool`: ``true`` if server is publicly available, otherwise ``false``
"""
data = f'return {get_call_repr()}'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result
async def exit(exitCode : int = 0): async def exit(exitCode : int = 0):
""" """
This function will close the server with specified exit code. This function will close the server with specified exit code.
@@ -258,6 +273,22 @@ async def setServerWorld(world : str):
result = await server.make_request(data) result = await server.make_request(data)
return result return result
async def setServerPublic(public : str):
"""
This function will change the publicity state of the server.
## Declaration
```python
async def setServerPublic(public : str)
```
## Parameters
`bool` **public**: server public state.
"""
data = f'return {get_call_repr()}'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result
async def setTime(hour : int, min : int, day : int = 0): async def setTime(hour : int, min : int, day : int = 0):
""" """

View File

@@ -29,18 +29,18 @@ async def addBan(info : dict) -> bool:
result = await server.make_request(data) result = await server.make_request(data)
return result return result
async def applyPlayerOverlay(id : int, overlayId : int) -> bool: async def applyPlayerOverlay(id : int, overlay : str) -> bool:
""" """
This function will apply animation overlay on player for all players. This function will apply animation overlay on player for all players.
Original: [applyPlayerOverlay](https://gothicmultiplayerteam.gitlab.io/docs/0.3.0/script-reference/server-functions/player/applyPlayerOverlay/) Original: [applyPlayerOverlay](https://gothicmultiplayerteam.gitlab.io/docs/0.3.0/script-reference/server-functions/player/applyPlayerOverlay/)
## Declaration ## Declaration
```python ```python
async def applyPlayerOverlay(id : int, overlayId : int) -> bool async def applyPlayerOverlay(id : int, overlay : str) -> bool
``` ```
## Parameters ## Parameters
`int` **id**: the player id. `int` **id**: the player id.
`int` **overlayId**: the overlay id from `mds.xml` file, e.g: `Mds.id("HUMANS_MILITIA.MDS")` `str` **overlay**: the overlay Mds name, e.g. 'HUMANS_MILITIA.MDS'
## Returns ## Returns
`bool`: `true` if animation overlay was successfully applied on player, otherwise `false`. `bool`: `true` if animation overlay was successfully applied on player, otherwise `false`.
""" """
@@ -173,6 +173,25 @@ async def getPlayerAni(id : int) -> str:
result = await server.make_request(data) result = await server.make_request(data)
return result return result
async def getPlayerOverlays(id : int) -> list[str]:
"""
This function will get the player/npc active animations overlays.
## Declaration
```python
async def getPlayerAni(id : int) -> str
```
## Parameters
`int` **id**: the player id.
## Returns
`list[str]`: the list of animation overlays as strings or ``None`` if player isn't created.
"""
data = f'return {get_call_repr()}'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result
async def getPlayerArmor(id : int) -> str: async def getPlayerArmor(id : int) -> str:
""" """
This function will get the equipped player armor. This function will get the equipped player armor.
@@ -1148,6 +1167,24 @@ async def playFaceAni(id : int, aniName : str):
result = await server.make_request(data) result = await server.make_request(data)
return result return result
async def fadeOutAni(id : int, aniName : str):
"""
This function is used to gracefully stop played animation on player/npc for all players.
## Declaration
```python
async def playFaceAni(id : int, aniName : str)
```
## Parameters
`int` **id**: the player id.
`str` **aniName**: the name of the animation that you want to stop. The default value is empty string, which means that the first active ani will be stopped.
"""
data = f'return {get_call_repr()}'
server = await PythonWebsocketServer.get_server()
result = await server.make_request(data)
return result
async def readySpell(id : int, slotId : int, manaInvested : int): async def readySpell(id : int, slotId : int, manaInvested : int):
""" """
This function will cause player to ready equipped spell. This function will cause player to ready equipped spell.
@@ -1188,18 +1225,18 @@ async def removeItem(id : int, instance : str, amount : int):
result = await server.make_request(data) result = await server.make_request(data)
return result return result
async def removePlayerOverlay(id : int, overlayId : int) -> bool: async def removePlayerOverlay(id : int, overlay : str) -> bool:
""" """
This function will remove animation overlay from player for all players. This function will remove animation overlay from player for all players.
Original: [removePlayerOverlay](https://gothicmultiplayerteam.gitlab.io/docs/0.3.0/script-reference/server-functions/player/removePlayerOverlay/) Original: [removePlayerOverlay](https://gothicmultiplayerteam.gitlab.io/docs/0.3.0/script-reference/server-functions/player/removePlayerOverlay/)
## Declaration ## Declaration
```python ```python
async def removePlayerOverlay(id : int, overlayId : int) -> bool async def removePlayerOverlay(id : int, overlay : str) -> bool:
``` ```
## Parameters ## Parameters
`int` **id**: the player id. `int` **id**: the player id.
`int` **overlayId**: the overlay id from `mds.xml` file, e.g: `Mds.id("HUMANS_MILITIA.MDS")` `str` **overlay**: the overlay Mds name, e.g. 'HUMANS_MILITIA.MDS'
## Returns ## Returns
`bool`: `true` if animation overlay was successfully removed from player, otherwise `false`. `bool`: `true` if animation overlay was successfully removed from player, otherwise `false`.
""" """