openmultiplayer / open.mp Goto Github PK
View Code? Open in Web Editor NEWOpen Multiplayer, a multiplayer mod fully backwards compatible with SA-MP
Home Page: https://open.mp
License: Mozilla Public License 2.0
Open Multiplayer, a multiplayer mod fully backwards compatible with SA-MP
Home Page: https://open.mp
License: Mozilla Public License 2.0
Can't reliably reproduce, but I located the exact place where it happens:
This sometimes will trigger the following error:
Assertion failed: false && "(ctrl != nullptr && IsFull(*ctrl)) && \"Invalid operation on iterator. The element might have \" \"been erased, or the table might have rehashed.\"", file C:\.conan\85492a\1\include\absl/container/internal/raw_hash_set.h, line 504
Probably caused by some deleted timer?
Caused by creating timers inside timers, which invalidates the iterator. Will be fixed by using std::set
logs/2021-08-16.log
Everything in the title. Expected:
{
"lan_mode": 0,
"max_players": 50,
"port": 7777,
"server_name": "open.mp server",
"entry_file": "test.amx",
"side_scripts": [],
"maxnpc": 0,
"on_foot_rate": 30,
"in_car_rate": 30,
"weapon_rate": 30,
"stream_distance": 200.0,
"stream_rate": 1000
}
Some keys are missing for now, announce/query, weburl, mapname, etc. They should be added to this list as they get implemented.
List of native
s and public
s (callbacks) specified on samp-stdlib.
Each entry can have one of the following status:
Feel free to update as you work along them, and tag in the respective issue to notify of status changes and any other important stuff relevant to that item.
Generated by grep -Eoh '^\s*native ?([^\(]*)\(.*\);' *.inc | tr 'Float:[X-Z]' 'Float:[x-z]' | sed -E 's/\t*native ([a-zA-Z0-9]+:)?//' | sort | uniq | cut -d"(" -f1 | xargs -n 1 sh -c 'echo "| $0 | U | N/A |"'
on samp-stdlib
on this commit.
If you want the data only, then run the command without xargs
.
name | status | issue/assignee |
---|---|---|
AddCharModel | U | N/A |
AddMenuItem | U | N/A |
AddPlayerClass | U | N/A |
AddPlayerClassEx | U | N/A |
AddSimpleModel | U | N/A |
AddSimpleModelTimed | U | N/A |
AddStaticPickup | U | N/A |
AddStaticVehicle | U | N/A |
AddStaticVehicleEx | U | N/A |
AddVehicleComponent | U | N/A |
AllowAdminTeleport | U | N/A |
AllowInteriorWeapons | U | N/A |
AllowPlayerTeleport | U | N/A |
ApplyActorAnimation | U | N/A |
ApplyAnimation | U | N/A |
Attach3DTextLabelToPlayer | U | N/A |
Attach3DTextLabelToVehicle | U | N/A |
AttachCameraToObject | U | N/A |
AttachCameraToPlayerObject | U | N/A |
AttachObjectToObject | U | N/A |
AttachObjectToPlayer | U | N/A |
AttachObjectToVehicle | U | N/A |
AttachPlayerObjectToPlayer | U | N/A |
AttachPlayerObjectToVehicle | U | N/A |
AttachTrailerToVehicle | U | N/A |
Ban | U | N/A |
BanEx | U | N/A |
BlockIpAddress | U | N/A |
CallLocalFunction | U | N/A |
CallRemoteFunction | U | N/A |
CancelEdit | U | N/A |
CancelSelectTextDraw | U | N/A |
ChangeVehicleColor | U | N/A |
ChangeVehiclePaintjob | U | N/A |
ClearActorAnimations | U | N/A |
ClearAnimations | U | N/A |
ConnectNPC | U | N/A |
Create3DTextLabel | U | N/A |
CreateActor | U | N/A |
CreateExplosion | C | N/A |
CreateExplosionForPlayer | U | N/A |
CreateMenu | U | N/A |
CreateObject | U | N/A |
CreatePickup | U | N/A |
CreatePlayer3DTextLabel | U | N/A |
CreatePlayerObject | U | N/A |
CreatePlayerTextDraw | U | N/A |
CreateVehicle | U | N/A |
Delete3DTextLabel | U | N/A |
DeletePVar | U | N/A |
DeletePlayer3DTextLabel | U | N/A |
DeleteSVar | U | N/A |
DestroyActor | U | N/A |
DestroyMenu | U | N/A |
DestroyObject | U | N/A |
DestroyPickup | U | N/A |
DestroyPlayerObject | U | N/A |
DestroyVehicle | U | N/A |
DetachTrailerFromVehicle | U | N/A |
DisableInteriorEnterExits | U | N/A |
DisableMenu | U | N/A |
DisableMenuRow | U | N/A |
DisableNameTagLOS | U | N/A |
DisablePlayerCheckpoint | U | N/A |
DisablePlayerRaceCheckpoint | U | N/A |
DisableRemoteVehicleCollisions | U | N/A |
EditAttachedObject | U | N/A |
EditObject | U | N/A |
EditPlayerObject | U | N/A |
EnablePlayerCameraTarget | U | N/A |
EnableStuntBonusForAll | U | N/A |
EnableStuntBonusForPlayer | U | N/A |
EnableTirePopping | U | N/A |
EnableVehicleFriendlyFire | U | N/A |
EnablezoneNames | U | N/A |
FindModelFileNameFromCRC | U | N/A |
FindTextureFileNameFromCRC | U | N/A |
ForceClassSelection | U | N/A |
GameModeExit | U | N/A |
GameTextForAll | U | N/A |
GameTextForPlayer | U | N/A |
GangzoneCreate | U | N/A |
GangzoneDestroy | U | N/A |
GangzoneFlashForAll | U | N/A |
GangzoneFlashForPlayer | U | N/A |
GangzoneHideForAll | U | N/A |
GangzoneHideForPlayer | U | N/A |
GangzoneShowForAll | U | N/A |
GangzoneShowForPlayer | U | N/A |
GangzoneStopFlashForAll | U | N/A |
GangzoneStopFlashForPlayer | U | N/A |
GetActorFacingAngle | U | N/A |
GetActorHealth | U | N/A |
GetActorPoolSize | U | N/A |
GetActorPos | U | N/A |
GetActorVirtualWorld | U | N/A |
GetAnimationName | U | N/A |
GetConsoleVarAsBool | U | N/A |
GetConsoleVarAsInt | U | N/A |
GetConsoleVarAsString | U | N/A |
GetDistanceFromMeToPoint | U | N/A |
GetGravity | U | N/A |
GetMaxPlayers | U | N/A |
GetMyFacingAngle | U | N/A |
GetMyPos | U | N/A |
GetNetworkStats | U | N/A |
GetObjectModel | U | N/A |
GetObjectPos | U | N/A |
GetObjectRot | U | N/A |
GetPVarFloat | U | N/A |
GetPVarInt | U | N/A |
GetPVarNameAtIndex | U | N/A |
GetPVarString | U | N/A |
GetPVarType | U | N/A |
GetPVarsUpperIndex | U | N/A |
GetPlayerAmmo | U | N/A |
GetPlayerAnimationIndex | U | N/A |
GetPlayerArmedWeapon | U | N/A |
GetPlayerArmour(playerid) | U | N/A |
GetPlayerArmour(playerid, &Float:armour) | U | N/A |
GetPlayerCameraAspectRatio | U | N/A |
GetPlayerCameraFrontVector | U | N/A |
GetPlayerCameraMode | U | N/A |
GetPlayerCameraPos | U | N/A |
GetPlayerCameraTargetActor | U | N/A |
GetPlayerCameraTargetObject | U | N/A |
GetPlayerCameraTargetPlayer | U | N/A |
GetPlayerCameraTargetVehicle | U | N/A |
GetPlayerCamerazoom | U | N/A |
GetPlayerColor | U | N/A |
GetPlayerCustomSkin | U | N/A |
GetPlayerDistanceFromPoint | U | N/A |
GetPlayerDrunkLevel | U | N/A |
GetPlayerFacingAngle | U | N/A |
GetPlayerFightingStyle | U | N/A |
GetPlayerHealth(playerid) | U | N/A |
GetPlayerHealth(playerid, &Float:health) | U | N/A |
GetPlayerInterior | U | N/A |
GetPlayerIp | U | N/A |
GetPlayerKeys | U | N/A |
GetPlayerLastShotVectors | U | N/A |
GetPlayerMenu | U | N/A |
GetPlayerMoney | U | N/A |
GetPlayerName | U | N/A |
GetPlayerNetworkStats | U | N/A |
GetPlayerObjectModel | U | N/A |
GetPlayerObjectPos | U | N/A |
GetPlayerObjectRot | U | N/A |
GetPlayerPing | U | N/A |
GetPlayerPoolSize | U | N/A |
GetPlayerPos | U | N/A |
GetPlayerScore | U | N/A |
GetPlayerSkin | U | N/A |
GetPlayerSpecialAction | U | N/A |
GetPlayerState | U | N/A |
GetPlayerSurfingObjectID | U | N/A |
GetPlayerSurfingVehicleID | U | N/A |
GetPlayerTargetActor | U | N/A |
GetPlayerTargetPlayer | U | N/A |
GetPlayerTeam | U | N/A |
GetPlayerTime | U | N/A |
GetPlayerVehicleID | U | N/A |
GetPlayerVehicleSeat | U | N/A |
GetPlayerVelocity | U | N/A |
GetPlayerVersion | U | N/A |
GetPlayerVirtualWorld | U | N/A |
GetPlayerWantedLevel | U | N/A |
GetPlayerWeapon | U | N/A |
GetPlayerWeaponData | U | N/A |
GetPlayerWeaponState | U | N/A |
GetSVarFloat | U | N/A |
GetSVarInt | U | N/A |
GetSVarNameAtIndex | U | N/A |
GetSVarString | U | N/A |
GetSVarType | U | N/A |
GetSVarsUpperIndex | U | N/A |
GetServerTickRate | U | N/A |
GetServerVarAsBool | U | N/A |
GetServerVarAsInt | U | N/A |
GetServerVarAsString | U | N/A |
GetTickCount | U | N/A |
GetVehicleComponentInSlot | U | N/A |
GetVehicleComponentType | U | N/A |
GetVehicleDamageStatus | U | N/A |
GetVehicleDistanceFromPoint | U | N/A |
GetVehicleHealth | U | N/A |
GetVehicleModel | U | N/A |
GetVehicleModelInfo | U | N/A |
GetVehicleParamsCarDoors | U | N/A |
GetVehicleParamsCarWindows | U | N/A |
GetVehicleParamsEx | U | N/A |
GetVehicleParamsSirenState | U | N/A |
GetVehiclePoolSize | U | N/A |
GetVehiclePos | U | N/A |
GetVehicleRotationQuat | U | N/A |
GetVehicleTrailer | U | N/A |
GetVehicleVelocity | U | N/A |
GetVehicleVirtualWorld | U | N/A |
GetVehiclezAngle | U | N/A |
GetWeaponName | U | N/A |
GivePlayerMoney | U | N/A |
GivePlayerWeapon | U | N/A |
HTTP | U | N/A |
HideMenuForPlayer | U | N/A |
InterpolateCameraLookAt | U | N/A |
InterpolateCameraPos | U | N/A |
IsActorInvulnerable | U | N/A |
IsActorStreamedIn | U | N/A |
IsObjectMoving | U | N/A |
IsPlayerAdmin | U | N/A |
IsPlayerAttachedObjectSlotUsed | U | N/A |
IsPlayerConnected | U | N/A |
IsPlayerInAnyVehicle | U | N/A |
IsPlayerInCheckpoint | U | N/A |
IsPlayerInRaceCheckpoint | U | N/A |
IsPlayerInRangeOfPoint | U | N/A |
IsPlayerInVehicle | U | N/A |
IsPlayerNPC | U | N/A |
IsPlayerObjectMoving | U | N/A |
IsPlayerStreamedIn(playerid) | U | N/A |
IsPlayerStreamedIn(playerid, forplayerid) | U | N/A |
IsTrailerAttachedToVehicle | U | N/A |
IsValidActor | U | N/A |
IsValidMenu | U | N/A |
IsValidObject | U | N/A |
IsValidPlayerObject | U | N/A |
IsValidVehicle | U | N/A |
IsVehicleStreamedIn(vehicleid) | U | N/A |
IsVehicleStreamedIn(vehicleid, forplayerid) | U | N/A |
Kick | U | N/A |
KillTimer | U | N/A |
LimitGlobalChatRadius | U | N/A |
LimitPlayerMarkerRadius | U | N/A |
LinkVehicleToInterior | U | N/A |
ManualVehicleEngineAndLights | U | N/A |
MoveObject | U | N/A |
MovePlayerObject | U | N/A |
NetStats_BytesReceived | U | N/A |
NetStats_BytesSent | U | N/A |
NetStats_ConnectionStatus | U | N/A |
NetStats_GetConnectedTime | U | N/A |
NetStats_GetIpPort | U | N/A |
NetStats_MessagesReceived | U | N/A |
NetStats_MessagesRecvPerSecond | U | N/A |
NetStats_MessagesSent | U | N/A |
NetStats_PacketLossPercent | U | N/A |
PauseRecordingPlayback | U | N/A |
PlayAudioStreamForPlayer | C | N/A |
PlayCrimeReportForPlayer | U | N/A |
PlayerPlaySound | U | N/A |
PlayerSpectatePlayer | U | N/A |
PlayerSpectateVehicle | U | N/A |
PlayerTextDrawAlignment | U | N/A |
PlayerTextDrawBackgroundColor | U | N/A |
PlayerTextDrawBoxColor | U | N/A |
PlayerTextDrawColor | U | N/A |
PlayerTextDrawDestroy | U | N/A |
PlayerTextDrawFont | U | N/A |
PlayerTextDrawHide | U | N/A |
PlayerTextDrawLetterSize | U | N/A |
PlayerTextDrawSetOutline | U | N/A |
PlayerTextDrawSetPreviewModel | U | N/A |
PlayerTextDrawSetPreviewRot | U | N/A |
PlayerTextDrawSetPreviewVehCol | U | N/A |
PlayerTextDrawSetProportional | U | N/A |
PlayerTextDrawSetSelectable | U | N/A |
PlayerTextDrawSetShadow | U | N/A |
PlayerTextDrawSetString | U | N/A |
PlayerTextDrawShow | U | N/A |
PlayerTextDrawTextSize | U | N/A |
PlayerTextDrawUseBox | U | N/A |
PutPlayerInVehicle | U | N/A |
RedirectDownload | U | N/A |
RemoveBuildingForPlayer | U | N/A |
RemovePlayerAttachedObject | U | N/A |
RemovePlayerFromVehicle | U | N/A |
RemovePlayerMapIcon | U | N/A |
RemoveVehicleComponent | U | N/A |
RepairVehicle | U | N/A |
ResetPlayerMoney | U | N/A |
ResetPlayerWeapons | U | N/A |
ResumeRecordingPlayback | U | N/A |
SHA256_PassHash | U | N/A |
SelectObject | U | N/A |
SelectTextDraw | U | N/A |
SendChat | U | N/A |
SendClientCheck | U | N/A |
SendClientMessage | U | N/A |
SendClientMessageToAll | U | N/A |
SendCommand | C | N/A |
SendDeathMessage | U | N/A |
SendDeathMessageToPlayer | U | N/A |
SendPlayerMessageToAll | U | N/A |
SendPlayerMessageToPlayer | U | N/A |
SendRconCommand | U | N/A |
SetActorFacingAngle | U | N/A |
SetActorHealth | U | N/A |
SetActorInvulnerable | U | N/A |
SetActorPos | U | N/A |
SetActorVirtualWorld | U | N/A |
SetCameraBehindPlayer | C | N/A |
SetDeathDropAmount | U | N/A |
SetGameModeText | U | N/A |
SetGravity | U | N/A |
SetMenuColumnHeader | U | N/A |
SetMyFacingAngle | U | N/A |
SetMyPos | U | N/A |
SetNameTagDrawDistance | U | N/A |
SetObjectMaterial | U | N/A |
SetObjectMaterialText | U | N/A |
SetObjectNoCameraCol | U | N/A |
SetObjectPos | U | N/A |
SetObjectRot | U | N/A |
SetObjectsDefaultCameraCol | U | N/A |
SetPVarFloat | U | N/A |
SetPVarInt | U | N/A |
SetPVarString | U | N/A |
SetPlayerAmmo | U | N/A |
SetPlayerArmedWeapon | U | N/A |
SetPlayerArmour | U | N/A |
SetPlayerAttachedObject | U | N/A |
SetPlayerCameraLookAt | C | N/A |
SetPlayerCameraPos | C | N/A |
SetPlayerChatBubble | U | N/A |
SetPlayerCheckpoint | U | N/A |
SetPlayerColor | U | N/A |
SetPlayerDrunkLevel | U | N/A |
SetPlayerFacingAngle | U | N/A |
SetPlayerFightingStyle | U | N/A |
SetPlayerHealth | U | N/A |
SetPlayerInterior | U | N/A |
SetPlayerMapIcon | U | N/A |
SetPlayerMarkerForPlayer | U | N/A |
SetPlayerName | U | N/A |
SetPlayerObjectMaterial | U | N/A |
SetPlayerObjectMaterialText | U | N/A |
SetPlayerObjectNoCameraCol | U | N/A |
SetPlayerObjectPos | U | N/A |
SetPlayerObjectRot | U | N/A |
SetPlayerPos | U | N/A |
SetPlayerPosFindz | U | N/A |
SetPlayerRaceCheckpoint | U | N/A |
SetPlayerScore | U | N/A |
SetPlayerShopName | U | N/A |
SetPlayerSkillLevel | U | N/A |
SetPlayerSkin | U | N/A |
SetPlayerSpecialAction | U | N/A |
SetPlayerTeam | U | N/A |
SetPlayerTime | U | N/A |
SetPlayerVelocity | U | N/A |
SetPlayerVirtualWorld | U | N/A |
SetPlayerWantedLevel | U | N/A |
SetPlayerWeather | U | N/A |
SetPlayerWorldBounds | U | N/A |
SetSVarFloat | U | N/A |
SetSVarInt | U | N/A |
SetSVarString | U | N/A |
SetSpawnInfo | U | N/A |
SetTeamCount | U | N/A |
SetTimer | U | N/A |
SetTimerEx | U | N/A |
SetVehicleAngularVelocity | U | N/A |
SetVehicleHealth | U | N/A |
SetVehicleNumberPlate | U | N/A |
SetVehicleParamsCarDoors | U | N/A |
SetVehicleParamsCarWindows | U | N/A |
SetVehicleParamsEx | U | N/A |
SetVehicleParamsForPlayer | U | N/A |
SetVehiclePos | U | N/A |
SetVehicleToRespawn | U | N/A |
SetVehicleVelocity | U | N/A |
SetVehicleVirtualWorld | U | N/A |
SetVehiclezAngle | U | N/A |
SetWeather | C | N/A |
SetWorldTime | U | N/A |
ShowMenuForPlayer | U | N/A |
ShowNameTags | U | N/A |
ShowPlayerDialog | U | N/A |
ShowPlayerMarkers | U | N/A |
ShowPlayerNameTagForPlayer | U | N/A |
SpawnPlayer | U | N/A |
StartRecordingPlayback | U | N/A |
StartRecordingPlayerData | U | N/A |
StopAudioStreamForPlayer | C | N/A |
StopObject | U | N/A |
StopPlayerObject | U | N/A |
StopRecordingPlayback | U | N/A |
StopRecordingPlayerData | U | N/A |
TextDrawAlignment | U | N/A |
TextDrawBackgroundColor | U | N/A |
TextDrawBoxColor | U | N/A |
TextDrawColor | U | N/A |
TextDrawCreate | U | N/A |
TextDrawDestroy | U | N/A |
TextDrawFont | U | N/A |
TextDrawHideForAll | U | N/A |
TextDrawHideForPlayer | U | N/A |
TextDrawLetterSize | U | N/A |
TextDrawSetOutline | U | N/A |
TextDrawSetPreviewModel | U | N/A |
TextDrawSetPreviewRot | U | N/A |
TextDrawSetPreviewVehCol | U | N/A |
TextDrawSetProportional | U | N/A |
TextDrawSetSelectable | U | N/A |
TextDrawSetShadow | U | N/A |
TextDrawSetString | U | N/A |
TextDrawShowForAll | U | N/A |
TextDrawShowForPlayer | U | N/A |
TextDrawTextSize | U | N/A |
TextDrawUseBox | U | N/A |
TogglePlayerClock | U | N/A |
TogglePlayerControllable | U | N/A |
TogglePlayerSpectating | U | N/A |
UnBlockIpAddress | U | N/A |
Update3DTextLabelText | U | N/A |
UpdatePlayer3DTextLabelText | U | N/A |
UpdateVehicleDamageStatus | U | N/A |
UsePlayerPedAnims | U | N/A |
VectorSize | U | N/A |
acos | C | N/A |
asin | C | N/A |
atan | C | N/A |
atan2 | C | N/A |
db_close | C | BigETI |
db_debug_openfiles | C | BigETI |
db_debug_openresults | C | BigETI |
db_field_name | C | BigETI |
db_free_result | C | BigETI |
db_get_field | C | BigETI |
db_get_field_assoc | C | BigETI |
db_get_field_assoc_float | C | BigETI |
db_get_field_assoc_int | C | BigETI |
db_get_field_float | C | BigETI |
db_get_field_int | C | BigETI |
db_get_mem_handle | C | BigETI |
db_get_result_mem_handle | C | BigETI |
db_next_row | C | BigETI |
db_num_fields | C | BigETI |
db_num_rows | C | BigETI |
db_open | C | BigETI |
db_query | C | BigETI |
format | U | N/A |
gpci | U | N/A |
C | N/A | |
printf | C | N/A |
Generated by grep -Eoh 'forward ?([^\(]*)\(.*' *.inc | sort | uniq | cut -d" " -f2 | cut -d"(" -f1 | xargs -n 1 sh -c 'echo "| $0 | U | N/A |"'
on samp-stdlib
on this commit.
If you want the data only, then run the command without xargs
.
name | status | issue/assignee |
---|---|---|
OnActorStreamIn | U | N/A |
OnActorStreamOut | U | N/A |
OnClientCheckResponse | U | N/A |
OnClientMessage | U | N/A |
OnDialogResponse | U | N/A |
OnEnterExitModShop | U | N/A |
OnFilterScriptExit | U | N/A |
OnFilterScriptInit | U | N/A |
OnGameModeExit | U | N/A |
OnGameModeInit | U | N/A |
OnIncomingConnection | U | N/A |
OnNPCConnect | U | N/A |
OnNPCDisconnect | U | N/A |
OnNPCEnterVehicle | U | N/A |
OnNPCExitVehicle | U | N/A |
OnNPCModeExit | U | N/A |
OnNPCModeInit | U | N/A |
OnNPCSpawn | U | N/A |
OnObjectMoved | U | N/A |
OnPlayerClickMap | U | N/A |
OnPlayerClickPlayer | U | N/A |
OnPlayerClickPlayerTextDraw | U | N/A |
OnPlayerClickTextDraw | U | N/A |
OnPlayerCommandText | C | N/A |
OnPlayerConnect | U | N/A |
OnPlayerDeath(playerid) | U | N/A |
OnPlayerDeath(playerid, killerid, reason) | U | N/A |
OnPlayerDisconnect | U | N/A |
OnPlayerEditAttachedObject | U | N/A |
OnPlayerEditObject | U | N/A |
OnPlayerEnterCheckpoint | U | N/A |
OnPlayerEnterRaceCheckpoint | U | N/A |
OnPlayerEnterVehicle | U | N/A |
OnPlayerExitVehicle | U | N/A |
OnPlayerExitedMenu | U | N/A |
OnPlayerFinishedDownloading | U | N/A |
OnPlayerGiveDamage | U | N/A |
OnPlayerGiveDamageActor | U | N/A |
OnPlayerInteriorChange | U | N/A |
OnPlayerKeyStateChange | U | N/A |
OnPlayerLeaveCheckpoint | U | N/A |
OnPlayerLeaveRaceCheckpoint | U | N/A |
OnPlayerObjectMoved | U | N/A |
OnPlayerPickUpPickup | U | N/A |
OnPlayerRequestClass | U | N/A |
OnPlayerRequestDownload | U | N/A |
OnPlayerRequestSpawn | U | N/A |
OnPlayerSelectObject | U | N/A |
OnPlayerSelectedMenuRow | U | N/A |
OnPlayerSpawn | U | N/A |
OnPlayerStateChange | U | N/A |
OnPlayerStreamIn(playerid) | U | N/A |
OnPlayerStreamIn(playerid, forplayerid) | U | N/A |
OnPlayerStreamOut(playerid) | U | N/A |
OnPlayerStreamOut(playerid, forplayerid) | U | N/A |
OnPlayerTakeDamage | U | N/A |
OnPlayerText | U | N/A |
OnPlayerUpdate | U | N/A |
OnPlayerWeaponShot | U | N/A |
OnRconCommand | U | N/A |
OnRconLoginAttempt | U | N/A |
OnRecordingPlaybackEnd | U | N/A |
OnScriptCash | U | N/A |
OnTrailerUpdate | U | N/A |
OnUnoccupiedVehicleUpdate | U | N/A |
OnVehicleDamageStatusUpdate | U | N/A |
OnVehicleDeath | U | N/A |
OnVehicleMod | U | N/A |
OnVehiclePaintjob | U | N/A |
OnVehicleRespray | U | N/A |
OnVehicleSirenStateChange | U | N/A |
OnVehicleSpawn | U | N/A |
OnVehicleStreamIn(vehicleid) | U | N/A |
OnVehicleStreamIn(vehicleid, forplayerid) | U | N/A |
OnVehicleStreamOut(vehicleid) | U | N/A |
OnVehicleStreamOut(vehicleid, forplayerid) | U | N/A |
Maybe profile it to see how well it handles
cout
โ printf
in short.
Use the implementation from AMXModX: https://github.com/alliedmodders/amxmodx/blob/master/amxmodx/format.cpp#L711
A few notes about SetPlayerPos
:
GetPlayerPos
is subsequently called. Should vehicle state be updated as well?SetPlayerPos
. It sends the relocate command to the client, then lets the returning sync packet update the internally stored position. This is arguably more accurate wrt where the player actually is.Those are almost mutually exclusive - either treat commands as the source of truth, in which case the vehicle needs updating on the server instantly; or treat sync packets as the source of truth, in which case GetPlayerPos
should return the old value for a little while.
Add an anglemode
parameter to the asin
, acos
, atan
and atan2
natives, just as was done in this commit: https://github.com/openmultiplayer/old.open.mp/pull/213/commits/4d024cc15b0f79aba86b34f3dcec60b329ad0c68
This was done in the old repo to be more consitent with the floatsin
, floatcos
and floattan
natives.
Would also be nice to provide aliases for these functions:
floatsin
-> sin
floatcos
-> cos
floattan
-> tan
Both mentioned things are not required features, just nice to have. Therefore also not adding this issue to the 'initial server release' milestone.
goals:
some additional notes:
SCRIPT_API(SendDeathMessage, bool(IPlayer* killer, IPlayer* killee, int weapon))
{
if(killee != nullptr)
{
PawnManager::Get()->players->sendDeathMessageToAll(killer, *killee, weapon);
}
else
{
// args: component name, native name, argument name
LogTemplates::InvalidArguments("player", "SendDeathMessage", "playerid");
}
return true;
}
Would, potentially (if using logfmt) output:
ts=2021-01-01T12:04:11 component="player" native="SendDeathMessage" arg="playerid" msg="invalid native argument"
Which would construct a properly formatted log using a well-known structure, this would keep logs of the same types of events consistent and allow for easier searching/filtering.
In this scenario, if a server owner wants to find all the points where their script is making invalid native calls, they can filter for invalid native argument
and be certain that there are no other patterns to look for - they get the native name, argument name all in one, easy to read event.
This also facilitates the ability for larger more complex servers to ingest logs into a proper log aggregator for searching and filtering. Though I'd imagine I could count on one hand how many servers would find the need for this. That being said, by facilitating this, it may help server owners investigate new tools to make their operational tasks easier.
Should be done after OnGameModeInit/OnFilterScriptInit has finished
https://github.com/AmyrAhmady/oben.mb/commit/ba2995d6971bed64bda1001e9247db72ba0fe9f0 removes the SimplePlugin
subdirectory in favor of PawnPlugin
. The latter isn't present in the repo, so the build fails.
Just tested this again, remembering my work on this issue from the old repo.
Printing to console already works, as this functionality is provided by amxcons.c. But directly using that implementation is the cause of a color issue, see explanation here.
Solution 1: Don't directly call amxcons.c implementation from Pawn
Just write a print native like you'd do for any other SA-MP native, in which you call the amxcons.c function. This effectively cancels out the three 0
values received from the pawn script as you'd ignore them and replace each with -1
.
SCRIPT_API(print, int(const std::string& string))
{
// Make call to n_print from amxcons.c with -1 for the three colors
}
This is the way SA-MP does it. Benefit of this approach is that you don't need people to update their pawn-stdlib and samp-stdlib includes. This approach might be the way to go, as you'd need to do this anyway if you'd want to duplicate the output to a log file, aka server_log.txt
.
Solution 2: Make people update their include files
pawn-lang/pawn-stdlib#13
pawn-lang/samp-stdlib#40
These pull requests make it so that pawn defaults to sending -1
instead of 0
for the three colors. Benefit of this approach is that people can start using colors when printing to the console. That's definitely a nice to have feature.
Solution 3: Hybrid
SCRIPT_API(print, int(const std::string& string, int foreground, int background, int highlight))
{
// Make call to n_print from amxcons.c and pass through the three colors
}
People would still need to update their include files to send the default of -1
from Pawn, but they can supply their own colors if they want to.
Solution 4: Overloading of a SCRIPT_API native
SCRIPT_API(print, int(const std::string& string))
{
// Make call to n_print from amxcons.c with -1 for the three colors
}
SCRIPT_API(print, int(const std::string& string, int foreground, int background, int highlight))
{
// Make call to n_print from amxcons.c and pass through the three colors
}
I don't know if this is possible.
Solution 5: Default paramters to a SCRIPT_API native
SCRIPT_API(print, int(const std::string& string, int foreground = -1, int background = -1, int highlight = -1))
{
// Make call to n_print from amxcons.c and pass through the three colors
}
I don't know if this is possible.
The server will crash if vehicles are destroyed during execution of OnVehicleSpawn.
I think vehicles respawn should be handled once a second not every player update. It doesn't make any sense.
https://github.com/openmultiplayer/open.mp/blob/master/Server/Components/Vehicles/vehicles_impl.hpp#L425
Also, vehicles with respawn time -1 should be respawned after ~10s as already discussed on discord.
/*
spawn in game, enter in Infernus and then leave.
wait ~5s ...
*/
#include <a_samp>
main() {}
public OnGameModeInit()
{
AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
CreateVehicle(411, -2327.5562,-1666.9230, 482.9944, 173.4508, 113, 186, 5, .addsiren = 0); //respawn time 5s
}
public OnVehicleSpawn(vehicleid)
{
printf("vehicle %d respawned, let's destroy it ..", vehicleid);
DestroyVehicle(vehicleid);
printf("hello from the other side ...");
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerPos(playerid, -2322.5808,-1626.6237,483.7053);
SetPlayerFacingAngle(playerid, 125.8567);
return 1;
}
Line 78 in 024ef82
Assertion failed: false && "(ctrl != nullptr && IsFull(*ctrl)) && \"Invalid operation on iterator. The element might have \" \"been erased, or the table might have rehashed.\"", file C:\.conan\cafed4\1\include\absl/container/internal/raw_hash_set.h, line 504
ts="2021-04-11T16:20:00Z" msg="a thing happened" player="Southclaws"
additional stuff:
Should be read by the LegacyConfig component
Instead of deleting them at the end of every tick, before calling any event with an entity passed to it, store their ID and break if their ID is no longer valid in the pool
There are several issues with the checkpoints module:
IsPlayerInCheckpoint
will continue to work after DisablePlayerCheckpoint
is called because enabled_
isn't checked.enabled_
is somewhat redundant, just add a NONE
type to the type_
enum. You save some memory, and IsPlayerInCheckpoint
gets fixed for free since the type check will now fail.size
should be standardised as radius, instead radius or diameter as it currently is. But this is a breaking change so needs the breaking API.IsPlayerInRaceCheckpoint
will return false
, but only because the radius is 0.0
, which is more luck than judgement and easy to break.Add a print type - Debug, Info, Error - to printLn and write them to a file and other proper outputs
If the vehicle is not streamed in for a player yet, SA-MP runs a sync pass for the player on the position of the vehicle, so everything around the vehicle (including the vehicle itself) is streamed to the player before sending the PutPlayerInVehicle RPC.
Since we're not doing this, usages of PutPlayerInVehicle where the vehicle is not synced yet (eg. vehicle just spawned, vehicle is far away) will fail because the vehicle is simply not there yet.
Having timers implemeneted into our SDK will make it far easier on people who want to:
write a timer implementation for their scripting language (pawn)
have timers in the gamemode components without going through 50 hoops just to call a function with a sleep delay.
that is all.
Add a misc component to add stuff into it that aren't really related to core and they aren't complex/big enough to be a separated component
For example, game init stuff, preloading animations for fixing samp bugs, and etc
For now just handle them and connect the default samp NPC program
Not in the latest YSF include:
My cmake invocation on Linux currently looks like this:
CC="$(which clang) -m32" CXX="$(which clang++) -m32" cmake .. -DCMAKE_BUILD_TYPE=Debug
Obviously passing -m32 straight into CC/CXX env vars isn't ideal ; I'm opening this issue so that we don't forget to find a solution eventually :-)
This makes the PlayerInit RPC contain an outdated value
Should be passed to onInit and stored in core
Both these endpoints use the same method: a simple HTTP GET request and that's it:
https://api.open.mp/{version}/announce/{port}
http://lists.sa-mp.com/{version}/announce/{port}
In future, we probably want more stuff like controlling server description, banner image, stuff like that. But for now, simple HTTP call is all you need for either endpoint.
Looking at here: https://github.com/openmultiplayer/open.mp/blob/master/Server/Components/Pawn/Scripting/Core/Natives.cpp#L252-L278
It seems like we are confusing server variables with SVars
For the starter, all GetServerVariableAs(X) are deprecated, and samp is using GetConsoleVarAs(X) right now
they are console variables, not a global map accessed across pawn scripts
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.