Aprиs avoir vu plusieurs postes tombйs а l'oubli, j'ai eu l'idйe d'en crйer un nouveau.
Ici, postez vos codes et essayer de donner des conseils sur les moyens de codages, optimisations.
Personnellement, je lance le sujet. Alors je vais postй un premier code qui permet d'avoir un systиme assez dynamique au niveau des tйlйportations.
pawn Code:
#include <a_samp>
#define NB_TELEPORTS_ADMIN 4 // -> Nombre de tйlйportations administratives
#define DIALOG_TP 444
#define COLOR_SERVER 0x0080C0FF // -> Serveur
#define COLOR_RED 0xFF0000FF // -> Rouge
#define COLOR_GREEN 0x20F709FF // -> Vert
#define COL_SERVER "{0080C0}" // -> Serveur
#define COL_RED "{FF0000}" // -> Rouge
#define COL_GREEN "{20F709}" // -> Vert
enum TeleportsEAdmin{
Float:Foot[3], // -> Positions а pied
Float:Car[3], // -> Position en voiture
Title[30], // -> Nom de l'endroit
};
new TeleportsAdmin[NB_TELEPORTS_ADMIN][TeleportsEAdmin]={
{{1544.9292, -1675.9814, 13.5594}, {1531.4608, -1675.7124, 13.0894}, "Poste de police"},
{{1481.8082, -1744.9556, 13.5469}, {1482.3436, -1734.2109, 13.0878}, "Mairie"},
{{1957.7123, -2182.8772, 13.5469}, {1959.8885, -2173.3911, 13.1566}, "Aйroport"},
{{1777.6606, -1862.4928, 13.5762}, {1814.5088, -1852.0403, 13.1207}, "Gare"}
};
public OnPlayerCommandText(playerid, cmdtext[]){
if(strcmp(cmdtext, "/tp", true) == 0){
new list[1024]; // -> Autant pour pouvoir suivre avec les ajouts de positions
for(new t = 0; t < NB_TELEPORTS_ADMIN; t++)
format(list, sizeof(list), "%s"COL_SERVER"• "COL_RED"%s\n", list, TeleportsAdmin[t][Title]);
ShowPlayerDialog(playerid, DIALOG_TP, DIALOG_STYLE_LIST, COL_SERVER"• "COL_GREEN"A quel point souhaitez-vous aller "COL_SERVER"?", list, "Continuer", "Quitter");
return 1;
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
new msg[128];
if(dialogid == DIALOG_TP){
if(!response)
return 1;
new veh = GetPlayerVehicleID(playerid);
if(veh)
SetVehiclePos(veh, TeleportsAdmin[listitem][Car][0], TeleportsAdmin[listitem][Car][1], TeleportsAdmin[listitem][Car][2]);
else
SetPlayerPos(playerid, TeleportsAdmin[listitem][Foot][0], TeleportsAdmin[listitem][Foot][1], TeleportsAdmin[listitem][Foot][2]);
format(msg, sizeof(msg), "• Information : "COL_GREEN"Vous avez йtй tйlйportй а : "COL_RED"%s"COL_GREEN".", TeleportsAdmin[listitem][Title]);
SendClientMessage(playerid, COLOR_SERVER, msg);
return 1;
}
return 1;
}
Je pense que le code est assez facile а amйliorer au niveau du nombre de positions.