Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////SISTEM PRIJATELJA v0.1 by Miki////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- #include < a_samp >
- #include < MYSQL\m_ysql >
- #include < foreach >
- #include < MYSQL\m_commands >
- new prvispawn[MAX_PLAYERS];//
- new zahtjevzafr[MAX_PLAYERS];// varijabla za slanje zahtjeva za prijateljstvo
- //BOJE
- #define server_boja "{0099CC}"
- //DIJALOZI -
- #define PRIJATELJI 12251
- #define PRIJATELJIADD 12252
- #define PRIJATELJIADD2 12253
- #define PRIJATELJIDEL 12254
- //DIREKTORIJUM - mjesto gdje ce spremati
- #define PRIJATELJ_FILE "/Prijatelji/%d.ini"
- //MJESTO SPREMANJA ACCova
- #define KORISNICI "Korisnici/%s.ini"
- //MAX BROJ FAJLOVA
- #define MAX_PRIJATELJA (5000)
- //OSTALE DEFINICIJE
- #define SPD ShowPlayerDialog
- #define GRESKA(%0,%1) \
- SendClientMessageEx(%0, -1, "{F5052D}(greska) {FFFFFF} "%1)
- #define INFO(%0,%1) \
- SendClientMessageEx(%0, -1, "{2e9cd1}(info) {FFFFFF} "%1)
- //ENUM ZA PRIJATELJE
- enum enum_Prijatelji
- {
- miki_ime[MAX_PLAYER_NAME],
- miki_Prijatelj[20],
- };
- new Prijatelj[MAX_PRIJATELJA][enum_Prijatelji];
- //ENUM ZA IGRACA
- enum pInfo
- {
- pPrijatelj
- };
- new PlayerInfo[MAX_PLAYERS][pInfo];
- public OnPlayerConnect(playerid)
- {
- PlayerInfo[playerid][pPrijatelj] = -1; //RESETOVANJE VARIJABLE
- prvispawn[playerid] = 1;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- INI_ParseFile( Korisnici(playerid), "LoadPlayer", .bExtra = true, .extra = playerid );
- if(prvispawn[playerid] == 1)
- {
- prvispawn[playerid] = 0;
- ProvjeriPrijatelje(playerid); //PROVJERA DA LI IGRAC IMA FAJL ZA PRIJATELJE,AKO NEMA KREIRATI CE
- }
- return 1;
- }
- public OnGameModeInit()
- {
- for(new fr_id = 1; fr_id < MAX_PRIJATELJA; fr_id++)//UCITAVANJE PRIJATELJA
- {
- new friend_File[50];
- format(friend_File, sizeof(friend_File), PRIJATELJ_FILE, fr_id);
- if(fexist(friend_File))
- {
- INI_ParseFile(friend_File, "ucitajprijatelje", .bExtra = true, .extra = fr_id);
- }
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new string[256];
- if(dialogid == PRIJATELJI)//DIALOG ZA PRIJATELJ MENI
- {
- if(!response) return 1;
- new prijateljid1 = PlayerInfo[playerid][pPrijatelj];
- switch(listitem)
- {
- case 0://SPISAK PRIJATELJA
- {
- new string1[256];
- new string2[1000];
- new string3[1050];
- new rednibroj = 0;
- for(new i=0; i<20; i++)
- {
- if(Prijatelj[prijateljid1][miki_Prijatelj][i] != -1)
- {
- new prijateljid2 = Prijatelj[prijateljid1][miki_Prijatelj][i];
- new o[20];
- if(IsPlayerConnected(GetPlayerIDS(Prijatelj[prijateljid2][miki_ime])))
- {
- o = "{00FF00}ONLINE";
- }
- else { o = "{FF0000}OFFLINE";}
- rednibroj++;
- format(string1, sizeof(string1), ""server_boja"%d.\t%s\t%s\n",rednibroj,Prijatelj[prijateljid2][miki_ime],o);
- strcat(string2, string1, sizeof(string2));
- }
- }
- new a[50];
- a = "RB\tPrijatelj\tStatus\n";
- format(string3, sizeof(string3), "%s%s",a,string2);
- ShowPlayerDialog(playerid,0,DIALOG_STYLE_TABLIST_HEADERS,""server_boja"- SVI PRIJATELJI -",string3,""server_boja"Ok","");
- }
- case 1://DODAVANJE PRIJATELJA
- {
- SPD(playerid, PRIJATELJIADD, DIALOG_STYLE_INPUT, ""server_boja"- DODAVANJE PRIJATELJA -", "- UNESITE ID IGRACA KOG ZELITE ZA PRIJATELJA -", ""server_boja"Dodaj", ""server_boja"Izlaz");
- }
- case 2://BRISANJE PRIJATELJA
- {
- new string1[256];
- new string2[1000];
- strcat(string2, "- UNESITE SLOT PRIJATELJA KOJEG ZELITE DA OBRISETE -\n\n", sizeof(string2));
- for(new i=0; i<20; i++)
- {
- if(Prijatelj[prijateljid1][miki_Prijatelj][i] != -1)
- {
- new prijateljid2 = Prijatelj[prijateljid1][miki_Prijatelj][i];
- format(string1, sizeof(string1), "[SLOT %d]%s\n",i,Prijatelj[prijateljid2][miki_ime]);
- strcat(string2, string1, sizeof(string2));
- }
- }
- SPD(playerid, PRIJATELJIDEL, DIALOG_STYLE_INPUT, ""server_boja"- BRISANJE PRIJATELJA -", string2, ""server_boja"Obrisi", ""server_boja"Izlaz");
- }
- }
- }
- if(dialogid == PRIJATELJIDEL)//BRISANJE PRIJATELJA
- {
- if(!response) return 1;
- new slot = strval(inputtext);
- new prijateljid1 = PlayerInfo[playerid][pPrijatelj];
- if(Prijatelj[prijateljid1][miki_Prijatelj][slot] == -1) return GRESKA(playerid, "Nemate prijatelja na tom slotu.");
- if(slot < 0 || slot > 19) return GRESKA(playerid, "Najmanji slot je 0 a najveci 19!");
- Prijatelj[prijateljid1][miki_Prijatelj][slot] = -1;
- sacuvajprijatelje(prijateljid1);
- INFO(playerid, ""server_boja"Obrisali ste prijatelja na slotu %d.",slot);
- }
- if(dialogid == PRIJATELJIADD)//DODAVANJE PRIJATELJA 1
- {
- if(!response) return 1;
- new id = strval(inputtext);
- if(!IsPlayerConnected(id)) return GRESKA(playerid, "Taj igrac nije konektovan!");
- if(Imamlimaxprijatelja(playerid)) return GRESKA(playerid, "Imate svih 20 prijatelja,dostigli ste maksimum.");
- if(Imamlimaxprijatelja(id)) return GRESKA(playerid, "Taj igrac ima maksimum prijatelja.");
- if(Igracvecnalisti(playerid, id)) return GRESKA(playerid, "Taj igrac je vec vas prijatelj!");
- if(playerid == id) return GRESKA(playerid, "Ne mozete sebi poslati zahtjev!");
- zahtjevzafr[id] = playerid;
- //new string[256];
- format(string, sizeof(string), "{FFFFFF}Igrac "server_boja"%s {FFFFFF}vam je poslao zahtjev za prijateljstvo.", ImeIgraca(playerid));
- ShowPlayerDialog(id,PRIJATELJIADD2,DIALOG_STYLE_MSGBOX,""server_boja"- DODAVANJE PRIJATELJA -",string,""server_boja"Prihvati",""server_boja"Odbij");
- }
- if(dialogid == PRIJATELJIADD2)//DODAVANJE PRIJATELJA 2
- {
- if(!response) return 1;
- if(response)
- {
- INFO(playerid, "Prihvatili ste zahtjev za prijateljstvo.");
- INFO(zahtjevzafr[playerid], "Osoba kojoj ste poslali zahtjev je prihvatila, sada ste prijatelji.");
- Dodajprijatelja(playerid, zahtjevzafr[playerid]);
- Dodajprijatelja(zahtjevzafr[playerid], playerid);
- }
- }
- return 1;
- }
- forward LoadPlayer(playerid, name[], value[]);
- public LoadPlayer(playerid, name[], value[])
- {
- INI_Int( "Prijatelj", PlayerInfo[ playerid ][ pPrijatelj ] );
- return true;
- }
- stock SavePlayer(playerid)
- {
- new INI:File = INI_Open(Korisnici(playerid));
- INI_WriteInt( File, "Prijatelj", PlayerInfo[ playerid ][ pPrijatelj ] );
- INI_Close(File);
- return true;
- }
- YCMD:prijatelji(playerid, params[], help)//KOMANDA ZA PRIJATELJE
- {
- if(IsPlayerConnected(playerid))
- {
- SPD(playerid, PRIJATELJI, DIALOG_STYLE_LIST, ""server_boja"- PRIJATELJI v0.1 - by Miki", "1"server_boja"- SVI PRIJATELJI -\n2"server_boja"- DODAJ PRIJATELJA -\n3"server_boja"- OBRISI PRIJATELJA -", ""server_boja"Ok", ""server_boja"Izlaz");
- }
- return true;
- }
- //////////////////////STOCKOVI I PUBLICI///////////////////////////////////////////////
- stock NEPostojilifriendid(id)
- {
- new frend_File[50];
- format(frend_File, sizeof(frend_File), PRIJATELJ_FILE, id);
- if(!fexist(frend_File)) { return 1; }
- return 0;
- }
- stock Imamlimaxprijatelja(playerid)
- {
- new prijateljid = PlayerInfo[playerid][pPrijatelj];
- for(new i=0; i<20; i++)
- {
- if(Prijatelj[prijateljid][miki_Prijatelj][i] == -1) return 0;
- }
- return 1;
- }
- stock Igracvecnalisti(playerid, id)
- {
- new prijateljid1 = PlayerInfo[playerid][pPrijatelj];
- new prijateljid2 = PlayerInfo[id][pPrijatelj];
- for(new i=0; i<20; i++)
- {
- if(Prijatelj[prijateljid1][miki_Prijatelj][i] == prijateljid2) return 1;
- }
- return 0;
- }
- stock Dodajprijatelja(id1, id2)
- {
- new prijateljid1 = PlayerInfo[id1][pPrijatelj];
- new prijateljid2 = PlayerInfo[id2][pPrijatelj];
- for(new i=0; i<20; i++)
- {
- if(Prijatelj[prijateljid1][miki_Prijatelj][i] == -1)
- {
- Prijatelj[prijateljid1][miki_Prijatelj][i] = prijateljid2;
- sacuvajprijatelje(prijateljid1);
- break;
- }
- }
- return 1;
- }
- forward ucitajprijatelje(id, name[], value[]);
- public ucitajprijatelje(id, name[], value[])
- {
- new string[MAX_PLAYER_NAME];
- INI_String("Ime", Prijatelj[id][miki_ime], MAX_PLAYER_NAME);
- for(new i=0; i<20; i++)
- {
- format(string, sizeof(string),"Prijatelj[%i]",i);
- INI_Int(string,Prijatelj[id][miki_Prijatelj][i]);
- }
- return 1;
- }
- stock sacuvajprijatelje(id)
- {
- new prijatelj_File[50];
- format(prijatelj_File, sizeof(prijatelj_File), PRIJATELJ_FILE, id);
- new INI:File = INI_Open(prijatelj_File);
- INI_WriteString(File,"Ime", Prijatelj[id][miki_ime]);
- new string[50];
- for(new i=0; i<20; i++)
- {
- format(string, sizeof(string),"Prijatelj[%i]",i);
- INI_WriteInt(File,string,Prijatelj[id][miki_Prijatelj][i]);
- }
- INI_Close(File);
- return 1;
- }
- stock ProvjeriPrijatelje(playerid)
- {
- if(PlayerInfo[playerid][pPrijatelj] == -1 || NEPostojilifriendid(PlayerInfo[playerid][pPrijatelj]))//ako je nekome varijabla -1 da mu kreira novi fajl za prijatelje
- {
- PlayerInfo[playerid][pPrijatelj] = getEmptyID(MAX_PRIJATELJA, PRIJATELJ_FILE);
- for(new i=0; i<20; i++)
- {
- Prijatelj[PlayerInfo[playerid][pPrijatelj]][miki_Prijatelj][i] = -1;
- }
- strmid(Prijatelj[PlayerInfo[playerid][pPrijatelj]][miki_ime], ImeIgraca(playerid), 0, strlen(ImeIgraca(playerid)), 999);
- sacuvajprijatelje(PlayerInfo[playerid][pPrijatelj]);
- SavePlayer(playerid);
- INFO(playerid, "Kreiran vam je fajl za prijatelje.");
- }
- return 1;
- }
- forward GetPlayerIDS(string[]);
- public GetPlayerIDS(string[])
- {
- foreach(Player, i)
- {
- if(IsPlayerConnected(i) == 1)
- {
- new testname[MAX_PLAYER_NAME];
- GetPlayerName(i, testname, sizeof(testname));
- if(strcmp(testname, string, true, strlen(string)) == 0)
- {
- return i;
- }
- }
- }
- return INVALID_PLAYER_ID;
- }
- stock SendClientMessageEx(playerid, color, const str[], {Float,_}:...) {
- static
- args,
- start,
- end,
- string[144]
- ;
- #emit LOAD.S.pri 8
- #emit STOR.pri args
- if(args > 12)
- {
- #emit ADDR.pri str
- #emit STOR.pri start
- for (end = start + (args - 12); end > start; end -= 4)
- {
- #emit LREF.pri end
- #emit PUSH.pri
- }
- #emit PUSH.S str
- #emit PUSH.C 144
- #emit PUSH.C string
- #emit PUSH.C args
- #emit SYSREQ.C format
- SendClientMessage(playerid, color, string);
- #emit LCTRL 5
- #emit SCTRL 4
- #emit RETN
- }
- return SendClientMessage(playerid, color, str);
- }
- stock ImeIgraca(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- return name;
- }
- stock Korisnici(playerid)
- {
- new string[128];
- format(string,sizeof(string),KORISNICI,ImeIgraca(playerid));
- return string;
- }
- stock getEmptyID(const len, const lokacija[])
- {
- new id = (-1);
- for(new loop = (0), provjera = (-1), Data_[64] = "\0"; loop != len; ++ loop)
- {
- provjera = (loop+1);
- format(Data_, (sizeof Data_), lokacija ,provjera);
- if(!fexist(Data_))
- {
- id = (provjera);
- break;
- }
- }
- return (id);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement