Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Fait par Christopher
- Panneau publicitaire
- */
- #include <a_samp>
- #define NULLBYTE 1
- #define MAX_PANNEAU 200 // Nombre maximum de panneau publicitaire
- #define DIALOGUE_TEXTE 1 // dialogid
- enum PPub {
- p_PiD,
- p_Text[25],
- Float:p_PosX,
- Float:p_PosY,
- Float:p_PosZ,
- Float:p_RotX,
- Float:p_RotY,
- Float:p_RotZ,
- p_Createur[MAX_PLAYER_NAME+NULLBYTE]
- }
- new Addon[3][MAX_PANNEAU];
- new Publicitaire[MAX_PANNEAU][PPub], PanneauObject[MAX_PANNEAU], IDPanneauProvisoire[MAX_PLAYERS], PlayerName[MAX_PLAYER_NAME+NULLBYTE];
- public OnPlayerCommandText(playerid, cmdtext[]) {
- new cmd[128], idx;
- cmd = strtok(cmdtext, idx);
- if(!strcmp(cmd, "/panneau", true)) {
- new subcmd[128];
- subcmd = strtok(cmdtext, idx);
- if(!strlen(subcmd)) {
- if(IsPlayerAdmin(playerid)) SendClientMessage(playerid, -1, "[Commande]: /panneau [Creer/Modifier/Supprimer]");
- else SendClientMessage(playerid, -1, "[Commande]: /panneau [Creer/Modifier]");
- }
- else if(strcmp(subcmd,"creer",true) == 0) {
- for(new i=0; i<MAX_PANNEAU; i++) {
- if(!IsValidObject(PanneauObject[i])) {
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(playerid, X, Y, Z);
- PanneauObject[i] = CreateObject(19482, X+1, Y, Z, 0.00000, 0.00000, 0.00000);
- IDPanneauProvisoire[playerid] = i;
- Addon[0][i] = CreateObject(1260, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000);
- Addon[1][i] = CreateObject(4735, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.60000);
- SetObjectMaterialText(Addon[1][i], "Votre Publicité", 0, OBJECT_MATERIAL_SIZE_256x32, "Calibri", 15, 0, 0xFF000000, 0xFFFFFFFF, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
- Addon[2][i] = CreateObject(4735, 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 180.60001);
- SetObjectMaterialText(Addon[2][i], "Votre Publicité", 0, OBJECT_MATERIAL_SIZE_256x32, "Calibri", 15, 0, 0xFF000000, 0xFFFFFFFF, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
- AttachObjectToObject(Addon[0][i], PanneauObject[i], 0.00000, 0.00000, 0.00000, 0.00000, 0.00000, 0.0000);
- AttachObjectToObject(Addon[1][i], PanneauObject[i], 0.35799, 0.09278, 5.36258, 0.00000, 0.00000, 0.60000);
- AttachObjectToObject(Addon[2][i], PanneauObject[i], 0.73180, 0.09280, 5.36260, 0.00000, 0.00000, 180.60001);
- EditObject(playerid, PanneauObject[i]);
- return 1;
- } else {
- SendClientMessage(playerid, -1, "Le nombre de panneau autoriser à été dépassé!");
- return 1;
- }
- }
- return 1;
- }
- else if(strcmp(subcmd,"modifier",true) == 0)
- {
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(playerid, X, Y, Z);
- GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
- for(new i = 0; i <MAX_PANNEAU; i++) {
- if(IsValidObject(PanneauObject[i])) {
- if(IsPlayerInRangeOfPoint(playerid, 20.0, Publicitaire[i][p_PosX], Publicitaire[i][p_PosY], Publicitaire[i][p_PosZ])) {
- if(!strcmp(Publicitaire[IDPanneauProvisoire[playerid]][p_Createur], PlayerName, true)) {
- IDPanneauProvisoire[playerid] = i;
- EditObject(playerid, PanneauObject[i]);
- return 1;
- } else if(IsPlayerAdmin(playerid)) {
- IDPanneauProvisoire[playerid] = i;
- EditObject(playerid, PanneauObject[i]);
- return 1;
- } else SendClientMessage(playerid, -1, "Vous n'avez pas la permission de modifier cette publicité");
- return 1;
- }
- } else SendClientMessage(playerid, -1, "Il n'y as aucun panneau publicitaire dans les environs");
- return 1;
- }
- }
- else if(strcmp(subcmd,"supprimer",true) == 0)
- {
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(playerid, X, Y, Z);
- GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
- if(IsPlayerAdmin(playerid)) {
- for(new i = 0; i <MAX_PANNEAU; i++) {
- if(IsValidObject(PanneauObject[i])) {
- if(IsPlayerInRangeOfPoint(playerid, 20.0, Publicitaire[i][p_PosX], Publicitaire[i][p_PosY], Publicitaire[i][p_PosZ])) {
- DestroyObject(Addon[0][i]);
- DestroyObject(Addon[1][i]);
- DestroyObject(Addon[2][i]);
- DestroyObject(PanneauObject[i]);
- }
- } else SendClientMessage(playerid, -1, "Il n'y as aucun panneau publicitaire dans les environs");
- return 1;
- }
- } else SendClientMessage(playerid, -1, "Vous n'avez pas la permission de supprimer cette publicité");
- return 1;
- }
- }
- return 1;
- }
- public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ) {
- if(objectid == PanneauObject[IDPanneauProvisoire[playerid]]) {
- if(response == EDIT_RESPONSE_FINAL) {
- ShowPlayerDialog(playerid,DIALOGUE_TEXTE, DIALOG_STYLE_INPUT, "Publicité", "Entrez votre texte ici (25 caractères).", "Valider", "");
- GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
- Publicitaire[IDPanneauProvisoire[playerid]][p_PiD] = IDPanneauProvisoire[playerid];
- Publicitaire[IDPanneauProvisoire[playerid]][p_PosX] = fX;
- Publicitaire[IDPanneauProvisoire[playerid]][p_PosY] = fY;
- Publicitaire[IDPanneauProvisoire[playerid]][p_PosZ] = fZ;
- Publicitaire[IDPanneauProvisoire[playerid]][p_RotX] = fRotX;
- Publicitaire[IDPanneauProvisoire[playerid]][p_RotY] = fRotY;
- Publicitaire[IDPanneauProvisoire[playerid]][p_RotZ] = fRotZ;
- Publicitaire[IDPanneauProvisoire[playerid]][p_Createur] = PlayerName;
- }
- return 1;
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOGUE_TEXTE: {
- if(!response) ShowPlayerDialog(playerid,DIALOGUE_TEXTE, DIALOG_STYLE_INPUT, "Publicité", "Entrez votre texte ici (25 caractères).", "Valider", "");
- else {
- Publicitaire[IDPanneauProvisoire[playerid]][p_Text] = strval(inputtext);
- SetObjectMaterialText(Addon[1][IDPanneauProvisoire[playerid]], inputtext, 0, OBJECT_MATERIAL_SIZE_256x32, "Calibri", 15, 0, 0xFF000000, 0xFFFFFFFF, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
- SetObjectMaterialText(Addon[2][IDPanneauProvisoire[playerid]], inputtext, 0, OBJECT_MATERIAL_SIZE_256x32, "Calibri", 15, 0, 0xFF000000, 0xFFFFFFFF, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
- }
- }
- }
- return 1;
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
- #error N'hésite pas à dire merci et à nous rendre visite sur www.outstanding-gaming.com
Advertisement
Add Comment
Please, Sign In to add comment