Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This is a comment
- // uncomment the line below if you want to write a filterscript
- //#define FILTERSCRIPT
- /*[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[Message de l'auteur]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
- Ce systeme se veux relativement simpliste.Il existe surement beaucoups de moyens d'optimiser la vitesse d'execution de celui-ci sans même passer par le moindre plugin.
- Il existe surement des optimisations possibles sans même utiliser de bibliotheques supplémentaires.si vous désirez améliorer/modifier celui-ci, vous y êtes invités!
- Ce script n'est soumis à AUCUNES licences et je renonce à mes droits de propriété intelectuele car il me semble que la lois française me donne des droits de propriétés à défaut de licence.
- Partagez le, modifiez le, hackez le, vendsez le mais surtout apréciez le!
- Concernant la vente, il n'y qu'une limite: votre moral !
- J'ai choisie l'utilisation de JSON (by DracoBlue) pour ses performances et sa simplicité d'utilisation.
- De même pour ZCMD.
- //--------------------------------------------------------------------------For English Readers-------------------------------------------------------------------------//
- For my english readers: This system is pretty simple and you may find many ways to improve the code without using more library(s) and/or plugin(s) and if you want to improve it by yourself: do it!
- This script is FREE and you may do everything you want with!
- Share it, Use it, sell it, hack it, but LOVE IT !
- About selling: there is only one limit: your soul!
- BTW, sorry for my bad english (^_^)
- ------------------------------------------------------------------------Message to sa:mp team--------------------------------------------------------------------//
- @Sa:Mp admin team: if u read this message (i think you will never ...) please tell WHY THE HELL I GOT BANNED FROM UR FORUM ?
- I have just asked about sa:mp major issues to tell my opinion and i got banned without any reason!
- I'm Jujuv and i have done a new account wich will probably spot.
- //-------------------------------------------------------------------------Anyway------------------------------------------------------------------------------//
- Have fun and remember to play only for fun !
- Jujuv.
- */
- //--------------------------------------------------------------------------------Inclusion de bibliotheques--------------------------------------------------------------//
- #include <a_samp>
- #include <djson>
- #include <zcmd>
- //-------------------------------------------------------------------------------definitions de macros-------------------------------------------------------------------//
- #define VEHFILE "vehicles.json"
- /*Properties*/
- #define VEH_RESPAWN_DELAY 60
- /*Dialog IDs*/
- #define DIALOG_CAR_COLOR_CHOOSE 1 /*Ces macro permetent de régler facilement les conflits d'IDs si vous utilisez d'autres boites de dialogue*/
- #define DIALOG_CAR_COLOR_CHOOSE_SECOND 2
- /*Colors*/
- #define COLOR_RED 0xD70000FF
- #define COLOR_YELLOW 0xFBEE04FF
- //----------------------------------------------------------------------------------Structures d'enumerations----------------------------------------------------------------------------------//
- enum E_VEH_DATA
- {
- registered,
- colour1,
- colour2
- }
- //-----------------------------------------------------------------------------Variables & tableaux globaux-------------------------------------------------------------------//
- new vehInfo[MAX_VEHICLES][E_VEH_DATA];
- //----------------------------------------------------------------------------Debut des callbacks et fonctions----------------------------------------------------------------//
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Blank Filterscript by your name here");
- print("--------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- #else
- main()
- {
- print("\n----------------------------------");
- print(" Simple Dynamic Vehicles System");
- print("----------------------------------\n");
- }
- #endif
- public OnGameModeInit()
- {
- djson_GameModeInit();//DO NOT REMOVE ! THIS IS NEEDED BY DJSON LIBRARY !
- if(!fexist(VEHFILE)) { djCreateFile(VEHFILE); print("Vehicle file created"); djSetInt(VEHFILE, "Total", 0);}
- else{ LoadRegisteredVehicles(); }
- return 1;
- }
- public OnGameModeExit()
- {
- djson_GameModeExit();//DO NOT REMOVE ! THIS IS NEEDED BY DJSON LIBRARY !
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- //don't use theses lines if it's a filterscript
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- /*Don't use OnPlayerCommandText callback ! ZCMD disalow use of this callback !*/
- /*
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- // Do something here
- return 1;
- }
- return 0;
- }
- */
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_CAR_COLOR_CHOOSE:
- {
- new colorID = strval(inputtext);
- if(colorID >= 0 && colorID <= 126)
- {
- SetPVarInt(playerid, "firstCarColor", colorID);
- ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_CHOOSE_SECOND, DIALOG_STYLE_INPUT, "Choose color ID", "Please enter a second color for your vehicle (color ID)", "Ok", "");
- }
- else { ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_CHOOSE, DIALOG_STYLE_INPUT, "Wrong color ID", "Please enter a valid color ID (0-126)", "Ok", ""); }
- }
- case DIALOG_CAR_COLOR_CHOOSE_SECOND:
- {
- new colorID = strval(inputtext);
- if(colorID >= 0 && colorID <= 126)
- {
- new Float:x, Float:y, Float:z, Float:fA, vehID;
- GetPlayerPos(playerid, x, y, z);
- GetPlayerFacingAngle(playerid, fA);
- vehID = CreateVehicle(GetPVarInt(playerid, "carModelID"), x, y, z, fA, GetPVarInt(playerid, "firstCarColor"), colorID, VEH_RESPAWN_DELAY);
- PutPlayerInVehicle(playerid, vehID, 0);
- }
- else { ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_CHOOSE_SECOND, DIALOG_STYLE_INPUT, "Wrong color ID", "Please enter a valid color ID (0-126)", "Ok", ""); }
- }
- }
- return 1;
- }
- stock LoadRegisteredVehicles()
- {
- new str[20], model, Float:x, Float:y, Float:z, Float:a, vehID, color1, color2, total;
- print("function called and executed");
- total = djInt(VEHFILE, "Total");
- printf("Total vehicles : %i", total);
- for(new i = 0; i <= total; i++)
- {
- print("one more loop");
- printf("%i loop(s)", i);
- format(str, sizeof(str), "%i/model", i);
- model = djInt(VEHFILE, str);
- if(model != -1)
- {
- print("block is executed");
- format(str, sizeof(str), "%i/axes/x", i);
- x = djFloat(VEHFILE, str);
- print("1");
- format(str, sizeof(str), "%i/axes/y", i);
- y = djFloat(VEHFILE, str);
- print("2");
- format(str, sizeof(str), "%i/axes/z", i);
- z = djFloat(VEHFILE, str);
- print("3");
- format(str, sizeof(str), "%i/axes/facingAngle", i);
- a = djFloat(VEHFILE, str);
- print("4");
- format(str, sizeof(str), "%i/colors/1", i);
- color2 = djInt(VEHFILE, str);
- print("5");
- format(str, sizeof(str), "%i/colors/2", i);
- color1 = djInt(VEHFILE, str);
- print("6");
- vehID = CreateVehicle(model, x, y, z, a, color1, color2, VEH_RESPAWN_DELAY);
- print("7");
- vehInfo[vehID][registered] = true;
- print("8");
- vehInfo[vehID][colour1] = color1;
- print("9");
- vehInfo[vehID][colour2] = color2;
- print("10");
- print("Not realy end of block ...");
- printf("%i vehicles loaded", i);
- print("End of block is executed too");
- }
- }
- }
- stock IsVehicleRegistered(vehID)
- {
- if(vehInfo[vehID][registered]) { return true; }
- else { return false; }
- }
- stock RegisterVehicle(vehID)
- {
- if(!IsVehicleRegistered(vehID))
- {
- new model, Float:x, Float:y, Float:z, Float:fA, total, str[20], i;
- model = GetVehicleModel(vehID);
- GetVehiclePos(vehID, x, y, z);
- GetVehicleZAngle(vehID, fA);
- total = djInt(VEHFILE, "Total");
- for(i = total; i > 0; i--)
- {
- format(str, sizeof(str), "%i/model", i);
- if(djInt(VEHFILE, str) == -1) {break;}
- }
- if(i == 0)
- {
- i = total+1;
- }
- format(str, sizeof(str), "%i/model", i);
- djSetInt(VEHFILE, str, model);
- format(str, sizeof(str), "%i/axes/x", i);
- djSetFloat(VEHFILE, str, x);
- format(str, sizeof(str), "%i/axes/y", i);
- djSetFloat(VEHFILE, str, y);
- format(str, sizeof(str), "%i/axes/z", i);
- djSetFloat(VEHFILE, str, z);
- format(str, sizeof(str), "%i/axes/facingAngle", i);
- djSetFloat(VEHFILE, str, fA);
- format(str, sizeof(str), "%i/colors/1", i);
- djSetInt(VEHFILE, str, vehInfo[vehID][colour1]);
- format(str, sizeof(str), "%i/colors/2", i);
- djSetInt(VEHFILE, str, vehInfo[vehID][colour2]);
- vehInfo[vehID][registered] = true;
- djSetInt(VEHFILE, "Total", djInt(VEHFILE, "Total")+1 );
- return true;
- }
- else{ return false; }
- }
- COMMAND:v(playerid, params[])
- {
- if(isnull(params)) { SendClientMessage(playerid, COLOR_YELLOW, "Usage: /v [modelID]");}
- else if(IsPlayerAdmin(playerid))//Adaptez cette condition à votre systeme d'admin'
- {
- new modelID = strval(params);
- if(modelID >= 400 && modelID <= 611)
- {
- SetPVarInt(playerid, "carModelID", modelID);
- ShowPlayerDialog(playerid, DIALOG_CAR_COLOR_CHOOSE, DIALOG_STYLE_INPUT, "Select a color", "Please enter a first color for your vehicle (color ID)", "Ok", "");
- }
- else { SendClientMessage(playerid, COLOR_YELLOW, "Please enter a valid vehicle model ID"); }
- }
- else { SendClientMessage(playerid, COLOR_RED, "You must e dmin to use this command"); }
- return 1;
- }
- COMMAND:register(playerid, params[])
- {
- if(IsPlayerAdmin(playerid))//Adaptez cette condition à votre systeme d'admin'
- {
- if(IsPlayerInAnyVehicle(playerid))
- {
- new response = RegisterVehicle(GetPlayerVehicleID(playerid));
- if(response) { SendClientMessage(playerid, COLOR_YELLOW, "Vehicle registered");}
- else { SendClientMessage(playerid, COLOR_RED, "This vehicle is allready registered"); }
- }
- else{ SendClientMessage(playerid, COLOR_RED, "You must be in any vehicle to do that !");}
- }
- else { SendClientMessage(playerid, COLOR_RED, "You must e dmin to use this command"); }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement