From SA:MP and open.mp
A draft mapping of the main callbacks and natives to DarqlineMP. Pawn ids become handles: where a native takes playerid, the DarqlineMP call is a method of the Player handle. Some methods also have a dlmp.<name>(player, ...) form; the API reference lists which. Read Moving a game mode first for what works differently.
Callbacks
| SA:MP / open.mp | DarqlineMP |
|---|---|
OnGameModeInit, OnGameModeExit | resource_start, resource_stop with dlmp.resource_root as the source |
OnIncomingConnection | player_connecting (refusable) |
OnPlayerConnect, OnPlayerDisconnect | player_connect, player_disconnect |
OnPlayerRequestClass, OnPlayerRequestSpawn | none: choose the skin and place yourself, for example in a dialog, then player:spawn |
OnPlayerSpawn, OnPlayerDeath | player_spawn, player_death |
OnPlayerTakeDamage, OnPlayerGiveDamage | player_damage |
OnPlayerText | player_chat; return false to stop the broadcast |
OnPlayerCommandText | dlmp.add_command_handler, one handler per command |
OnRconCommand | dlmp.add_console_command |
OnDialogResponse | the callback passed to dlmp.show_dialog |
OnPlayerStateChange | player_state_change; player_enter_vehicle and player_exit_vehicle for seats |
OnPlayerEnterVehicle, OnPlayerExitVehicle | vehicle_start_enter (refusable), player_exit_vehicle |
OnVehicleDeath, OnVehicleSpawn | vehicle_death, vehicle_respawn |
OnPlayerPickUpPickup | pickup_interact |
OnPlayerEnterCheckpoint, OnPlayerLeaveCheckpoint | checkpoint_enter, checkpoint_leave |
OnPlayerKeyStateChange | player_key_change, or player_action for a key of your own |
OnPlayerWeaponShot | player_weapon_fire |
OnPlayerInteriorChange | player_interior_change |
OnPlayerStreamIn, OnPlayerStreamOut | player_stream_in, player_stream_out |
OnPlayerClickMap | player_waypoint |
Timers and scripts
| SA:MP / open.mp | DarqlineMP |
|---|---|
SetTimer, SetTimerEx | dlmp.set_timer(ms, repeats, fn, ...): repeats 0 runs until cancelled |
KillTimer | timer:cancel() |
CallRemoteFunction | an export of the other resource, called through dlmp.import(name) |
SetGameModeText | dlmp.set_mode_text |
SendRconCommand("password ...") | dlmp.set_server_password |
Players
| SA:MP / open.mp | DarqlineMP |
|---|---|
SendClientMessage | player:send_message(text), or a list of colored runs |
SendClientMessageToAll | player:send_message for each of dlmp.players() |
SendPlayerMessageToAll | player:send_chat(recipients, text) |
GetPlayerName, SetPlayerName | player:name(), player:set_name(name) |
SpawnPlayer, SetSpawnInfo | player:spawn(args); player:set_respawn(args) decides where a death respawns |
SetPlayerPos, SetPlayerFacingAngle, SetPlayerInterior | player:teleport({ x, y, z, heading, interior }) |
GetPlayerPos, GetPlayerFacingAngle, GetPlayerInterior | player:position(), player:heading(), player:interior() |
SetPlayerVirtualWorld | player:set_virtual_world(world) |
SetPlayerHealth, GetPlayerHealth | player:set_health(value), player:health() |
SetPlayerArmour, GetPlayerArmour | player:set_armor(value), player:armor() |
GivePlayerMoney, GetPlayerMoney, ResetPlayerMoney | player:give_money(amount), player:money(), player:set_money(0) |
SetPlayerSkin, GetPlayerSkin | player:set_skin(model, variant), player:skin() |
SetPlayerWantedLevel | player:set_wanted(level) |
SetPlayerColor | player:set_color(color) |
SetPlayerTeam | player:set_team(team) with a team from dlmp.create_team |
SetPlayerTime, SetPlayerWeather | player:set_time(hour, minute), player:set_weather(weather) |
SetPlayerVelocity | player:set_velocity(x, y, z) |
SetPlayerDrunkLevel | player:set_drunk_level(level) |
SetPlayerWorldBounds | player:set_world_bounds(min_x, min_y, max_x, max_y) |
TogglePlayerControllable | player:set_frozen(frozen) (the opposite flag) |
ApplyAnimation, ClearAnimations | player:apply_animation(args), player:clear_animations() |
SetPlayerSpecialAction | player:set_special_action(action) |
SetPlayerChatBubble | player:set_chat_bubble(...) |
ShowPlayerNameTagForPlayer(viewer, target, show) | target:set_nametag_visible_for(viewer, show): the method belongs to the player whose nametag it is |
SetPlayerCameraPos, SetPlayerCameraLookAt, SetCameraBehindPlayer | player:set_camera(...), player:reset_camera() |
PlayerSpectatePlayer | player:spectate(target), player:reset_camera() to stop |
PlayerSpectateVehicle | none yet: spectate follows players only |
Kick, Ban, BanEx | player:kick(reason), player:ban(reason, seconds) |
Weapons
| SA:MP / open.mp | DarqlineMP |
|---|---|
GivePlayerWeapon | player:give_weapon(weapon, ammo) |
ResetPlayerWeapons | player:clear_weapons() |
SetPlayerAmmo, SetPlayerArmedWeapon | player:set_ammo(...), player:set_armed_weapon(weapon) |
SetPlayerSkillLevel | player:set_weapon_skill(class, level) |
CreateExplosion | dlmp.create_explosion(spec) |
Vehicles
| SA:MP / open.mp | DarqlineMP |
|---|---|
CreateVehicle, AddStaticVehicle | dlmp.create_vehicle(spec) |
DestroyVehicle | dlmp.destroy_vehicle(vehicle) |
PutPlayerInVehicle, RemovePlayerFromVehicle | dlmp.put_player_in_vehicle(...), dlmp.remove_player_from_vehicle(player) |
SetVehiclePos, SetVehicleZAngle, SetVehicleVelocity | dlmp.set_vehicle_position, dlmp.set_vehicle_rotation, dlmp.set_vehicle_velocity |
SetVehicleHealth, RepairVehicle | dlmp.set_vehicle_health, dlmp.repair_vehicle |
ChangeVehicleColor, ChangeVehiclePaintjob | dlmp.set_vehicle_colors, dlmp.set_vehicle_paintjob |
AddVehicleComponent, RemoveVehicleComponent | dlmp.add_vehicle_component, dlmp.remove_vehicle_component |
SetVehicleNumberPlate | dlmp.set_vehicle_plate |
SetVehicleParamsEx | dlmp.set_vehicle_engine, _lights, _alarm, _locked, one call per setting; the objective marker is per player, below |
SetVehicleParamsForPlayer | dlmp.set_vehicle_objective(vehicle, player, on) and dlmp.set_vehicle_locked_for(vehicle, player, locked) |
SetVehicleToRespawn | dlmp.respawn_vehicle(vehicle) |
AttachTrailerToVehicle, DetachTrailerFromVehicle | dlmp.attach_trailer, dlmp.detach_trailer |
World and interface
| SA:MP / open.mp | DarqlineMP |
|---|---|
CreatePickup, DestroyPickup | dlmp.create_pickup(spec), dlmp.destroy_pickup(pickup) |
Create3DTextLabel | dlmp.create_label(spec) |
SetPlayerMapIcon | dlmp.create_blip(spec) |
GangZoneCreate, GangZoneShowForAll | dlmp.create_gang_zone(spec) |
SetPlayerCheckpoint | dlmp.create_checkpoint(spec) |
CreateObject, MoveObject, AttachObjectToVehicle | dlmp.create_object(spec), object:move(...), object:attach(...) |
SetPlayerAttachedObject | object:attach_bone(player, bone, ...) |
ShowPlayerDialog | dlmp.show_dialog(player, spec, callback) |
CreateMenu, ShowMenuForPlayer | dlmp.show_menu(...) |
GameTextForPlayer | dlmp.show_announcement(player, spec) |
| Text draws | HUD widgets (status lines, progress, notifications, gauges) or a view |
Plugins
| Plugin | DarqlineMP |
|---|---|
| MySQL, SQLite | dlmp.db, the resource's own SQLite storage: Storing data |
| Commands (zcmd, Pawn.CMD) | dlmp.add_command_handler |
| Dialogs and menus | dlmp.show_dialog, dlmp.show_menu |
