Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_http>
- //################ EINSTELLUNGEN ######################
- #define MAX_MYFL_FRIENDS 10 //Maximale Freunde die ein User haben kann
- #define MYFL_HAUPTBEFEHL "/fl" //Der Befehl um die Freundschaftsliste zu öffnen
- //################ DIALOGE ############################
- #define MYFL_D_F 9900
- #define MYFL_D_FO 9901
- #define MYFL_D_FADD 9902
- //#######################################################
- #define MYFL_VERSION "0.5"
- #define table_fl "friendlist"
- #define list_name "name"
- #define list_friend "friend"
- new myfl_temp[MAX_PLAYERS][MAX_MYFL_FRIENDS][MAX_PLAYER_NAME];
- new myfl_tempsel[MAX_PLAYERS][MAX_PLAYER_NAME];
- public OnGameModeInit()
- {
- print("\n");
- print("**myFriendlist** wird initialisiert!\n(c) by obergamler / GrumpyCat (siehe: sa-mp.de)");
- HTTP(0,HTTP_GET,"obergamler.square7.ch/friendversion.txt","","myFriendlist_UpdateChecker");
- print("\n");
- return CallLocalFunction("myfl_OnGameModeInit", "");
- }
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit myfl_OnGameModeInit
- forward myfl_OnGameModeInit();
- forward myFriendlist_UpdateChecker(index, response_code, data[]);
- public myFriendlist_UpdateChecker(index, response_code, data[])
- {
- if(response_code!=200)return 1;
- if(strcmp(data,MYFL_VERSION,false))
- {
- printf("[myFriendlist] ACHTUNG: Sie verwenden eine veraltete Version von myFriendlist.\nIhre Version: %s. Aktuelle Version: %s",MYFL_VERSION,data);
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new Query[128],Name[MAX_PLAYER_NAME],friend[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
- mysql_real_escape_string(Name, Name);
- format(Query, sizeof(Query), "SELECT * FROM `%s` WHERE `%s` = '%s'", table_fl, list_friend, Name);
- mysql_query(Query);
- mysql_store_result();
- new data[526];
- while (mysql_fetch_row(data))
- {
- mysql_fetch_field_row(friend,list_name);
- new str[128];
- format(str,sizeof(str),"[Freund] %s hat den Server betreten",Name);
- SendClientMessage(myfl_GetPlayerID(friend),0x00AFFFFF,str);
- }
- mysql_free_result();
- return CallLocalFunction("OnPlayerConnect", "i",playerid);
- }
- #if defined _ALS_OnPlayerConnect
- #undef OnPlayerConnect
- #else
- #define _ALS_OnPlayerConnect
- #endif
- #define OnPlayerConnect myfl_OnPlayerConnect
- forward myfl_OnPlayerConnect(playerid);
- public OnPlayerDisconnect(playerid, reason)
- {
- new Query[128],Name[MAX_PLAYER_NAME],friend[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
- mysql_real_escape_string(Name, Name);
- format(Query, sizeof(Query), "SELECT * FROM `%s` WHERE `%s` = '%s'", table_fl, list_friend, Name);
- mysql_query(Query);
- mysql_store_result();
- new data[526];
- while (mysql_fetch_row(data))
- {
- mysql_fetch_field_row(friend,list_name);
- new str[128];
- format(str,sizeof(str),"[Freund] %s hat den Server verlassen",Name);
- SendClientMessage(myfl_GetPlayerID(friend),0x00AFFFFF,str);
- }
- mysql_free_result();
- return CallLocalFunction("OnPlayerDisconnect", "ii",playerid,reason);
- }
- #if defined _ALS_OnPlayerDisconnect
- #undef OnPlayerDisconnect
- #else
- #define _ALS_OnPlayerDisconnect
- #endif
- #define OnPlayerDisconnect myfl_OnPlayerDisconnect
- forward myfl_OnPlayerDisconnect(playerid,reason);
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp(MYFL_HAUPTBEFEHL, cmdtext, true, 10) == 0)
- {
- for(new i=0;i<MAX_MYFL_FRIENDS;i++)
- {
- strdel(myfl_temp[playerid][i],0,strlen(myfl_temp[playerid][i]));
- }
- strdel(myfl_tempsel[playerid],0,strlen(myfl_tempsel[playerid]));
- new str[2480];
- new Query[128],Name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
- mysql_real_escape_string(Name, Name);
- format(Query, sizeof(Query), "SELECT * FROM `%s` WHERE `%s` = '%s'", table_fl, list_name, Name);
- mysql_query(Query);
- mysql_store_result();
- new row=0;
- new data[526];
- while (mysql_fetch_row(data))
- {
- mysql_fetch_field_row(myfl_temp[playerid][row],list_friend);
- new status[20];
- if(myfl_IsPlayerNameConnected(myfl_temp[playerid][row])==1)format(status,sizeof(status),"{00FF00}Online");
- else format(status,sizeof(status),"{B4B4B4}Offline");
- if(strlen(myfl_temp[playerid][row])>13)format(str,sizeof(str),"%s%s\t\t%s\n",str,myfl_temp[playerid][row],status);
- else if(strlen(myfl_temp[playerid][row])>6) format(str,sizeof(str),"%s%s\t\t\t%s\n",str,myfl_temp[playerid][row],status);
- else format(str,sizeof(str),"%s%s\t\t\t\t%s\n",str,myfl_temp[playerid][row],status);
- row++;
- }
- mysql_free_result();
- if(row!=0)
- {
- new query1[500];
- format(query1,sizeof(query1),"SELECT * FROM `%s` WHERE `%s` = '%s'",table_fl,list_name,Name);
- mysql_query(query1);
- mysql_store_result();
- new count=mysql_num_rows();
- mysql_free_result();
- if(count<MAX_MYFL_FRIENDS)
- {
- format(str,sizeof(str),"%s->{00C3FF} Freund hinzufügen\n",str);
- format(myfl_temp[playerid][row],MAX_PLAYER_NAME,"# #");
- }
- }
- if(row==0)ShowPlayerDialog(playerid,MYFL_D_FADD,DIALOG_STYLE_INPUT,"Freund hinzufügen","{FF0000}Du hast momentan keine Freunde in deiner Liste!\n\n{FFFFFF}Bitte gib nun den Namen des Users an,\nden du als Freund hinzufügen möchtest:","Ok","Abbrechen");
- else ShowPlayerDialog(playerid,MYFL_D_F,DIALOG_STYLE_LIST,"Freundesliste",str,"Optionen","Schliessen");
- return 1;
- }
- return CallLocalFunction("OnPlayerCommandText", "is",playerid,cmdtext);
- }
- #if defined _ALS_OnPlayerCommandText
- #undef OnPlayerCommandText
- #else
- #define _ALS_OnPlayerCommandText
- #endif
- #define OnPlayerCommandText myfl_OnPlayerCommandText
- forward myfl_OnPlayerCommandText(playerid, cmdtext[]);
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case MYFL_D_F:
- {
- if(!response)return 1;
- if(!strcmp(myfl_temp[playerid][listitem],"# #"))
- {
- ShowPlayerDialog(playerid,MYFL_D_FADD,DIALOG_STYLE_INPUT,"Freund hinzufügen","{FFFFFF}Bitte gib nun den Namen des Users an,\nden du als Freund hinzufügen möchtest:","Ok","Abbrechen");
- return 1;
- }
- //Optionen
- format(myfl_tempsel[playerid],MAX_PLAYER_NAME,"%s",myfl_temp[playerid][listitem]);
- new caption[128];
- format(caption,sizeof(caption),"Optionen für {00CDFF}%s",myfl_temp[playerid][listitem]);
- ShowPlayerDialog(playerid,MYFL_D_FO,DIALOG_STYLE_LIST,caption,"{FF0000}Löschen","Ok","Abbrechen");
- }
- case MYFL_D_FADD:
- {
- if(!response)return 1;
- if(strlen(inputtext)>20||strlen(inputtext)==0)return ShowPlayerDialog(playerid,MYFL_D_FADD,DIALOG_STYLE_INPUT,"Freund hinzufügen","{FF0000}Ungültige Eingabe!\n\n{FFFFFF}Bitte gib nun den Namen des Users an,\nden du als Freund hinzufügen möchtest:","Ok","Abbrechen");
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- if(!strcmp(inputtext,name))return ShowPlayerDialog(playerid,MYFL_D_FADD,DIALOG_STYLE_INPUT,"Freund hinzufügen","{FF0000}Du kannst dich nicht selbst hinzufügen!\n\n{FFFFFF}Bitte gib nun den Namen des Users an,\nden du als Freund hinzufügen möchtest:","Ok","Abbrechen");
- if(!myfl_IsPlayerNameConnected(inputtext))return ShowPlayerDialog(playerid,MYFL_D_FADD,DIALOG_STYLE_INPUT,"Freund hinzufügen","{FF0000}Dieser Spieler existiert nicht oder ist\nnicht online!\n\n{FFFFFF}Bitte gib nun den Namen des Users an,\nden du als Freund hinzufügen möchtest:","Ok","Abbrechen");
- new query1[500],query[500];
- mysql_real_escape_string(name,name);
- mysql_real_escape_string(inputtext,inputtext);
- format(query1,sizeof(query1),"SELECT * FROM `%s` WHERE `%s` = '%s' AND `%s` = '%s'",table_fl,list_name,name,list_friend,inputtext);
- mysql_query(query1);
- mysql_store_result();
- new count=mysql_num_rows();
- mysql_free_result();
- if(count!=0)return ShowPlayerDialog(playerid,MYFL_D_FADD,DIALOG_STYLE_INPUT,"Freund hinzufügen","{FF0000}Dieser Spieler ist bereits in deiner Freundschaftsliste!\n\n{FFFFFF}Bitte gib nun den Namen des Users an,\nden du als Freund hinzufügen möchtest:","Ok","Abbrechen");
- format(query,sizeof(query),"INSERT INTO `%s` (`%s` ,`%s`) VALUES ('%s', '%s')",table_fl,list_name,list_friend,name,inputtext);
- mysql_query(query);
- SendClientMessage(playerid,0x23FF00FF,"Du hast einen neuen Freund hinzugefügt.");
- }
- case MYFL_D_FO:
- {
- if(!response)return 1;
- if(listitem==0)
- {
- new query[500],name[MAX_PLAYER_NAME],friend[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,MAX_PLAYER_NAME);
- mysql_real_escape_string(name,name);
- mysql_real_escape_string(myfl_tempsel[playerid],friend);
- format(query,sizeof(query),"DELETE FROM `%s` WHERE `%s` = '%s' AND `%s` = '%s'",table_fl,list_name,name,list_friend,friend);
- mysql_query(query);
- SendClientMessage(playerid,0xFF1E00FF,"Freund gelöscht!");
- }
- }
- }
- return CallLocalFunction("myfl_OnDialogResponse", "iiiis", playerid, dialogid, response, listitem, inputtext);
- }
- #if defined _ALS_OnDialogResponse
- #undef OnDialogResponse
- #else
- #define _ALS_OnDialogResponse
- #endif
- #define OnDialogResponse myfl_OnDialogResponse
- forward myfl_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
- stock myfl_GetPlayerID(playername[])
- {
- for(new playerid=1;playerid<MAX_PLAYERS;playerid++)
- {
- if(!IsPlayerConnected(playerid))continue;
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- if(!strcmp(name,playername))return playerid;
- }
- return -1;
- }
- stock myfl_IsPlayerNameConnected(name[])
- {
- for(new playerid=0;playerid<MAX_PLAYERS;playerid++)
- {
- if(!IsPlayerConnected(playerid))continue;
- new name2[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name2,MAX_PLAYER_NAME);
- if(!strcmp(name,name2))return 1;
- }
- return 0;
- }
- stock myfl_mysql_GetInt(Table[], Field[], Where[], Is[])
- {
- new query[128];
- mysql_real_escape_string(Table, Table);
- mysql_real_escape_string(Field, Field);
- mysql_real_escape_string(Where, Where);
- mysql_real_escape_string(Is, Is);
- format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
- mysql_query(query);
- mysql_store_result();
- new sqlint = mysql_fetch_int();
- mysql_free_result();
- return sqlint;
- }
- stock myfl_mysql_GetString(Table[], Field[], Where[], Is[])
- {
- new query[128], Get[128];
- mysql_real_escape_string(Table, Table);
- mysql_real_escape_string(Field, Field);
- mysql_real_escape_string(Where, Where);
- mysql_real_escape_string(Is, Is);
- format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
- mysql_query(query);
- mysql_store_result();
- mysql_fetch_row(Get);
- mysql_free_result();
- return Get;
- }
Advertisement
Add Comment
Please, Sign In to add comment