Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*============================================================================================================================*
- * Credits: Dieser FilterScript "Interaktive Dialoge" wurde von Jeffry gemacht! *
- * *
- * *
- * Made in January 2014. *
- * *
- * Rechte des Benutzers: *
- * *
- * -Es ist erlaubt den FilterScript zu modifizieren, solange keine Credits entfernt werden oder er veröffentlicht wird. *
- * *
- * -Es ist nicht erlaubt diesen FilterScript neu zu veröffentlichen. *
- * -Es ist nicht elaubt dies als sein eigenes Werk darzustellen oder zu verkaufen. *
- * -Es ist nicht erlaubt Credits zu entfernen. *
- * *
- * Danke. *
- * Viel Spaß. *
- * *
- *=============================================================================================================================*/
- #include <a_samp>
- new g_PlayerDialog[MAX_PLAYERS] = {-1,...};
- #define MAX_OWN_DIALOGS 100
- new g_dCaption[MAX_OWN_DIALOGS][36];
- new g_dInfo[MAX_OWN_DIALOGS][256];
- new g_dButton1[MAX_OWN_DIALOGS][8];
- new g_dButton2[MAX_OWN_DIALOGS][8];
- public OnPlayerDisconnect(playerid, reason)
- {
- g_PlayerDialog[playerid] = -1;
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(!strcmp("/ListeZeigen", cmdtext, true))
- {
- ShowPlayerDialog_Ex(playerid, 0, DIALOG_STYLE_LIST, "Beispiel", GetDialogInfo(0), "Ausw.", "Cancel");
- SetTimer("a", 400, 1);
- return 1;
- }
- if(!strcmp("/InListeEintragen", cmdtext, true))
- {
- AddItemToDialog(0, SpielerName(playerid));
- return 1;
- }
- if(!strcmp("/AusListeAustragen", cmdtext, true))
- {
- RemoveItemFromDialog(0, SpielerName(playerid));
- return 1;
- }
- return 0;
- }
- forward a();
- public a()
- {
- new b[20];
- switch(random(10))
- {
- case 0: b = "Listitem A";
- case 1: b = "Listitem B";
- case 2: b = "Listitem C";
- case 3: b = "Listitem D";
- case 4: b = "Listitem E";
- case 5: b = "Listitem F";
- case 6: b = "Listitem G";
- case 7: b = "Listitem H";
- case 8: b = "Listitem I";
- case 9: b = "Listitem J";
- }
- switch(random(2))
- {
- case 0: AddItemToDialog(0, b);
- case 1: RemoveItemFromDialog(0, b);
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- g_PlayerDialog[playerid] = -1;
- if(dialogid == 0 && response == 1)
- {
- new item[64], l_found_id = -1;
- item = GetItemFromDialog(dialogid, listitem);
- if(!strlen(item)) return SendClientMessage(playerid, 0xFF0000FF, "Fehler: Item nicht gefunden");
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) && !strcmp(SpielerName(i), item))
- {
- l_found_id = i;
- break;
- }
- }
- new l_str[144];
- format(l_str, sizeof(l_str), "Info: Ich habe Spieler %s mit der ID %d angeklickt.", SpielerName(l_found_id), l_found_id);
- return SendClientMessage(playerid, -1, l_str);
- }
- return 0;
- }
- stock ShowPlayerDialog_Ex(playerid, dialogid, style, caption[], info[], button1[], button2[])
- {
- g_PlayerDialog[playerid] = dialogid;
- ShowPlayerDialog(playerid, dialogid, style, caption, info, button1, button2);
- if(dialogid > -1 && dialogid < MAX_OWN_DIALOGS)
- {
- format(g_dCaption[dialogid], sizeof(g_dCaption[]), caption);
- format(g_dInfo[dialogid], sizeof(g_dInfo[]), info);
- format(g_dButton1[dialogid], sizeof(g_dButton1[]), button1);
- format(g_dButton2[dialogid], sizeof(g_dButton2[]), button2);
- }
- return 1;
- }
- stock GetPlayerDialog(playerid)
- {
- return g_PlayerDialog[playerid];
- }
- stock GetDialogCaption(dialogid)
- {
- return g_dCaption[dialogid];
- }
- stock GetDialogInfo(dialogid)
- {
- return g_dInfo[dialogid];
- }
- stock GetDialogButton1(dialogid)
- {
- return g_dButton1[dialogid];
- }
- stock GetDialogButton2(dialogid)
- {
- return g_dButton2[dialogid];
- }
- stock AddItemToDialog(dialogid, item[])
- {
- new l_pos = strfind(g_dInfo[dialogid], item);
- if(l_pos != -1) strdel(g_dInfo[dialogid], l_pos, l_pos+strlen(item)+1);
- format(g_dInfo[dialogid], sizeof(g_dInfo[]), "%s%s\n", g_dInfo[dialogid], item);
- return UpdateDialogForAll(dialogid);
- }
- stock RemoveItemFromDialog(dialogid, item[])
- {
- new l_pos = strfind(g_dInfo[dialogid], item);
- if(l_pos == -1) return 0;
- strdel(g_dInfo[dialogid], l_pos, l_pos+strlen(item)+1);
- return UpdateDialogForAll(dialogid);
- }
- stock GetItemFromDialog(dialogid, listitem)
- {
- new l_str[64], c_count, l_lastpos = -1, tmp[sizeof(g_dInfo[])];
- tmp = "*";
- for(new i=0; i<strlen(g_dInfo[dialogid]); i++)
- {
- if(g_dInfo[dialogid][i] == '\n')
- {
- if(c_count == listitem)
- {
- tmp = g_dInfo[dialogid];
- strdel(tmp, i, strlen(g_dInfo[dialogid]));
- strdel(tmp, 0, l_lastpos+1);
- break;
- }
- c_count++;
- l_lastpos = i;
- }
- }
- format(l_str, sizeof(l_str), tmp);
- return l_str;
- }
- stock UpdateDialogForAll(dialogid)
- {
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(g_PlayerDialog[i] == dialogid)
- {
- ShowPlayerDialog(i, g_PlayerDialog[i], DIALOG_STYLE_LIST, g_dCaption[g_PlayerDialog[i]], g_dInfo[g_PlayerDialog[i]], g_dButton1[g_PlayerDialog[i]], g_dButton2[g_PlayerDialog[i]]);
- }
- }
- return 1;
- }
- stock SpielerName(playerid)
- {
- new l_name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, l_name, sizeof(l_name));
- return l_name;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement