Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- new DialogTekstovi[3][] = {
- "Sada se mozete prijaviti upisivanjem Vase lozinke u\n\
- polje ispod. Imate 60 sekundi da se prijavite, \n\
- u protivnom cete biti kikovani.\n\n\
- Imate %d pokusaja upisavanja lozinke, ukoliko \n\
- je svaki put upisete pogresno, takodje cete biti kikovani!\n\n\
- Ako zelite odustati, mozete izabrati 'Odustani',\n\
- ako zelite nastaviti, nakon upisivanja lozinke izaberite\n\
- 'Potvrdi'.",
- //--------------------------------------------------------------------------
- "{FFFFFF}Tutorial o serveru se zavrsio, ako su vam neke stvari i dalje nejasne, mozete\n\
- pitati AFG TEAM ili suigraca za pomoc. Ako bi slucajno nasli gresku u\n\
- skripti, molimo Vas da ju istog trenutka prijavite bilo kojem clanu Fusion Gaming tima.\n\
- Ukoliko iskoristavate neku gresku (BUG), biti cete kaznjeni najvecom mogucom kaznom.\n\
- Zelimo Vam puno srece u daljnjem igranju, ne zaboravite na pravila roleplaya i ugodno\n\
- se zabavite! Fusion Gaming tim!",
- //--------------------------------------------------------------------------
- "Opste informacije i tehnicka podrska su dostupni da vam pomognu.\n\
- Radno vreme podrske je od ponedeljka do nedelje: 08:00 - 02:00.\n\n\
- Pravila komunikacije: Budite ljubazni i strpljivi. Tacno opisite problem.\n\
- Neprikladno ponasanje mozete rezultirati zabranom slanja pitanja!\n\n\
- Maksimalno 128 karaktera, minimalno 15 karakter.\n"
- };
- new AutoAnswers[6][150] = {
- "Da bismo Vam pomogli, molimo Vas da nam pruzite vise informacija.", // Odgovor 1
- "Stizem uskoro da Vam pomognem. Hvala na strpljenju.", // Odgovor 2
- "Za pitanja koja nisu u nasoj nadleznosti, molimo Vas da pogledate\nforum, FAQ ili TS3 za vise informacija. (/forum /ts3)", // Odgovor 3
- "Ukoliko imate tehnickih problema, preporucujemo\n da restartujete igru ili proverite Vasu Internet konekciju.", // Odgovor 4
- "Nazalost, ne mozemo pruziti informacije o vasem pitanju.\nMolimo Vas da pogledate forum, FAQ ili TS3 za vise informacija. (/forum /ts3)", // Odgovor 5
- "Hvala na strpljenju! Nas tim radi na resavanju problema i\nuskoro cemo Vas obavestiti o resenju." // Odgovor 6
- };
- //komanda
- CMD:pitaj( playerid, params[] ) {
- if( PlayerCuffed[ playerid ] >= 1 ) return SendErrorMessage( playerid, "Ne mozete koristiti komandu pod lisicama/tazerom.");
- if( PlayerInfo[ playerid ][ xZatvor ] != 0 ) return SendErrorMessage( playerid, "Ne mozete koristiti ovu komandu dok ste u zatvoru." );
- if( ServerInfo[ Pitanja ] == 0 ) return SendErrorMessage( playerid, "Trenutno nije moguce slanje pitanja. Molimo sacekajte. Hvala." );
- if( PlayerInfo[ playerid ][ xMute ] > gettime() ) return SendErrorMessage( playerid, "Ne mozete poslati pitanje jer ste mutirani.");
- if( PitajTajmer[ playerid ] > gettime() ) return SendErrorMessage( playerid, "Morate sacekati %d sekundi pre novog pitanja!", PitajTajmer[ playerid ]-gettime() );
- if( askqInfo[ playerid ][ askqSended ] == true ) return SendErrorMessage( playerid, "Vec ste poslali pitanje ili nije odgovoreno ili niste pogledali." );
- new sat, minut, sekund;
- gettime(sat, minut, sekund);
- //if(sat >= 2 && sat <= 7) return SendErrorMessage(playerid,"Korisnicka podrska trenutno ne radi. Radno vreme: 08:00 - 02:00.");
- ShowPlayerDialog(playerid, dialog_PitajCMD, DIALOG_STYLE_INPUT, "Korisnicka podrska", DialogTekstovi[2], "Posalji", "Odustani");
- return 1;
- }
- CMD:lp( playerid ) {
- if( PlayerInfo[ playerid ][ xAdmin ] >= 1 || PlayerInfo[ playerid ][ xModerator ] >= 1 || PlayerInfo[ playerid ][ xHelper ] >= 1 ) {
- if( !AdminDuty[ playerid ] ) return SendErrorMessage( playerid, "Morate biti na admin duty." );
- new color1[] = "{FF0000}"; // Prva boja - crvena
- new color2[] = "{FFFF00}"; // Druga boja - zuta
- new color3[] = "{339B6B}"; // Treca zelembara - serverko
- new colorCode[9]; // Za trenutno odabranu boju
- strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
- strcat( DialogStrgEx, "Redni broj\tKorisnicko ime\tID korisnika" );
- for( new i = 1; i < MAX_ASKQS; i++ ) {
- // Biramo boju u zavisnosti od intervala
- if (i <= 10) {
- strmid(colorCode, color1, 0, strlen(color1), 9);
- } else if (i <= 20) {
- strmid(colorCode, color2, 0, strlen(color2), 9);
- } else {
- strmid(colorCode, color3, 0, strlen(color3), 9);
- }
- format( globalstring, sizeof( globalstring ), "\n%s%d\t%s%s\t%s(%d)", colorCode, i, colorCode, askqList[ i ][ askqOwner ], colorCode, askqList[ i ][ askqID ] );
- strcat( DialogStrgEx, globalstring );
- }
- SPD( playerid, dialog_ASKLISTA, DIALOG_STYLE_TABLIST_HEADERS, D_NASLOV, DialogStrgEx, D_ODABERI, D_ODUSTANI );
- strdel( DialogStrgEx, 0, sizeof( DialogStrgEx ) );
- }
- else return SendErrorMessage( playerid, "Nemate ovlascenje da koristite ovu komandu." );
- return 1;
- }
- // DIALOG
- else if( dialogid == dialog_PitajCMD)
- {
- if(!response) return true;
- if(response)
- {
- new text[ 128 ];
- if(sscanf( inputtext, "s[128]", text )) return ShowPlayerDialog(playerid, dialog_PitajCMD, DIALOG_STYLE_INPUT, "Korisnicka podrska", DialogTekstovi[2], "Posalji", "Odustani");
- if(strlen(inputtext) < 15 || strlen(inputtext) > 128) return ShowPlayerDialog(playerid, dialog_PitajCMD, DIALOG_STYLE_INPUT, "Korisnicka podrska", DialogTekstovi[2], "Posalji", "Odustano");
- new level = PlayerInfo[playerid][xLevel];
- new askQ = -1;
- if (level == 1) {
- // Provera za nivo 1 u prvih 10 slotova
- for (new id = 1; id < 11; id++) {
- if (askqList[id][askqSend] == false) {
- askQ = id;
- break;
- }
- }
- if (askQ == -1) return SendErrorMessage(playerid, "Slotovi za level 1 su puni. Sacekajte dok se oslobodi mesto.");
- }
- else if(level >=2 && level <=10) {
- // Provera za nivo 1 u prvih 10 slotova
- for (new id = 11; id < 21; id++) {
- if (askqList[id][askqSend] == false) {
- askQ = id;
- break;
- }
- }
- if (askQ == -1) return SendErrorMessage(playerid, "Slotovi za level 2-10 su puni. Sacekajte dok se oslobodi mesto.");
- }
- else {
- // Porvera za level 10+ u slotovima od 20-30
- for (new id = 21; id < MAX_ASKQS; id++) {
- if (askqList[id][askqSend] == false) {
- askQ = id;
- break;
- }
- }
- if (askQ == -1) return SendErrorMessage(playerid, "Slotovi za level 2-10 su puni. Sacekajte dok se oslobodi mesto.");
- }
- askqList[ askQ ][ askqSend ] = true;
- askqList[ askQ ][ askqID ] = playerid;
- askqInfo[ playerid ][ askqSended ] = true;
- askqInfo[ playerid ][ askqAnswered ] = false;
- strmid( askqList[ askQ ][ askqOwner ], ImeIgraca( playerid ), 0, strlen( ImeIgraca( playerid ) ), 32 );
- strmid( askqList[ askQ ][ askqQuestion ], text, 0, strlen( text ), 128 );
- SendClientMessage( playerid, REALCRVENA, "Poslali ste pitanje Adminima i Helperima." );
- if(PlayerInfo[playerid][xLevel] < 10) {
- SendClientMessage(playerid, REALCRVENA, "Naplaceno vam je $70 zbog potencijalnih zloupotreba.");
- KGEyes_GivePlayerMoney(playerid, -70);
- }
- else {
- SendClientMessage(playerid, REALCRVENA, "Naplaceno vam je $700 za pitanje jer ste 10+ level.");
- KGEyes_GivePlayerMoney(playerid, -700);
- }
- format( globalstring, sizeof( globalstring ), "{FF0FE6}|ASKQ(%d)| %s[ID:%d][LVL:%d] je poslao pitanje. (/lp)", askQ, ImeIgraca( playerid ), playerid, PlayerInfo[playerid][xLevel]); // OLD color {7AF0FF}
- RPTChat( 0xFF0000FF, globalstring );
- PitajTajmer[ playerid ] = 45 + gettime();
- }
- return 1;
- }
- else if (dialogid == dialog_ASKLISTA) {
- if (!response) return true;
- listitem++;
- if (IsQuestionLocked[listitem]) return SendErrorMessage(playerid, "Odabrano pitanje trenutno je zauzeto.");
- if (askqList[listitem][askqSend] == false) return SendErrorMessage(playerid, "Pitanje nije pronadjeno u odabranom slotu.");
- IzabraniAskQ[playerid] = listitem;
- // Zakljucva pitanje da ga niko drugi ne moze otvoriti
- IsQuestionLocked[listitem] = true;
- // Prikazuje pitanje sa opcijama "Odgovori" i "Odustani"
- new string[512];
- //new askqID = askqList[listitem][askqID];
- format(string, sizeof(string), "Korisnik %s[ID:%d][LVL: %d] je poslalo/la pitanje.\nPitanje: %s\n\n*Pitanje je trenutno zakljucano za sve korisnike\ndok ne odustanete ili dok ne posaljete konacan odgovor.", askqList[listitem][askqOwner], askqList[listitem][askqID], PlayerInfo[askqList[listitem][askqID]][xLevel], askqList[listitem][askqQuestion]);
- SPD(playerid, dialog_ASKLISTA_2, DIALOG_STYLE_MSGBOX, "Korisnicka podrska", string, "Odgovori", "Odustani");
- }
- else if (dialogid == dialog_ASKLISTA_2) {
- if (!response)
- {
- SendInfoMessage(playerid, "Odustali ste od slanja odgovora korisniku %s.", askqList[IzabraniAskQ[playerid]][askqOwner]);
- // Ako helper odustane, oslobadja slot pitanja i ponovo ga aktivira
- IsQuestionLocked[IzabraniAskQ[playerid]] = false;
- // Pitanje postaje ponovo aktivno
- askqList[IzabraniAskQ[playerid]][askqSend] = true;
- IzabraniAskQ[ playerid ] = -1; // resetovanje
- return true;
- }
- // Prikazuje listu odgovora
- strdel(DialogStrgEx, 0, sizeof(DialogStrgEx));
- // petlja za automatski ispis automatskih odgovora, ali posto zelim da a/h ima u uvid barem deo odgovora, stavio zam strcat.
- /*for (new i = 1; i <= 6; i++) {
- format(globalstring, sizeof(globalstring), "\nAutomatski odgovor %d", i);
- strcat(DialogStrgEx, globalstring);
- }*/
- strcat(DialogStrgEx, "1. Pruzite nam vise informacija...\n");
- strcat(DialogStrgEx, "2. Stizem uskoro da vam pomognem...\n");
- strcat(DialogStrgEx, "3. Nije nasa nadleznost...\n");
- strcat(DialogStrgEx, "4. Ukoliko imate tehn. problema...\n");
- strcat(DialogStrgEx, "5. Ne mozemo pruziti vise informacija...\n");
- strcat(DialogStrgEx, "6. Nas tim radi na resavanju problema...\n");
- strcat(DialogStrgEx, "{FF0000}7. Napisite svoj odgovor");
- SPD(playerid, dialog_ANSWER_LIST, DIALOG_STYLE_LIST, "Izaberite odgovor:", DialogStrgEx, D_ODABERI, D_ODUSTANI);
- strdel(DialogStrgEx, 0, sizeof(DialogStrgEx));
- }
- else if (dialogid == dialog_ANSWER_LIST)
- {
- if (!response)
- {
- // Oslobadja slot ako helper odustane
- SendInfoMessage(playerid, "Odustali ste od slanja odgovora korisniku %s.", askqList[IzabraniAskQ[playerid]][askqOwner]);
- IsQuestionLocked[IzabraniAskQ[playerid]] = false;
- askqList[IzabraniAskQ[playerid]][askqSend] = true;
- IzabraniAskQ[ playerid ] = -1;
- return true;
- }
- new askid = IzabraniAskQ[playerid];
- new id = askqList[ askid ][ askqID ];
- new odgovorType = 0;
- switch(listitem)
- {
- case 0: odgovorType = 1; // auto odgoovr 1
- case 1: odgovorType = 2; // auto odgoovr 2
- case 2: odgovorType = 3; // auto odgoovr 3
- case 3: odgovorType = 4; // auto odgoovr 4
- case 4: odgovorType = 5; // auto odgoovr 5
- case 5: odgovorType = 6; // auto odgoovr 6
- case 6: odgovorType = 7; //manuelac
- default:
- {
- SendErrorMessage(playerid, "Doslo je do greske. Pokusajte ponovo.");
- IsQuestionLocked[IzabraniAskQ[playerid]] = false;
- askqList[IzabraniAskQ[playerid]][askqSend] = true;
- IzabraniAskQ[playerid] = -1;
- return 1;
- }
- }
- if(odgovorType >= 1 && odgovorType <= 6)
- {
- if( askqList[ askid ][ askqSend ] == false ) return SendErrorMessage( playerid, "Pitanje nije pronadjeno u odabranom slotu." );
- askqList[ askid ][ askqSend ] = false; // postavljamo na false zbog provera, primer ova iznad
- IsQuestionLocked[askid] = false;
- IzabraniAskQ[ playerid ] = -1;
- if( strcmp( ImeIgraca( id ), askqList[ askid ][ askqOwner ], true ) == 0 )
- {
- new responseText[150];
- askqInfo[ id ][ askqAnswered ] = true;
- // niz AutoAnswers deklarisan je na vrh skripte, 'odgovorType -1' korisitm zbog toga sto pitanje je niz
- // krece od 0, a slotovi i odgovori mi krecu od 1, pa ako je izabran 1. odgovor, 1-1=0, odnosno prva auto poruka, kuzis, ne?
- strmid(responseText, AutoAnswers[odgovorType - 1], 0, strlen(AutoAnswers[odgovorType - 1]), sizeof(responseText));
- strmid( askqInfo[ id ][ askqAdmin ], ImeIgraca( playerid ), 0, strlen( ImeIgraca( playerid ) ), 32 ); //kopiranje imena od playerid (a/h) u askqAdmin
- strmid( askqInfo[ id ][ askqAnswer ], responseText, 0, strlen( responseText ), 128 ); // kopiranje odgovora u askqAnswer
- PlayerInfo[ playerid ][ xOdgovora ] ++; //inkremetovanje varijable za playerida
- sql_user_update_integer( playerid, "odgovora", PlayerInfo[ playerid ][ xOdgovora ] );
- PlayerInfo[ playerid ][ xAHStats ] ++;
- sql_user_update_integer( playerid, "ah_stats", PlayerInfo[ playerid ][ xAHStats ] );
- // Prikazuje automatski odgovor
- SendInfoMessage(playerid, "Automatski odgovor %d je poslat korisniku %s.", odgovorType, askqList[ askid ][ askqOwner ]);
- // priakzuje igracu koji je poslao pitanje
- SendClientMessageEx(id, SERVER_COLOR, "Clan osoblja je odgovorio na vase pitanje.");
- SendClientMessageEx(id, SERVER_COLOR, "Da pogledate odgovor ukucajte "col_white"'/podg'.");
- format(globalstring, sizeof(globalstring), "{DABB3E}|ASKQ| %s -> %s: AUTO-ODG-%d", ImeIgraca(playerid), askqList[askid][askqOwner], odgovorType);
- RPTChat(1, globalstring);
- strmid( askqList[ askid ][ askqOwner ], "None", 0, strlen( "None" ), 32 ); // resetovanje askqOwnera u None, odnosno kopiranje None u askqOwner
- askqList[ askid ][ askqID ] = -1; // resetovanje
- responseText = ""; // resetovanje stringa u kojem bejase odgovor
- }
- else
- {
- if( id != IPI )
- {
- askqInfo[ id ][ askqSended ] = false;
- askqInfo[ id ][ askqAnswered ] = false;
- strmid( askqInfo[ id ][ askqAdmin ], "None", 0, strlen( "None" ), 32 );
- strmid( askqInfo[ id ][ askqAnswer ], "None", 0, strlen( "None" ), 128 );
- }
- strmid( askqList[ askid ][ askqOwner ], "None", 0, strlen( "None" ), 32 );
- askqList[ askid ][ askqID ] = -1;
- SendErrorMessage( playerid, "Taj korisnik nije online." );
- return 1;
- }
- }
- else if( odgovorType == 7 )
- {
- // Ako je izabrana opcija "Napisite sami odgovor"
- new string[260];
- format(string, sizeof(string), "Unesite odgovor za korisnika %s(ID:%d).\nPitanje: %s\n\nMolimo postujte gramaticka i pravopisna pravila.\nVeliko pocetno slovo, pravopisni znakovi...\n\nSpec. znak tilda (~) uvlaci novi red. 'Test~poruka'\nMaksimalno 128 karaktera, minimalno 15 karaktera.", askqList[IzabraniAskQ[playerid]][askqOwner], askqList[IzabraniAskQ[playerid]][askqID], askqList[ IzabraniAskQ[playerid] ][ askqQuestion ]);
- SPD(playerid, dialog_MANUAL_ANSWER, DIALOG_STYLE_INPUT, "Konfigurabilan odgovor", string, "Posalji", "Odustani");
- }
- else // u slucaju da odgovorType nije od 1-7
- {
- SendErrorMessage(playerid, "Doslo je do greske. Pokusajte ponovo.");
- // resetovanje da ne bi greska bila ne daj Boze
- IsQuestionLocked[IzabraniAskQ[playerid]] = false;
- askqList[IzabraniAskQ[playerid]][askqSend] = true;
- IzabraniAskQ[playerid] = -1;
- return 1; // too vracamo keca bre, prekidamo inicijalizaciju Ko Da? Da Bre :D misle da ce ubagovati sistem, varaju se. sve je Dragi predvideo
- }
- }
- else if (dialogid == dialog_MANUAL_ANSWER)
- {
- if (!response)
- {
- SendInfoMessage(playerid, "Odustali ste od slanja odgovora korisniku %s.", askqList[IzabraniAskQ[playerid]][askqOwner]);
- IsQuestionLocked[IzabraniAskQ[playerid]] = false;
- askqList[IzabraniAskQ[playerid]][askqSend] = true;
- IzabraniAskQ[playerid] = -1;
- return 1;
- }
- if (response)
- {
- new text[ 128 ];
- if( sscanf( inputtext, "s[128]", text ) ) {
- SendErrorMessage(playerid, "Unos nije validan. Pokusajte ponovo.");
- IsQuestionLocked[IzabraniAskQ[playerid]] = false;
- askqList[IzabraniAskQ[playerid]][askqSend] = true;
- IzabraniAskQ[playerid] = -1;
- return 1;
- }
- if (strlen(text) < 15) // Provera da li je unos prazan takodje
- {
- SendErrorMessage(playerid, "Unos nije validan. Morate uneti najmanje 15 karaktera.");
- SendErrorMessage(playerid, "Ne zurite, pitanje se zakljucava cim ga otvorite.");
- IsQuestionLocked[IzabraniAskQ[playerid]] = false;
- askqList[IzabraniAskQ[playerid]][askqSend] = true;
- IzabraniAskQ[playerid] = -1;
- return 1; // Izlazimo iz funkcije da sprcimo zakljucavanje pitanja
- }
- // petlja proverava da li se u odgovoru nalazi tilda ~, ako se nalazi promeni vrednost u delimetar \n kako bi se igracu u dialogu prikazao uvucen red!
- for (new i = 0; i < strlen(text); i++) {
- if (text[i] == '~') {
- text[i] = '\n';
- }
- }
- new askid = IzabraniAskQ[playerid];
- new id = askqList[ askid ][ askqID ];
- if( askqList[ askid ][ askqSend ] == false ) return SendErrorMessage( playerid, "Pitanje nije pronadjeno u odabranom slotu." );
- askqList[ askid ][ askqSend ] = false;
- IsQuestionLocked[askid] = false;
- IzabraniAskQ[ playerid ] = -1;
- if( strcmp( ImeIgraca( id ), askqList[ askid ][ askqOwner ], true ) == 0 )
- {
- askqInfo[ id ][ askqAnswered ] = true;
- //strmid(responseText, AutoAnswers[odgovorType - 1], 0, strlen(AutoAnswers[odgovorType - 1]), sizeof(responseText));
- strmid( askqInfo[ id ][ askqAdmin ], ImeIgraca( playerid ), 0, strlen( ImeIgraca( playerid ) ), 32 );
- strmid( askqInfo[ id ][ askqAnswer ], text, 0, strlen( text ), 128 );
- PlayerInfo[ playerid ][ xOdgovora ] ++;
- sql_user_update_integer( playerid, "odgovora", PlayerInfo[ playerid ][ xOdgovora ] );
- PlayerInfo[ playerid ][ xAHStats ] ++;
- sql_user_update_integer( playerid, "ah_stats", PlayerInfo[ playerid ][ xAHStats ] );
- // Prikazuje automatski odgovor
- SendInfoMessage(playerid, "Poslali ste odgovor korisniku %s.", askqList[ askid ][ askqOwner ]);
- SendInfoMessage(playerid, "Odgovor: %s", text);
- SendClientMessageEx(id, SERVER_COLOR, "Clan osoblja je odgovorio na vase pitanje.");
- SendClientMessageEx(id, SERVER_COLOR, "Da pogledate odgovor ukucajte "col_white"'/podg'.");
- format(globalstring, sizeof(globalstring), "{DABB3E}|ASKQ| %s -> %s: %s", ImeIgraca(playerid), askqList[askid][askqOwner], text);
- RPTChat(1, globalstring);
- strmid( askqList[ askid ][ askqOwner ], "None", 0, strlen( "None" ), 32 );
- askqList[ askid ][ askqID ] = -1;
- }
- else
- {
- if( id != IPI )
- {
- askqInfo[ id ][ askqSended ] = false;
- askqInfo[ id ][ askqAnswered ] = false;
- strmid( askqInfo[ id ][ askqAdmin ], "None", 0, strlen( "None" ), 32 );
- strmid( askqInfo[ id ][ askqAnswer ], "None", 0, strlen( "None" ), 128 );
- }
- strmid( askqList[ askid ][ askqOwner ], "None", 0, strlen( "None" ), 32 );
- askqList[ askid ][ askqID ] = -1;
- SendErrorMessage( playerid, "Taj korisnik nije online." );
- return 1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement