SA-MP Forums

SA-MP Forums (
-   General (
-   -   Suggestions For Future Sa:MP Versions. (

[03]Garsino 18/10/2009 10:02 AM

Suggestions For Future Sa:MP Versions.
Suggestions for functions

pawn Code:
native Attach3DTextLabelToObject(Text3D:id, objectid, Float:OffsetX, Float:OffsetY, Float:OffsetZ);
native TextDrawFadeInOut(Text:text, fade, time);
native TogglePlayerInteriorEnterExits(playerid, entrance, bool:toggle); // 'entrance' would be something like ENTRANCE_AMMU, ENTRANCE_PIZZA, etc.
native ToggleClientCommand(playerid, command[], bool:toggle); // Toggle the use of a client command, like disabling /save (some people use it to ripoff other servers). Should not work for /quit or /q
native SetPlayerWayPoint(playerid, Float:x, Float:y, Float:z); // Set the waypoint for a player with GTA SA nodes
native GetVehicelParamsEx(vehicleid, &engine, &lights, &alarm, &doors, &bonnet, &boot, &objective, &feature) // Add 'feature' parameter (like the one on the packer, andromada, etc.)
native SetVehicelParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective, feature); // Add 'feature' parameter (like the one on the packer, andromada, etc.)
native ToggleVehicleBlip(vehicleid, bool:toggle); // Toggle grey blip on radar for a vehicle
native TogglePlayerTearGasEffect(playerid, bool:toggle);
native Set3DTextSize(Text3D:id, Float:size);
native ShowNameTags(enabled, mode); // Modes: 0 = off, 1 = names, 2 = health/armour, 3 = all
native GetLOS(Float:x, Float:y, Float:z, Float:x2, Float:y2, Float:z2); // Returns the line-of-sight distance between 2 points.
native SetPlayerCheckpoint(playerid, Float:x, Float:y, Float:z, Float:size, color); // Add color parameter
native SetPlayerRaceCheckpoint(playerid, Float:x, Float:y, Float:z, Float:size, color); // Add color parameter
native SetPlayerChatBubble(playerid, text[], color, Float:drawdistance, expiretime, testLOS); // Add LOS parameter
native WalkToPos(Float:x, Float:y, Float:z, mode); // Make the NPC walk to a point. The modes are: 0 = walking, 1 = jogging, 2 = sprinting
native CreatePlayerPickup(playerid, model, type, Float:X, Float:Y, Float:Z, Virtualworld)
native ToggleVehicleCollision(vehicleid, bool:toggle);
native ToggleObjectCollision(objectid, bool:toggle);
native FadePlayerCamera(playerid, Float:speed);
native SetWaterLevel(Float:height);
native SetWaveHeight(Float:height);
native GetPlayerCursorPos(playerid, , &Float:x, &Float:y);
native GetMouseClickPos(playerid, &Float:x, &Float:y);
native TogglePlayerMinimap(playerid, bool:toggle);
native TogglePlayerChat(playerid, bool:toggle);
native SetPlayerCameraFocusVehicle/Player (camera follows said player/vehicle)
native MovePlayerCamera(playerid, Float:x, Float:y, Float:z);
native SetVehicleHandling(?);
native PutPlayerInCrane(playerid, craneid);
native TogglePlayerSPCheat(playerid, cheatname[], bool:toggle);
native GetTrainDirection(vehicleid); // Returns true if the train is driving clockwise on the train track, false if it is going counterclockwise.
native SetTrainDirection(vehicleid, bool:clockwise);
native GetTrainSpeed(vehicleid, &Float:speed);
native SetTrainSpeed(vehicleid, Float:speed);
native UsePlayerCopShootAnim();
native SetPlayerGravity(playerid, Float:gravity);
native SetVehicleGravity(vehicleid, Float:gravity);
native IsPlayerUsingJoypad(playerid);
native TogglePlayerScoreBoard(playerid, bool:toggle);
native IsPlayerChatShown(playerid); // Returns 1 if chat is shown, returns 0 if otherwis
native SetScoreHeader(header[]); // or something similar - changes the 'score' header to header[]
native GetPlayerNoise(playerid, &Float:noise);  // just like in the burgulary missions
native ToggleReturnToClassSelection or something similar to disable the effect of F4
native SetPlayerID(playerid, id); // Sets the ID of a player. Returns 1 if change was successfull, returns 0 if it were unable to complete the request (ID bigger than MAX_PLAYERS or invalid ID - below 0), returns -1 if it were unable to change the ID because of it already being used by another player/npc.
native GetPlayerLungCapacity(playerid, &Float:Capacity);
native SetPlayerLungCapacity(playerid, Float:Capacity);
native SetPlayerParamsForPlayer(playerid, forplayerid, objective, color); // basically making objectives in selected color to show above players like in SP
native SetVehicleParamsForPlayer(vehicleid, playerid, objective, color, doorslocked); // being able to choose color of the objective
native TogglePlayerHUD(playerid, hudid, bool:toggle); // 0 - Radar, 1 - Money, 2 - HealthBar, etc.
native TogglePlayerPillEffect(playerid, bool:toggle); // Pretty self explanatory, toggles the slow motion effect caused by the pill pickup.
native CreateFaced3DTextLabel(text[], color, Float:x, Float:y, Float:z, Float:angle, Float:drawdistance, virtualworld, testLOS);
native TextDrawMove(Text:text, Float:x, Float:y, Float:speed);
native ToggleOcuppiedVehicleDamage(bool:toggle);
native ToggleWorldSun(bool:toggle);
native AddScoreboardColumn(name[], position) // Position is the position of the column (like before player id column, after player id column, etc).
native RemoveScoreboardColumn(name[]);
native SetScoreboardColumnValue(playerid, name[], value);
native SendDeathMessageForPlayer(playerid, killer, victim, reason);
native AttachVehicleToObject(vehicleid, objectid);
native ShowPlayerDialog(playerid, dialogid, style, caption[], info[], {Float,_}:...); // Change button1[] and button2[] to allow for 1 or more buttons
native TogglePlayerMouseCursor(playerid, bool:toggle);
native TogglePlayerControllable(playerid, mode) // modes: 0 - controllable 1 - cant move, but can move camera 2 - completely uncontrollable
native SetPlayerMaxHealth(playerid, Float:health); // If health is above 100, it will increase the healthbar
native GetPlayerMaxHealth(playerid, &Float:health);
native TogglePlayerSpeedBlur(playerid, bool:toggle);
native ToggleVehicleDamage(vehicleid, bool:toggle); // Works on vacant vehicles too (vacant vehicles set to invincible by default).
native ToggleCombineHarvesterDeath(bool:toggle);
native TogglePlayerHead(playerid, bool:toggle);
native GetPlayerPageSize(playerid);
Suggestions for callbacks

pawn Code:
forward OnObjectDamage(objectid, Float:damage, destroyed);
forward OnPlayerEnterVehicle(playerid, vehicleid, seatid); // Add seatid parameter
forward OnPlayerClickPlayer(playerid, clickedplayerid, source); // Add sources: CLICK_SOURCE_CHAT and CLICK_SOURCE_NAMETAG
forward OnPlayerVend(playerid, oldmoney, newmoney, machinetype);
forward OnPlayerCasinoPlay(playerid, oldmoney, newmoney, casinoid, machinetype); // Machine type is like vending machine, blackjack, etc. casinoid is the casino (4 dragons, casigulas, redsands)
forward OnPlayerRecieveStuntBonus(playerid, amount);
forward OnPlayerDeath(playerid, killerid, reason, bodypart); // Add bodypart parameter
forward OnPlayerMouseClick(playerid, press, buttonid); // Press would be 1 if the player is pressing, 0 if releasing. buttonid would be LMB, RMB, MMB, etc.
forward OnPlayerShoot(playerid, weaponid, Float:x, Float:y, Float:z);
forward OnVehicleDeath(vehicleid, reason); // Reason would be fire, water, explosion, etc.
forward OnEnterExitModShop(playerid, enterexit, interiorid); // returning 0 here will prevent the player from entering
Suggestions for gameplay tuning


Remove all default sounds from interiors (casino music, ammunation, saint marks bistro, shamal interior, welcome pump diner interior, strip clubs, etc)
Sync flames
Vehicle on vehicle surfing (for example ability to transport cars on the packer)
The ability to right click on a server in the internet/hosted list to add it to your favourites
Search for hostname in the server browser
Display a message if the password is incorrect on the client, instead of ingame.
Synced back doors on 4door cars
Synced paintjobs and vehicle colors
Synced furniture in burgulary houses
fix drive-by for passenger - the player can keep his head down and tuck in pressing "H"
Send the 'Connected to servername' message BEFORE OnPlayerConnect
Ability to highlight text in chat like in the type-box (and copy etc.)
Log opcodes to a file
Make TAB show the scoreboard, and hide when it is released

Suggestions for the server controlling


RCON command (re/un)loadplugin [pluginname]
Other suggestions


GVars (Global Vars) - possibly put the plugin by Incognito "into" SA:MP
Control over dialog design
Functions to attach vehicles to players and vice-versa
Functions to create and control the design of buttons
playerid parameter is UsePlayerPedAnims
Detection for all keys
Client-sided timers
Rounded textdraw corners (toggle)
A way to add messages to the 'breif' section of a player's pause menu
Automatic directory creation in fwrite if the directory doesn't exist
-1 in the 'world' parameter of 3D labels
New dialog types:

Tickbox dialog type
Radio button dialog type
TAB dialog type (like a button that's either push in or out, and stays like that)
New spectate modes
  • SPECTATE_MODE_CINEMATIC (spec with cinematic view)

  • SPECTATE_MODE_TEXTDRAW (hide textdraws)

  • SPECTATE_MODE_RADAR (show radar)

A function to hide the class selection GUI
Enable pool tables (or a function to toggle it) (OnPlayerPlayPool - OnPlayerPoolBallHit)
A 'freeze' parameter in SetPlayerCameraPos that determins whether a player can move their camera after
A function to let players use the minigun like in the RC baron mission with zero in singleplayer
A function to disable auto-aim (weapons)
Enable/Disable Spawnbuttons
The ability to attach players to vehicles
Make colour embedding work in dialog buttons
"\a<1-3>" --Sets the alignment for the following text in a dialog (1=left alignment, 2=center, 3=right alignment)
"\p<0-1>" --Sets proportional characters for even spacing (0=disable, 1=enable)
"\d" --The following texts won't be selectable if using DIALOG_STYLE_LIST
"\e" --The following texts will be selectable
"\i<0-1>" --Italics (0=disable, 1=enable)
"\b<0-1>" --Bold (0=disable, 1=enable)
"\s<1-40>" --Letter size
"\u<0-1>" --Under lining (0=disable, 1=enable)

Rainmaker 18/10/2009 10:54 AM

Re: Suggestions For Future Sa:MP Versions.
Save values /pagesize and /fpslimit or any other upcoming similar values in special file, or put it somewhere in userdata.
(typing these commands at every connect is really bothering and I think its pretty easy for you for to make it)

Detect hit zones (at least head properly)

Try to sync blur efect and make it toggleable via script (I know you already tried)

Try to polish vehicle surf a lil bit further. Its pretty much ok right now, but e.g. jumping from one driven vehicle to another is still pain in the ass

Try to fix bug when sometimes for some players train in SF stations seems for them to be on tram railway and then it is driving around the city.

I know you were able to make undriven vehicles synced (in terms of damage) since begining but please make it toggleable in ongamemodeinit.
I know it will harm consistent gameplay thing a lil bit, but it would be just awesome. Some guys love blowing things up (every guy ?).

Via 3rd F7 mode hide even all textdraws / gametexts (for cameraman use at any server)

Finally enable F10 server stats thing ?

Add some filters for server search in internet list

Try to sync some stuff like cranes.

Try to handle casinos and stunt bonuses. I would like to have control over casino income / money manipulation as well as in case of stunt bonus income.

Sergei 18/10/2009 10:58 AM

Re: Suggestions For Future Sa:MP Versions.
1. ToggleVehicleEngine(vehicleid,toggle)

2. ToggleVehicleLights(vehicleid,toggle)

3. Being able to use colors in dialogs

4. OnPlayerCasinoUse(playerid,moneychange,interior,ma chineid)

5. Beign able to create all types of checkpoints, in different colours and also increment of checkpoint limit

6. Add TOS option in SetPlayerChatBubble

7. SetPlayerParamsForPlayer(playerid,forplayerid,obje ctive,color) - basically making objectives in selected color to show above players like in SP

8. SetVehicleParamsForPlayer(vehicleid,playerid,objec tive,color,doorslocked,tire1,tire2,tire3,tire4) - being able to choose color of the objective and also set status of each tire (popped or fixed)

9. Remove default gates in KACC base and the elevators from army ship in SF

10. RotateObject(objectid,Float:RotX,Float:RotY,Float: RotZ,Float:Speed)

11. TogglePlayerControllableEx(playerid,toggle) - same as original one, just that this one doesn't freeze player's camera, but only character

Joel_Krantz 18/10/2009 11:12 AM

Re: Suggestions For Future Sa:MP Versions.
  • SetInstagibForWeapon(warponid)
  • AttachVehicleToVehicle(vehid, tovehid)

More to come, sitting in a car ATM.

Guedes747 18/10/2009 12:06 PM

Re: Suggestions For Future Sa:MP Versions.
-Sync colors (above 400)
-Sync Heatseek missiles ( Hydra and Heatseek Rocket launcher )
-Sync the landing gears on Bots ( i think in players case, they are allready sync'ed)

woot 18/10/2009 12:20 PM

Re: Suggestions For Future Sa:MP Versions.
- EnableVehicleRadioStations ( 0 ); (true/false)

- SetVehicleRadioStation ( vehicleid, radiostationid );
- SetWeaponDamage ( weaponid, Float:damage );
- SetMaxVehicleSpeed ( modelid, speed ); // kmh / mph

erorcun 18/10/2009 12:29 PM

Re: Suggestions For Future Sa:MP Versions.
GetVehicleDamage(vehicleid,partid) return damage
GetTrafficLightColor(lightid) return 0=red 1=green
GetTrafficLightID(Float:x,Float:y,Float:z) return id

Example Usage:
pawn Code:
light1 = GetTrafficLightColor(GetTrafficLightID(1254.4465,-8752.125,78.235));

niCe 18/10/2009 02:01 PM

[Suggestion] Detecting hit/damage for next version of SA-MP
I believe there already is a system that remembers and assigns killerid in OnPlayerDeath, so maybe adding some callback to detect when player has attacked another player would be a good idea.

Sergei 18/10/2009 02:38 PM

Re: Suggestions For Future Sa:MP Versions.

Same as OnPlayerUpdate just version for vehicles.

Cedimedi 18/10/2009 03:20 PM

Re: Suggestions For Future Sa:MP Versions.
NPC: OnShootHit. - if this would exist you could mix it with SetPlayerHealth

TooglePlayerPartdamage. - parts of the body, if some shoots on the head you will die 100% and if some just shoots in your arm you will only loose 40% etc.

ToogleDynamicWeather - like with TooglePlayerClock, you just don't need to have a clock

ToogleVehicleGodMode - vehicle can't explode/damage, like a cheat

TooglePlayerGodMode - ^

Allready posted: OnVehicleDamage

All times are GMT. The time now is 10:37 PM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.