Suggestions For Future Sa:MP Versions.
#1

Suggestions for functions

pawn Код:
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 Код:
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)
Reply
#2

• 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.
Reply
#3

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
Reply
#4

  • SetInstagibForWeapon(warponid)
  • AttachVehicleToVehicle(vehid, tovehid)
More to come, sitting in a car ATM.
Reply
#5

-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)
Reply
#6

Global:
- EnableVehicleRadioStations ( 0 ); (true/false)


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

TogglePassengerRadio(vehicleid,toggle);
SetVehicleRadioStation(vehicleid,radio);
SetVehicleDamage(vehicleid,partid,damage);
GetVehicleDamage(vehicleid,partid) return damage
GetTrafficLightColor(lightid) return 0=red 1=green
GetTrafficLightID(Float,Float:y,Float:z) return id

Example Usage:
pawn Код:
light1 = GetTrafficLightColor(GetTrafficLightID(1254.4465,-8752.125,78.235));
Reply
#8

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.
Reply
#9

OnVehicleUpdate(vehicleid)

Same as OnPlayerUpdate just version for vehicles.
Reply
#10

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
Reply
#11

Quote:
  • WebBrowserShowForPlayer(playerid); // Read definition below
  • WebBrowserShowForAll(playerid); // Read definition below
  • WebAddressForPlayer(playerid,address[]); // It should call WebBrowserShowForPlayer and automatically open address[]
  • WebAddressForAll(address[]); // It should call WebBrowserShowForAll and automatically open address[]
DEFINITION: It should open a web browser (not Mozilla FF/IE, but something like Xfire Web Browser (key combination and little window pop up)).
Reply
#12

SetClientTimerEx(playerid, funcname, interval, repeating, const format[], {Float,_});


Instead of all the timers being ran server side. Simple timers should be able to be set client side. The reason I am suggesting this is that in my gamemode I use timers to set a cool down time after a perk has been used. All the function does that the timer runs is set a variable to False. The problem comes in that this can equal 20 or so timers per player. Since SetTimer and SetTimerEx set and control the timers server side and could cause lag, why not be able to have the client take some of the simple timer load from the server....


P.s it needs the playerid first to know what client to set the timer up for :P
Reply
#13

oh and freeze the head while a special action... FreezeHead -- if SpecialActioninUse

you dont really want to have smoke in your ears etc ^_^
Reply
#14

Suggestions regarding bots:

GetBotHealth(botid, &Float:health)
SetBotHealth(botid, Float:health)
GetBotArmour(botid, &Float:armour)
SetBotArmour(botid, Float:armour)
AddStaticBot(botid, skinid, x, y, z, a)
GetBotPos(botid, x, y, z)
SetBotInterior(botid, x, y, z)
SetBotPos(botid, interiorid)
GetBotInterior(botid, interiorid)
GetBotVirtualWorld(botid, worldid)
SetBotVirtualWorld(botid, worldid)
IsBotAnyVehicle
IsBotInArea


This way bots could protect warehouses, HeadQuarters, anything, and attackers wouldn't have to waste a load of ammo to kill them. And also these functions could be used for a lot more things regarding RP and not only!
Reply
#15

You can still use player functions on NPCs, you know.
Reply
#16

Quote:
Originally Posted by Seif_
No you can't exploit that function... And if it's only in GTA directory, then hacks can be made to be installed in other directories and such.
If possesing in client's privacy isn't abusing ...

And even if you can search whole client's computer like that, you can place those cheats anywhere and you will be scanning whole disc all the time or what?
Reply
#17

I dont like the ideas of having downloadable files/custom mods at all. Why does everyone suggest that, put a downloadlink to the e.g. mods on your site. There is no need for mods...
Atleast I wouldn't download mods from a server at all.
Reply
#18

Quote:
Originally Posted by TimmehBoy
I dont like the ideas of having downloadable files/custom mods at all. Why does everyone suggest that, put a downloadlink to the e.g. mods on your site. There is no need for mods...
Atleast I wouldn't download mods from a server at all.
I think it's just nice to use mods with a SA:MP native. Normal mods, which you install on your own, can bug with SA:MP (Crashes). Besides, when the downloading starts, you must be able to cancel the download (or make a yes/no menu on your own before downloading) and you don't have to wait, and you can play without mods.
Because I think it's a nice function, I wants to say this:
pawn Код:
native CreateCustomObjectForPlayer(playerid, modid, dfffile[], txdfile[], colfile[], Float:x, Float:y, Float:z); //new object = Load.....
native LoadCustomVehicleForPlayer(playerid, modid, dfffile[], txdfile[], replacement[]);
native LoadCustomWeaponForPlayer(playerid, modid, dfffile[], txdfile[], replacement[]);
native UnloadCustomModForPlayer(playerid, modid);

forward OnPlayerDownloadStart(playerid, modid);
forward OnPlayerDownloadCancel(playerid, modid);
forward OnPlayerDownloadFinish(playerid, modid);
Reply
#19

Texture mods are fine, but do you know how annoying it is when someone has a vehicle mod that makes you see them 4 meters under the road? It's annoying.

I have played SA:MP for over 3 years without any mods at all, and i'm not planning on changing that any time soon.

Just play the game.
Reply
#20

Is shooting from car with a AK47/M4/shotgun/deagle possible?If not it would be cool to make
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)