Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- t_navi by !TheO
- (c) 2013
- Schnelle einfache Ingame verwaltung des Navigationssystem.
- */
- #include <a_samp>
- #include <a_mysql>
- #include <sscanf2>
- #include <zcmd>
- //Mysql
- #define m_Host "localhost"
- #define m_User "root"
- #define m_Pass ""
- #define m_Data "samp"
- #define dialog_navi (222)
- #define dialog_navi_edit (333)
- #define dialog_add_navi (444)
- #define dialog_edit_navi (555)
- #define dialog_navi_del (666)
- #define dialog_edit_navi2 (777)
- #define rot 0xFF6347FF
- #define gruen 0x33AA33FF
- #define MAX_NAVI_POINTS 50
- enum Navienum
- {
- nName[64],
- Float:nx,
- Float:ny,
- Float:nz
- };
- new
- navi[MAX_NAVI_POINTS][Navienum],
- navieditname[64],
- navistartet[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" t_Navi ist geladen!");
- print("--------------------------------------\n");
- mysql_connect(m_Host,m_User,m_Data,m_Pass);
- if(!mysql_ping())
- {
- print("MYSQL: Es konnte keine Verbindung zum MYSQL Server hergestellt werden!");
- }
- else
- {
- mysql_query("CREATE TABLE IF NOT EXISTS `Navi` (\
- `ID` int(11) NOT NULL AUTO_INCREMENT,\
- `Name` varchar(64) NOT NULL,\
- `x` float NOT NULL,\
- `y` float NOT NULL,\
- `z` float NOT NULL,\
- PRIMARY KEY (`ID`));");
- for(new i = 0; i < MAX_NAVI_POINTS;i++)
- {
- LoadNavi(i);
- }
- }
- return 1;
- }
- public OnFilterScriptExit()
- {
- mysql_close();
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case dialog_navi:
- {
- if(response)
- {
- if(navistartet[playerid] == 0)
- {
- new i = listitem+1,string[90];
- SetPlayerCheckpoint(playerid,navi[i][nx],navi[i][ny],navi[i][nz],4);
- format(string,90,"Ziel gesetzt: %s",navi[i][nName]);
- SendClientMessage(playerid, gruen, string);
- navistartet[playerid] = 1;
- }
- else
- {
- SendClientMessage(playerid,rot,"Du hast ein eingegebens Ziel bitte fahre dort hin oder lösche es (/delmarker)");
- }
- }
- return 1;
- }
- case dialog_navi_edit:
- {
- if(IsPlayerAdmin(playerid))
- {
- if(response)
- {
- switch(listitem)
- {
- case 0:
- {
- ShowPlayerDialog(playerid,dialog_add_navi,DIALOG_STYLE_INPUT,"Navi | Hinzufügen","Bitte gebe den Namen dieses Punktes an!","Erstellen","Exit");
- }
- case 1:
- {
- ShowPlayerDialog(playerid,dialog_navi_del,DIALOG_STYLE_INPUT,"Navi | Löschen","Bitte gebe den Namen ein des Punktes den du Löschen willst (Vollständig)","Löschen","Exit");
- }
- case 2:
- {
- ShowPlayerDialog(playerid,dialog_edit_navi,DIALOG_STYLE_INPUT,"Navi | Umbennen","Bitte gebe den Namen ein des Punktes den du Umbennen willst (Vollständig)","Weiter","Exit");
- }
- }
- }
- }
- return 1;
- }
- case dialog_add_navi:
- {
- if(IsPlayerAdmin(playerid))
- {
- if(response)
- {
- new Float:x,Float:y,Float:z,string[128];
- GetPlayerPos(playerid,x,y,z);
- format(string, 128,"Navipunkt: %s hinzugefügt!",inputtext);
- SendClientMessage(playerid,gruen,string);
- CreateNaviPoint(inputtext,x,y,z);
- }
- else
- {
- SendClientMessage(playerid,rot,"Abgebrochen!");
- }
- }
- return 1;
- }
- case dialog_navi_del:
- {
- if(IsPlayerAdmin(playerid))
- {
- if(response)
- {
- new query[128];
- format(query,128,"SELECT FROM * `Navi` WHERE `Name` = '%s'",inputtext);
- mysql_query(query);
- mysql_store_result();
- if(mysql_num_rows() == 0)
- {
- SendClientMessage(playerid,rot,"Diesen Navi Punkt gibt es nicht in der Datenbank");
- }
- else
- {
- format(query,128,"DELETE FROM `Navi` WHERE `Name` = '%s'",inputtext);
- mysql_query(query);
- format(query,128,"Navipunkt: %s gelöscht!",inputtext);
- SendClientMessage(playerid,gruen,query);
- for(new i = 0; i < MAX_NAVI_POINTS; i++)
- {
- LoadNavi(i);
- }
- }
- }
- else
- {
- SendClientMessage(playerid,rot,"Abgebrochen!");
- }
- }
- return 1;
- }
- case dialog_edit_navi:
- {
- if(IsPlayerAdmin(playerid))
- {
- if(response)
- {
- new string[128];
- format(string,128,"Navipunkt: %s Änderung wird Vorbereitet",inputtext);
- SendClientMessage(playerid,gruen,string);
- format(navieditname,64,"%s",inputtext);
- ShowPlayerDialog(playerid,dialog_edit_navi2,DIALOG_STYLE_INPUT,"Navi | Umbennen","Gebe nun den Namen ein den du für diesen Punkt haben willst","Ändern","Exit");
- }
- else
- {
- SendClientMessage(playerid,rot,"Abgebrochen!");
- }
- }
- return 1;
- }
- case dialog_edit_navi2:
- {
- if(IsPlayerAdmin(playerid))
- {
- if(response)
- {
- new query[128];
- format(query,128,"Navipunkt: %s zu %s Umbenannt!",navieditname,inputtext);
- SendClientMessage(playerid,gruen,query);
- format(query,128,"UPDATE `Navi` SET `Name` = '%s' WHERE `Name` = '%s'",inputtext,navieditname);
- mysql_query(query);
- for(new i = 0; i < MAX_NAVI_POINTS; i++)
- {
- LoadNavi(i);
- }
- }
- else
- {
- SendClientMessage(playerid,rot,"Abgebrochen!");
- }
- }
- return 1;
- }
- }
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- if(navistartet[playerid] == 1)
- {
- PlayerPlaySound(playerid,1149,0.0,0.0,0.0);
- SendClientMessage(playerid,gruen,"Ziel erreicht!");
- DisablePlayerCheckpoint(playerid);
- navistartet[playerid] = 0;
- return 1;
- }
- return 1;
- }
- CMD:editnavi(playerid,params[])
- {
- if(IsPlayerAdmin(playerid))
- {
- ShowPlayerDialog(playerid,dialog_navi_edit,DIALOG_STYLE_LIST,"Navi | Bearbeitung","Neuen Navi Punkt Hinzufügen\nNavi Punkt Löschen\nNavi Punkt umbennen","Weiter","Exit");
- }
- return 1;
- }
- CMD:navi(playerid,params[])
- {
- new string[256];
- for(new x = 0;x < MAX_NAVI_POINTS;x++)
- {
- format(string, 200, "%s%s\n", string,navi[x][nName]);
- }
- ShowPlayerDialog(playerid,dialog_navi,DIALOG_STYLE_LIST,"Navigation",string,"Suchen","Exit");
- return 1;
- }
- CMD:delmarker(playerid,params[])
- {
- if(navistartet[playerid] == 1)
- {
- navistartet[playerid] = 0;
- DisablePlayerCheckpoint(playerid);
- }
- return 1;
- }
- stock CreateNaviPoint(pointname[],Float:pointx,Float:pointy,Float:pointz)
- {
- new query[128];
- mysql_real_escape_string(pointname,pointname);
- format(query,128,"INSERT INTO `Navi` (`Name`,`x`,`y`,`z`)VALUES('%s','%f','%f','%f')",\
- pointname,Float:pointx,Float:pointy,Float:pointz);
- mysql_query(query);
- for(new i = 0; i < MAX_NAVI_POINTS; i++)
- {
- LoadNavi(i);
- }
- mysql_free_result();
- return 1;
- }
- stock LoadNavi(id)
- {
- new query[128],str[512];
- format(query,128,"SELECT * FROM `Navi` WHERE `ID` = '%d'",id);
- mysql_query(query);
- mysql_store_result();
- while(mysql_fetch_row(str))
- {
- sscanf(str, "p<|>{i}s[64]fff",navi[id][nName],navi[id][nx],navi[id][ny],navi[id][nz]);
- }
- mysql_free_result();
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement