Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*** LA Handystem v0.1 ***/
- /*** (c) 2012 by Logan Adams ***/
- /*** Danke an:
- Kleiner_Opa (für OCMD)
- Das SA:MP-Team (für SAMP)
- Strickenkid (für das MySQL Plugin)
- Y_Less (für sscanf2)
- */
- //Includes
- #include <a_samp>
- #include <mysql>
- #include <ocmd>
- #include <sscanf2>
- //Farben
- #define ROT 0xFF0000FF
- #define BLAU 0x0000FFFF
- #define GOLD 0xFFF000FF
- //Einstellungen
- #define VERSION "0.1"
- #define SQL_HOST "anpassen"
- #define SQL_DATA "anpassen"
- #define SQL_PASS "anpassen"
- #define SQL_USER "anpassen"
- new ggPlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
- enum eHandyInfo
- {
- Handynummer,
- bool:TelefoniertGerade,
- TelefonPartner
- }
- new _Handy[MAX_PLAYERS][eHandyInfo];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- printf("LA Handystem v%s by Logan Adams successfully loaded.",VERSION);
- print("--------------------------------------\n");
- new MySQL:connection;
- connection = mysql_init(LOG_ALL,1);
- mysql_connect(SQL_HOST,SQL_USER,SQL_PASS,SQL_DATA,connection,1);
- if(mysql_ping() == 0) {
- printf("[LA-Handysystem]: MySQL Verbindung steht: %s,%s,%s",SQL_HOST,SQL_USER,SQL_DATA);
- CreatePhoneTable();
- }
- else
- print("[LA-Handysystem]: MySQL Verbindung fehlgeschlagen. Bitte passe SQL-Host,User,Passwort,Datenbank + Passwort bitte ihm Skript an!");
- return 1;
- }
- public OnFilterScriptExit()
- {
- mysql_close();
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- _Handy[playerid][TelefoniertGerade] = false;
- _Handy[playerid][TelefonPartner] = -1;
- GetPlayerName(playerid,ggPlayerName[playerid],MAX_PLAYER_NAME);
- return 1;
- }
- public OnPlayerDisconnect(playerid,reason)
- {
- if(_Handy[playerid][TelefoniertGerade] == true) {
- SendClientMessage(_Handy[playerid][TelefonPartner],BLAU,"Dein Gesprächspartner ist gerade offline gegangen! Das Gespräch wurde beendet!");
- _Handy[playerid][TelefoniertGerade] = false;
- _Handy[playerid][TelefonPartner] = -1;
- }
- _Handy[playerid][TelefoniertGerade] = false;
- _Handy[playerid][TelefonPartner] = -1;
- new que[150];
- format(que,sizeof que,"UPDATE `handy` SET `Name` = '%s',`Handynummer` = '%d'",ggPlayerName[playerid],_Handy[playerid][Handynummer]);
- mysql_query(que);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- if(PlayerExists(playerid) <= 0) {
- new str[128];
- SendClientMessage(playerid,BLAU,"Du hast noch kein Handy, ein Konto würde für dich eingerichtet ;)");
- do {
- new zahlen[7];
- format(zahlen,7,"%d%d%d%d%d%d",random(10),random(10),random(10),random(10),random(10),random(10));
- _Handy[playerid][Handynummer] = strval(zahlen);
- } while(ExistsPhoneNumber(_Handy[playerid][Handynummer]) > 0);
- format(str,sizeof str,"Deine Handynummer lautet: %d. Der Score in der Tableiste steht für die Handynummer!",_Handy[playerid][Handynummer]);
- SendClientMessage(playerid,BLAU,str);
- SetPlayerScore(playerid,_Handy[playerid][Handynummer]);
- new query[150];
- format(query,sizeof query,"INSERT INTO `handy`(`Name`,`Handynummer`) VALUES('%s','%d')",ggPlayerName[playerid],_Handy[playerid][Handynummer]);
- mysql_query(query);
- }
- else {
- new query[150],data[30];
- format(query,sizeof query,"SELECT * FROM `handy` WHERE `Name` = '%s'",ggPlayerName[playerid]);
- mysql_query(query);
- mysql_store_result();
- mysql_fetch_field("Handynummer",data); _Handy[playerid][Handynummer] = strval(data);
- SetPlayerScore(playerid,_Handy[playerid][Handynummer]);
- mysql_free_result();
- }
- return 1;
- }
- public OnPlayerCommandText(playerid,cmdtext [])
- {
- return 0;
- }
- public OnPlayerText(playerid,text [])
- {
- if(_Handy[playerid][TelefoniertGerade] == true) {
- new str[128];
- format(str,sizeof str,"[Handy] --> Du: %s",text);
- SendClientMessage(playerid,GOLD,str);
- format(str,sizeof str,"[Handy] %s: %s",ggPlayerName[playerid],text);
- SendClientMessage(_Handy[playerid][TelefonPartner],GOLD,str);
- return 0;
- }
- return 1;
- }
- ocmd:call(playerid,params[])
- {
- new nummer,str[128];
- if(sscanf(params,"i",nummer))return SendClientMessage(playerid,ROT,"Benutze: /call [Handynummer]");
- if(!IsPlayerConnected(GetIDByNumber(nummer)))return SendClientMessage(playerid,ROT,"Entweder ist der Spieler mit der Nummer offline oder diese Nummer ist falsch!");
- if(playerid == GetIDByNumber(nummer))return SendClientMessage(playerid,ROT,"Du kannst nicht dich selbst anrufen!");
- format(str,sizeof str,"Verbindungsaufbau zum Spieler %s mit der Nummer %d ...",ggPlayerName[GetIDByNumber(nummer)],nummer);
- SendClientMessage(playerid,BLAU,str);
- format(str,sizeof str,"Dein Handy klingelt! Spieler %s ist am Apperat! Willst du den Anruf mit /p annehmen oder mit /h ablehnen ?",ggPlayerName[playerid]);
- SendClientMessage(GetIDByNumber(nummer),BLAU,str);
- _Handy[playerid][TelefoniertGerade] = true;
- _Handy[GetIDByNumber(nummer)][TelefoniertGerade] = true;
- _Handy[playerid][TelefonPartner] = GetIDByNumber(nummer);
- _Handy[GetIDByNumber(nummer)][TelefonPartner] = playerid;
- return 1;
- }
- ocmd:h(playerid,params[])
- {
- #pragma unused params
- if(_Handy[playerid][TelefoniertGerade] == false) return SendClientMessage(playerid,ROT,"Du telefonierst im Moment doch gar nicht ..!");
- _Handy[playerid][TelefoniertGerade] = false;
- SendClientMessage(_Handy[playerid][TelefonPartner],ROT,"Dein Gesprächspartner hat aufgelegt bzw. deinen Anruf abgelehnt!");
- SendClientMessage(playerid,ROT,"Du hast aufgelegt!");
- _Handy[playerid][TelefonPartner] = -1;
- _Handy[TelefonPartner][TelefoniertGerade] = false;
- _Handy[TelefonPartner][TelefonPartner] = -1;
- return 1;
- }
- ocmd:p(playerid,params[])
- {
- #pragma unused params
- if(_Handy[playerid][TelefoniertGerade] == false)return SendClientMessage(playerid,ROT,"Dich ruft im Moment doch keiner an!");
- _Handy[playerid][TelefoniertGerade] = true;
- SendClientMessage(_Handy[playerid][TelefonPartner],BLAU,"Dein Gesprächspartner hat deinen Anruf angenommen! Rede mit ihm nun über den normalen Chat!");
- return 1;
- }
- ocmd:sms(playerid,params[])
- {
- new nummer,msg[128];
- if(sscanf(params,"is[128]",nummer,msg))return SendClientMessage(playerid,ROT,"Benutze: /sms [Handynummer] [Text]");
- if(!IsPlayerConnected(GetIDByNumber(nummer)))return SendClientMessage(playerid,ROT,"Entweder ist der Spieler mit der Nummer offline oder diese Nummer ist falsch!");
- if(GetIDByNumber(nummer) == playerid) return SendClientMessage(playerid,ROT,"Du kannst dir nicht selber SMS schreiben!");
- format(msg,sizeof msg,"[SMS von %s]: %s",ggPlayerName[playerid],msg);
- SendClientMessage(GetIDByNumber(nummer),GOLD,msg);
- SendClientMessage(playerid,GOLD,"SMS erfolgreich abgeschickt!");
- return 1;
- }
- stock CreatePhoneTable()
- {
- new query[400];
- format(query,sizeof query,"CREATE TABLE IF NOT EXISTS `handy` (");
- strcat(query,"`ID` int(11) NOT NULL AUTO_INCREMENT,");
- strcat(query,"`Name` varchar(24) COLLATE latin1_german1_ci NOT NULL,");
- strcat(query,"`Handynummer` int(30) NOT NULL,");
- strcat(query,"PRIMARY KEY (`ID`))");
- strcat(query,"ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci AUTO_INCREMENT=1 ;");
- mysql_query(query);
- return 1;
- }
- stock ExistsPhoneNumber(nummer)
- {
- new query[80],cnt = -1;
- format(query,sizeof query,"SELECT * FROM `handy` WHERE `Handynummer` = '%d'",nummer);
- mysql_query(query);
- mysql_store_result();
- cnt = mysql_num_rows();
- mysql_free_result();
- return cnt;
- }
- stock PlayerExists(playerid)
- {
- new query[80],count = -1;
- format(query,sizeof query,"SELECT * FROM `handy` WHERE `Name` = '%s'",ggPlayerName[playerid]);
- mysql_query(query);
- mysql_store_result();
- count = mysql_num_rows();
- mysql_free_result();
- return count;
- }
- stock GetIDByNumber(nummer)
- {
- new pid = -1;
- for(new i=0;i<MAX_PLAYERS;i++) {
- if(!IsPlayerConnected(i))continue;
- if(IsPlayerNPC(i))continue;
- if(_Handy[i][Handynummer] == nummer) {
- pid = i;
- break;
- }
- }
- return pid;
- }
Add Comment
Please, Sign In to add comment