Advertisement
Guest User

Blank by fair

a guest
Apr 17th, 2012
593
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.64 KB | None | 0 0
  1. /*
  2. Copyright by fair, MySQL Tutorial by Maddin.
  3. Dieser Kopfbereich darf nicht editiert werden das Werk steht unter eine CC Lizenz von FairNet-Works.
  4.  
  5. Changelog:
  6.  
  7. - Arbeit weitgehend mit Dialogen
  8. - MySQL
  9. - in den Settings alles editierbar
  10.  
  11. Weitere Versionen folgen.... (c) by Deuce
  12. */
  13. /*Includes*/
  14. #include <a_samp>
  15. #include <a_mysql>
  16. #include <ocmd>
  17. #include <sscanf2>
  18.  
  19. /*Settings*/
  20. #define SQL_HOST "localhost"
  21. #define SQL_USER "root"
  22. #define SQL_PASS ""
  23. #define SQL_DATA "samp_db"
  24. /*Settings für /hilfe*/
  25. #define NORMALEBEFEHLE "Fraktionsbefehle\n-\t/f - {FF0000}Fraktionschat"
  26. #define ADMINBEFEHLE "Adminbefehle\n\n{FF0000}-\t{FAFAFA}/makeleader - {FF0000}Leader\n-\t{FAFAFA}/makeadmin - {FF0000}Adminrang\n-\t{FAFAFA}/kick - {FF0000}Spieler kicken\n-\t{FAFAFA}/ban - {FF0000}Spieler bannen\n-\t{FAFAFA}/a - {FF0000}Adminchat\n\n{FAFAFA}Fraktionsbefehle\n\n-\t{FAFAFA}/f - {FF0000}Fraktionschat"
  27.  
  28. /*Dialoge*/
  29. #define DIALOG_REGISTER (0)
  30. #define DIALOG_LOGIN (1)
  31. #define DIALOG_PROFIL (2)
  32.  
  33. /*Farben*/
  34. #define Rot 0xEB0000FF
  35. #define Grun 0x23FF00FF
  36. #define Weiss 0xF0FFFFFF
  37. /*Define*/
  38. #define gmname "Blank v0.1"
  39. #define mapname "mapname San Andreas"
  40. #define url "url sa-mp.net"
  41. /*Global Definitionen*/
  42. new Handschellen;
  43. new Text:Copy;
  44. new GetNamee[MAX_PLAYER_NAME];
  45. enum SpielerDaten
  46. {
  47. pName[MAX_PLAYER_NAME],
  48. pLevel,
  49. pGeld,
  50. pKills,
  51. pTode,
  52. Float:pHealth,
  53. pRang,
  54. pMember,
  55. pLeader,
  56. bank_geld,
  57. filmgehabt
  58. }
  59. new SpielerInfo[MAX_PLAYERS][SpielerDaten];
  60.  
  61. /*Consoleoutput*/
  62. main()
  63. {
  64. print("\n----------------------------------");
  65. print(" Blank Gamemode by fair");
  66. print("----------------------------------\n");
  67. }
  68.  
  69.  
  70. /*Callback GI*/
  71. public OnGameModeInit()
  72. {
  73. /*Textdraws*/
  74. Copy = TextDrawCreate(14.000000,431.000000,"Basis by fair");
  75. TextDrawUseBox(Copy,1);
  76. TextDrawBoxColor(Copy,0xffffff33);
  77. TextDrawTextSize(Copy,210.000000,14.000000);
  78. TextDrawAlignment(Copy,0);
  79. TextDrawBackgroundColor(Copy,0x00000033);
  80. TextDrawFont(Copy,2);
  81. TextDrawLetterSize(Copy,0.499999,0.800000);
  82. TextDrawColor(Copy,0xffffff66);
  83. TextDrawSetOutline(Copy,1);
  84. TextDrawSetProportional(Copy,1);
  85. TextDrawSetShadow(Copy,2);
  86.  
  87. /*Weitere Settings*/
  88. SetGameModeText(gmname);
  89. SendRconCommand(mapname);
  90. SendRconCommand(url);
  91. Connect_To_Database();
  92. mysql_debug(1);
  93. SetGameModeText("Blank v1.0 | fair");
  94. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  95. return 1;
  96. }
  97. /*Callback GE*/
  98. public OnGameModeExit()
  99. {
  100.  
  101. return 1;
  102. }
  103. /*Callback RC*/
  104. public OnPlayerRequestClass(playerid, classid)
  105. {
  106. if(GetPVarInt(playerid,"Eingeloggt") == 0) //Als erstes fragen wir ab ob der Spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin Auswahl uns neu Einloggen müssen.
  107. {
  108. if(mysql_CheckAccount(playerid) == 0)//Wir überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
  109. {
  110. SendClientMessage(playerid, 0xFFFFFFFF,"________-> [NAME] heißt dich Willkommen <-________");
  111. SendClientMessage(playerid, 0xFFFFFFFF,"Die Datenbank vermiss dich, registriere dich bitte!");
  112. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Dein Passwort soll lauten?:","Registrieren","Verlassen");
  113. }
  114. else if(mysql_CheckAccount(playerid) == 1)//Falls doch zeigen wir den Dialog zum Einloggen.
  115. {
  116. SendClientMessage(playerid, 0xFFFFFFFF,"________-> [NAME] heißt dich Willkommen <-________");
  117. SendClientMessage(playerid, 0xFFFFFFFF,"Schön dich wieder zu sehen, melde dich nun wieder an!");
  118. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Anmeldung","Bitte gib dein Passwort ein:","Anmelden","Verlassen");
  119. }
  120. }
  121. return 1;
  122. }
  123. /*Callback CO*/
  124. public OnPlayerConnect(playerid)
  125. {
  126. TextDrawShowForPlayer(playerid, Copy);
  127. return 1;
  128. }
  129. /*Callback DCO*/
  130. public OnPlayerDisconnect(playerid, reason)
  131. {
  132. SavePlayer(playerid);
  133. DeletePVar(playerid,"Eingeloggt");
  134. return 1;
  135. }
  136. /*Callback SP*/
  137. public OnPlayerSpawn(playerid)
  138. {
  139. return 1;
  140. }
  141. /*Callback DT*/
  142. public OnPlayerDeath(playerid, killerid, reason)
  143. {
  144. return 1;
  145. }
  146. /*Callback VSP*/
  147. public OnVehicleSpawn(vehicleid)
  148. {
  149. return 1;
  150. }
  151. /*Callback VDT*/
  152. public OnVehicleDeath(vehicleid, killerid)
  153. {
  154. return 1;
  155. }
  156. /*Callback PT*/
  157. public OnPlayerText(playerid, text[])
  158. {
  159. return 0;
  160. }
  161. /*Callback CMD*/
  162. public OnPlayerCommandText(playerid, cmdtext[])
  163. {
  164. return 0;
  165. }
  166. /*Callback EV*/
  167. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  168. {
  169. return 1;
  170. }
  171. /*Callback EV*/
  172. public OnPlayerExitVehicle(playerid, vehicleid)
  173. {
  174. return 1;
  175. }
  176. /*Callback SC*/
  177. public OnPlayerStateChange(playerid, newstate, oldstate)
  178. {
  179. return 1;
  180. }
  181. /*Callback EC*/
  182. public OnPlayerEnterCheckpoint(playerid)
  183. {
  184. return 1;
  185. }
  186. /*Callback LC*/
  187. public OnPlayerLeaveCheckpoint(playerid)
  188. {
  189. return 1;
  190. }
  191. /*Callback ERC*/
  192. public OnPlayerEnterRaceCheckpoint(playerid)
  193. {
  194. return 1;
  195. }
  196. /*Callback LRC*/
  197. public OnPlayerLeaveRaceCheckpoint(playerid)
  198. {
  199. return 1;
  200. }
  201. /*Callback RCON*/
  202. public OnRconCommand(cmd[])
  203. {
  204. return 1;
  205. }
  206. /*Callback RSP*/
  207. public OnPlayerRequestSpawn(playerid)
  208. {
  209. return 1;
  210. }
  211. /*Callback OBM*/
  212. public OnObjectMoved(objectid)
  213. {
  214. return 1;
  215. }
  216.  
  217. public OnPlayerObjectMoved(playerid, objectid)
  218. {
  219. return 1;
  220. }
  221.  
  222. public OnPlayerPickUpPickup(playerid, pickupid)
  223. {
  224. return 1;
  225. }
  226.  
  227. public OnVehicleMod(playerid, vehicleid, componentid)
  228. {
  229. return 1;
  230. }
  231.  
  232. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  233. {
  234. return 1;
  235. }
  236.  
  237. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  238. {
  239. return 1;
  240. }
  241.  
  242. public OnPlayerSelectedMenuRow(playerid, row)
  243. {
  244. return 1;
  245. }
  246.  
  247. public OnPlayerExitedMenu(playerid)
  248. {
  249. return 1;
  250. }
  251.  
  252. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  253. {
  254. return 1;
  255. }
  256.  
  257. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  258. {
  259. return 1;
  260. }
  261.  
  262. public OnRconLoginAttempt(ip[], password[], success)
  263. {
  264. return 1;
  265. }
  266.  
  267. public OnPlayerUpdate(playerid)
  268. {
  269. return 1;
  270. }
  271.  
  272. public OnPlayerStreamIn(playerid, forplayerid)
  273. {
  274. return 1;
  275. }
  276.  
  277. public OnPlayerStreamOut(playerid, forplayerid)
  278. {
  279. return 1;
  280. }
  281.  
  282. public OnVehicleStreamIn(vehicleid, forplayerid)
  283. {
  284. return 1;
  285. }
  286.  
  287. public OnVehicleStreamOut(vehicleid, forplayerid)
  288. {
  289. return 1;
  290. }
  291. /*Callback DR*/
  292. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  293. {
  294. switch(dialogid)
  295. {
  296. case DIALOG_REGISTER:
  297. {
  298. if(response)
  299. {
  300. if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
  301. {
  302. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Dein Passwort ist zu Kurz..\nBitte gib ein neues Passwort ein:","Registrieren","Verlassen");
  303. return 1;
  304. }
  305. else
  306. {
  307. CreateAccount(playerid, inputtext); //Account wird erstellt
  308. SetPVarInt(playerid,"Eingeloggt",1); //Die variable wird auf 1 gesetzt, damit wir nun die Skin Auswahl benutzen können ohne wieder nach unserem Passwort gefragt zu werden.
  309. SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
  310. return 1;
  311. }
  312. }
  313. else
  314. {
  315. Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
  316. }
  317. }
  318. case DIALOG_LOGIN:
  319. {
  320. if(response)
  321. {
  322. if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
  323. {
  324. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Anmeldung","Das angegebene Passwort ist Falsch..\nBitte wiederhole den Vorgang erneut:","Anmelden","Verlassen");
  325. return 1;
  326. }
  327. else
  328. {
  329. new SpielerName[MAX_PLAYER_NAME];
  330. GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
  331. if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true)) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
  332. {
  333. SetPVarInt(playerid,"Eingeloggt",1); //Falls beide passwörter übereinstimmen wird die Variable auf 1 gesetzt damit wir die Skin auswahl benutzen können.
  334. LoadPlayer(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
  335. SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
  336. return 1;
  337. }
  338. else
  339. {
  340. //Wenn das Passwort falsch war, lassen wir erneut das Login fenster erscheinen damit der Spieler das Richtige Passwort eingibt.
  341. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Anmeldung","Falsches Passwort.\nBitte melde dich jetzt mit dem richtigen Passwort an:","Anmelden","Verlassen");
  342. return 1;
  343. }
  344. }
  345. }
  346. else
  347. {
  348. Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
  349. }
  350. }
  351. }
  352. return 1;
  353. }
  354.  
  355. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  356. {
  357. return 1;
  358. }
  359. //===== OCMD =====
  360. /*Admincommands*/
  361. ocmd:veh(playerid,params[])
  362. {
  363. new ModelID, color[2],Float:VehPos[4], vehicleid;
  364. if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return SendClientMessage(playerid,0xB0AFB0FF,"Du bist nicht zu Fuss");
  365. if(sscanf(params, "ddd",ModelID,color[0],color[1])) return SendClientMessage(playerid,0xB0AFB0FF, "/veh [vehicleid] [color1] [color2]");
  366. if(ModelID < 400 || ModelID > 611) return SendClientMessage(playerid,0xB0AFB0FF, "Die Fahrzeug Id muss von 400 bis 611 sein");
  367. if(color[0] < 0 || color[0] > 126 || color[1] < 0 || color[1] > 200) return SendClientMessage(playerid,0xB0AFB0FF, "Falsche Farben 0 - 126");
  368. if(IstAdmin(playerid))
  369. {
  370. GetPlayerPos(playerid, VehPos[0],VehPos[1],VehPos[2]);
  371. GetPlayerFacingAngle(playerid, VehPos[3]);
  372. vehicleid = CreateVehicle(ModelID,VehPos[0],VehPos[1],VehPos[2],VehPos[3],color[0],color[1],-1);
  373. LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
  374. SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
  375. PutPlayerInVehicle(playerid, vehicleid, 0);
  376. }
  377. else return SendClientMessage(playerid, 0xB0AFB0FF, "Du bist ein Noob Admin");
  378. return 1;
  379. }
  380. ocmd:hilfe(playerid, params[])
  381. {
  382. if(IstAdmin(playerid)) {
  383. ShowPlayerDialog(playerid,1000,DIALOG_STYLE_MSGBOX,"Befehle",ADMINBEFEHLE,"Close","");}
  384. else if(!IstAdmin(playerid)) {
  385. ShowPlayerDialog(playerid,1001,DIALOG_STYLE_MSGBOX,"Befehle",NORMALEBEFEHLE,"Close","");}
  386. return 1;
  387. }
  388. ocmd:makeleader(playerid, params[])
  389. {
  390. if(IstAdmin(playerid)){
  391. new pID, Frak, Fraktion[100], Rang, string[60];
  392. if(sscanf(params, "dddd", pID, Frak, Rang)) return SendClientMessage(playerid, Rot, "Benutze: /makeleader [Playerid] [Fraktion] [Rang]");
  393. switch(Frak)
  394. {
  395. case 1: Fraktion = "Polizei";
  396. case 2: Fraktion = "KriPo";
  397. case 3: Fraktion = "Medic";
  398. case 4: Fraktion = "O-Amt";
  399. case 5: Fraktion = "Yakuza";
  400. case 6: Fraktion = "La Cosa Nostra";
  401. case 7: Fraktion = "Russische Mafia";
  402. case 8: Fraktion = "CripZ";
  403. case 9: Fraktion = "BloodZ";
  404. case 10: Fraktion = "Vagos";
  405. }
  406. format(string, sizeof(string), " %s {4D8CE3}wurde zum Leiter der {FF0000}%s {4D8CE3}ernannt, Rang: {FF0000}%d", getName(pID), Fraktion, Rang);
  407. SendAdminMessageRang(Rot,1338,string);
  408. SpielerInfo[playerid][pMember] = Frak;
  409. SpielerInfo[playerid][pLeader] = Frak;
  410. SpielerInfo[playerid][pRang] = Rang;}
  411. return 1;
  412. }
  413. ocmd:makeadmin(playerid, params[])
  414. {
  415. if(IstAdmin(playerid)){
  416. new pID, Level, string[60];
  417. if(sscanf(params, "dd", pID, Level)) return SendClientMessage(playerid, Rot, "Benutze: /makeadmin [Playerid] [Level]");
  418. format(string, sizeof(string), " %s {4D8CE3}wurde zum Admin ernannt, Level: {FF0000}%d", getName(pID), Level);
  419. SendAdminMessageRang(Rot,1338,string);
  420. SpielerInfo[playerid][pLevel] = Level;}
  421. return 1;
  422. }
  423. ocmd:kick(playerid, params[])
  424. {
  425. if(IstAdmin(playerid)){
  426. new pID, Grund[50], string[60], stringa[60];
  427. if(sscanf(params, "ds", pID, Grund)) return SendClientMessage(playerid, Rot, "Benutze: /kick [Playerid] [Grund]");
  428. format(stringa, sizeof(stringa), "ADM: %s {FAFAFA}wurde gebannt, Grund: {FF0000}%s", getName(pID), Grund);
  429. format(string, sizeof(string), " %s {FAFAFA}wurde gebannt, Grund: {FF0000}%s", getName(pID), Grund);
  430. SendAdminMessageRang(Rot,1338,stringa);
  431. SendClientMessageToAll(Rot, string);
  432. Kick(pID);}
  433. return 1;
  434. }
  435. ocmd:ban(playerid, params[])
  436. {
  437. if(IstAdmin(playerid)){
  438. new pID, Grund[50], string[60], stringa[60];
  439. if(sscanf(params, "ds", pID, Grund)) return SendClientMessage(playerid, Rot, "Benutze: /ban [Playerid] [Grund]");
  440. format(stringa, sizeof(stringa), "ADM: %s {FAFAFA}wurde gebannt, Grund: {FF0000}%s", getName(pID), Grund);
  441. format(string, sizeof(string), " %s {FAFAFA}wurde gebannt, Grund: {FF0000}%s", getName(pID), Grund);
  442. SendAdminMessageRang(Rot,1338,stringa);
  443. SendClientMessageToAll(Rot, string);
  444. Ban(pID);}
  445. return 1;
  446. }
  447. ocmd:a(playerid, params[])
  448. {
  449. new text[128],Rang[54];
  450. if(sscanf(params, "s", text))
  451. return SendClientMessage(playerid, Rot, "Benutzung: /a [Text]");
  452. if(IstAdmin(playerid))
  453. {
  454. switch(SpielerInfo[playerid][pLevel])
  455. {
  456. case 1: Rang = "Supporter";
  457. case 2: Rang = "Moderator";
  458. case 3: Rang = "Supermoderator";
  459. case 4: Rang = "Administrator";
  460. case 5: Rang = "Kon-Administrator";
  461. case 6: Rang = "Techniker";
  462. case 7: Rang = "Servermanager";
  463. case 8: Rang = "Kon-Serverleiter";
  464. case 9: Rang = "Serverleiter";
  465. case 1338: Rang = "Scripter";
  466. }
  467. }
  468. format(text, sizeof text, "((%s %s: {FAFAFA}%s ))", Rang, getName(playerid), text);
  469. SendAdminMessageRang(Grun,1338,text);
  470. return 1;
  471. }
  472. /*Jobcommands*/
  473. ocmd:cuff(playerid, params[])
  474. {
  475. if(SpielerInfo[playerid][pMember] == 1 || SpielerInfo[playerid][pMember] == 2)
  476. {
  477. new pID, bool:handschellen[MAX_PLAYERS], Float:x, Float:y, Float:z;
  478. GetPlayerPos(playerid, x, y, z);
  479. if(sscanf(params, "d", pID)) return SendClientMessage(playerid, Rot, "Verwende: /cuff [PlayerID] (Muss in der nähe sein)");
  480. if(IsPlayerInRangeOfPoint(pID, 2.0, x,y,z)){
  481. if(handschellen[pID] == true)
  482. {
  483. handschellen[pID] = false;
  484. SetPlayerSpecialAction(pID,24);
  485. Handschellen = SetPlayerAttachedObject(pID, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977, -81.700035, 0.891999, 1.000000, 1.168000);
  486. }
  487. else if(handschellen[pID] == false)
  488. {
  489. handschellen[pID] = true;
  490. RemovePlayerAttachedObject(pID, Handschellen);
  491. }
  492. }}
  493. return 1;
  494. }
  495. ocmd:f(playerid, params[])
  496. {
  497. if(SpielerInfo[playerid][pMember] > 0)
  498. {
  499. new text[128],Rang[54];
  500. if(sscanf(params, "s", text))
  501. return SendClientMessage(playerid, Rot, "Benutzung: /f [Text]");
  502. if(SpielerInfo[playerid][pMember] == 1)
  503. {
  504. switch(SpielerInfo[playerid][pRang])
  505. {
  506. case 1: Rang = "1";
  507. case 2: Rang = "2";
  508. case 3: Rang = "3";
  509. case 4: Rang = "4";
  510. case 5: Rang = "5";
  511. case 6: Rang = "6";
  512. case 7: Rang = "7";
  513. case 8: Rang = "8";
  514. case 9: Rang = "9";
  515. case 10: Rang = "10";
  516. }
  517. }
  518. format(text, sizeof text, "((%s %s: %s ))", Rang, getName(playerid), text);
  519. for(new i; i < GetMaxPlayers(); i++)
  520. {
  521. if(IsPlayerConnected(i))
  522. if(InFrak(i, SpielerInfo[playerid][pMember]))//Nur die Frak, wo man drinnen ist
  523. SendClientMessage(i,Grun, text);
  524. }
  525. }
  526. return 1;
  527. }
  528. /*Normale Befehle*/
  529. ocmd:verhandlung(playerid, params[])
  530. {
  531. if(SpielerInfo[playerid][filmgehabt] == 1)
  532. {
  533. Film(playerid);
  534. }
  535. else if(SpielerInfo[playerid][filmgehabt] == 0)
  536. {
  537. Filmende(playerid);
  538. }
  539. return 1;
  540. }
  541. ocmd:ausweis(playerid,params)
  542. {
  543. profile(playerid);
  544. return 1;
  545. }
  546.  
  547.  
  548. stock profile(playerid){
  549. new Name[MAX_PLAYER_NAME], Bankgeld = SpielerInfo[playerid][bank_geld], Geld = GetPlayerMoney(playerid), Score = GetPlayerScore(playerid),
  550. string1[156],string2[156],string3[156],string4[156],string5[156],string6[56],string7[56],string8[56],string9[56],string10[56],string11[56],string12[56],string13[56],string14[56],rest[200];
  551. GetPlayerName(playerid,Name,sizeof Name);
  552. format(string2, sizeof string2, "[Allgemeines]");
  553. format(string3, sizeof(string3), "{FAFAFA}Name: \t%s\nLevel: \t%d\nGeld: \t{E63576}%d {24AD40}${FAFAFA}", Name,Score,Geld);
  554. format(string4, sizeof(string4), "Bankgeld: \t{E63576}%d {24AD40}${FAFAFA}\nBeruf: \t%s\nRang: \t%s",Bankgeld,GetTeamStr(SpielerInfo[playerid][pMember]),GetRang(SpielerInfo[playerid][pRang]));
  555. format(rest, sizeof rest, "%s\n\n\n%s\n%s\n%s\n%s\n\n%s\n%s\n%s\n\n%s\n%s\n\n%s\n%s\n%s\n%s", string1,string2,string3,string4,string5,string6,string7,string8,string9,string10,string11,string12,string13,string14);
  556. ShowPlayerDialog(playerid,DIALOG_PROFIL, DIALOG_STYLE_MSGBOX, "{F22C7E}Statistik{FFFFFF}", rest, "Weiter", "Weiter");
  557. return 1;
  558. }
  559. stock GetRang(sRang)
  560. {
  561. new teamstr[20];
  562. switch(sRang)
  563. {
  564. case 0:teamstr = "Neuling";
  565. case 1:teamstr = "Anfaenger";
  566. case 2:teamstr = "Fortgeschrittener";
  567. case 3:teamstr = "Ausbilder";
  568. case 4:teamstr = "Stellv. Leiter";
  569. case 5:teamstr = "Leitung";
  570. case 6:teamstr = "Godfather";
  571. }
  572. return teamstr;
  573. }
  574. stock GetTeamStr(Teamid)
  575. {
  576. new tstr[25];
  577. switch(Teamid)
  578. {
  579. case 0:tstr = "Zivilist";
  580. case 1: tstr = "Polizei";
  581. case 2: tstr = "KriPo";
  582. case 3: tstr = "Medic";
  583. case 4: tstr = "O-Amt";
  584. case 5: tstr = "Yakuza";
  585. case 6: tstr = "La Cosa Nostra";
  586. case 7: tstr = "Russische Mafia";
  587. case 8: tstr = "CripZ";
  588. case 9: tstr = "BloodZ";
  589. case 10: tstr = "Vagos";
  590. }
  591. return tstr;
  592. }
  593. stock Film(playerid)
  594. {
  595. new Float:x, Float:y, Float:z;
  596. GetPlayerPos(playerid, x, y, z);
  597. InterpolateCameraPos(playerid, x, y, z, x+5, y+20, z+5, 5000, CAMERA_CUT);
  598. SpielerInfo[playerid][filmgehabt] = 0;
  599. return 1;
  600. }
  601. stock Filmende(playerid)
  602. {
  603. SpielerInfo[playerid][filmgehabt] = 1;
  604. SetCameraBehindPlayer(playerid);
  605. return 1;
  606. }
  607. stock Connect_To_Database()
  608. {
  609. mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS); //Wir versuchen mit den Angaben die wir oben im Script gemacht haben uns mit dem MySQL Server zu verbinden.
  610. if(mysql_ping() == 1) //Es wird überprüft ob die Verbindung steht.
  611. {
  612. //Falls ja wird das in die Console geschrieben und die Funktion wird beendet.
  613. print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
  614. return true;
  615. }
  616. else
  617. {
  618. //Falls nicht wird erneut versucht eine Verbindung aufzubauen.
  619. print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  620. print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
  621. mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
  622. if(mysql_ping() == 1)
  623. {
  624. print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
  625. return true;
  626. }
  627. else
  628. {
  629. //Falls das auch nicht Funktioniert wird der Server zur Sicherheit wieder heruntergefahren.
  630. print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
  631. print("<-| [MYSQL] Der Server wird nun beendet!");
  632. SendRconCommand("exit");
  633. return true;
  634. }
  635. }
  636. }
  637. stock mysql_CheckAccount(playerid)
  638. {
  639. new Query[128],Name[MAX_PLAYER_NAME];
  640. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  641. mysql_real_escape_string(Name, Name);
  642. format(Query, sizeof(Query), "SELECT * FROM accounts WHERE Name = '%s'", Name);
  643. mysql_query(Query);
  644. mysql_store_result();
  645. return mysql_num_rows();
  646. }
  647. stock CreateAccount(playerid, pass[])
  648. {
  649. new query[256],Name[MAX_PLAYER_NAME];
  650. GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
  651. mysql_real_escape_string(Name,Name);
  652. mysql_real_escape_string(pass,pass);
  653. format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort) VALUES ('%s', '%s')", Name, pass);
  654. mysql_query(query);
  655. return true;
  656. }
  657. stock mysql_ReturnPasswort(Name[])
  658. {
  659. new query[130], Get[130];
  660. mysql_real_escape_string(Name, Name);
  661. format(query, 128, "SELECT passwort FROM accounts WHERE Name = '%s'", Name);
  662. mysql_query(query);
  663. mysql_store_result();
  664. mysql_fetch_row(Get);
  665. mysql_free_result();
  666. return Get;
  667. }
  668. stock LoadPlayer(playerid)
  669. {
  670. if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
  671. {
  672. GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
  673. SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
  674. SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
  675. SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.
  676. SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Tode" eingetragen ist und Speichern ihn in unserer Variable.
  677. SpielerInfo[playerid][pRang] = mysql_GetInt("accounts", "Rang", "Name", SpielerInfo[playerid][pName]);
  678. SpielerInfo[playerid][pMember] = mysql_GetInt("accounts", "Member", "Name", SpielerInfo[playerid][pName]);
  679. SpielerInfo[playerid][pLeader] = mysql_GetInt("accounts", "Leader", "Name", SpielerInfo[playerid][pName]);
  680. }
  681. return 1;
  682. }
  683. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  684. {
  685. new query[128];
  686. mysql_real_escape_string(Table, Table);
  687. mysql_real_escape_string(Field, Field);
  688. mysql_real_escape_string(Where, Where);
  689. mysql_real_escape_string(Is, Is);
  690. format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  691. mysql_query(query);
  692. mysql_store_result();
  693. new sqlint = mysql_fetch_int();
  694. mysql_free_result();
  695. return sqlint;
  696. }
  697. stock SavePlayer(playerid)
  698. {
  699. if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
  700. {
  701. if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
  702. {
  703. //Nun speichern wir die Daten in der Datenbank.
  704. mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
  705. mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
  706. mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
  707. mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
  708. mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
  709. mysql_SetInt("accounts", "Rang", SpielerInfo[playerid][pRang], "Name", SpielerInfo[playerid][pName]);
  710. mysql_SetInt("accounts", "Member", SpielerInfo[playerid][pMember], "Name", SpielerInfo[playerid][pName]);
  711. mysql_SetInt("accounts", "Leader", SpielerInfo[playerid][pLeader], "Name", SpielerInfo[playerid][pName]);
  712. }
  713. }
  714. return 1;
  715. }
  716. stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
  717. {
  718. new query[128];
  719. mysql_real_escape_string(Table, Table);
  720. mysql_real_escape_string(Field, Field);
  721. mysql_real_escape_string(Where, Where);
  722. mysql_real_escape_string(Where2, Where2);
  723. format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  724. mysql_query(query);
  725. return true;
  726. }
  727. stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
  728. {
  729. new query[128];
  730. mysql_real_escape_string(Table, Table);
  731. mysql_real_escape_string(Field, Field);
  732. mysql_real_escape_string(To, To);
  733. mysql_real_escape_string(Where, Where);
  734. mysql_real_escape_string(Where2, Where2);
  735. format(query, 128, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  736. mysql_query(query);
  737. return true;
  738. }
  739. stock mysql_GetString(Table[], Field[], Where[], Is[])
  740. {
  741. new query[128], Get[128];
  742. mysql_real_escape_string(Table, Table);
  743. mysql_real_escape_string(Field, Field);
  744. mysql_real_escape_string(Where, Where);
  745. mysql_real_escape_string(Is, Is);
  746. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  747. mysql_query(query);
  748. mysql_store_result();
  749. mysql_fetch_row(Get);
  750. mysql_free_result();
  751. return Get;
  752. }
  753. stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
  754. {
  755. new query[128];
  756. mysql_real_escape_string(Table, Table);
  757. mysql_real_escape_string(Field, Field);
  758. mysql_real_escape_string(Where, Where);
  759. mysql_real_escape_string(Where2, Where2);
  760. format(query, 128, "UPDATE %s SET %s = '%.1f' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  761. mysql_query(query);
  762. return true;
  763. }
  764.  
  765.  
  766. stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
  767. {
  768. new query[128], Float:sqlfloat;
  769. mysql_real_escape_string(Table, Table);
  770. mysql_real_escape_string(Field, Field);
  771. mysql_real_escape_string(Where, Where);
  772. mysql_real_escape_string(Is, Is);
  773. format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
  774. mysql_query(query);
  775. mysql_store_result();
  776. mysql_fetch_float(sqlfloat);
  777. mysql_free_result();
  778. return sqlfloat;
  779. }
  780. stock GetNearHausID(playerid)
  781. {
  782. new Float:x,
  783. Float:y,
  784. Float:z,
  785. WhichID;
  786. GetPlayerPos(playerid, x, y, z); // "gette" x, y, z - Koordinate an denen der Spieler sich befindet
  787. for(new hWhich; hWhich < MaxHaus; hWhich++) //Durchlaufe alle Häuser
  788. if(IsPlayerInRangeOfPoint(playerid, 3.0, Haus[hWhich][hX], Haus[hWhich][hY], Haus[hWhich][hZ])) //bis du ein Haus findest was im Radius von 3.0 steht
  789. WhichID = hWhich;
  790. return WhichID; //und returne dann das gefundene Haus
  791. }
  792. stock SendAdminMessageRang(farbe,level,const string[]) { // Müsste klar sein, ist die Vorgehensweise (definiert)
  793. level = 1338;
  794. for(new i = 0; i < MAX_PLAYERS; i++) { //eine Schleife zum Abfragen der Spieler :D
  795. if (SpielerInfo[i][pLevel] >= level) {//Die meisten Selfmades Variablen, sendet Nachricht an den angegebenen Rang..
  796. SendClientMessage(i, farbe, string); // Sendet String...
  797. } }
  798. return 1; }
  799. stock InFrak(pid, frak)
  800. {
  801. if(SpielerInfo[pid][pMember] == frak || SpielerInfo[pid][pMember] == frak) return SendClientMessage(pid, Rot, "");
  802. return 1;
  803. }
  804. stock IstAdmin(pid)
  805. {
  806. if(SpielerInfo[pid][pLevel] >= 1338 || !IsPlayerAdmin(pid)) return SendClientMessage(pid, Rot, "");
  807. return 0;
  808. }
  809. stock getName(playerid)
  810. {
  811. GetPlayerName(playerid,GetNamee,sizeof(GetNamee));
  812. return GetNamee;
  813. }
  814. stock GivePlayerHealth(playerid,Float:Health)
  815. {
  816. new Float:health;
  817. GetPlayerHealth(playerid,health);
  818. SetPlayerHealth(playerid,health+Health);
  819. return 1;
  820. }
  821. stock GivePlayerArmour(playerid,Float:Armour)
  822. {
  823. new Float:armour;
  824. GetPlayerArmour(playerid,armour);
  825. SetPlayerArmour(playerid,armour+Armour);
  826. return 1;
  827. }
  828. GetPlayerID(playername[])
  829. {
  830. for(new i = 0; i < MAX_PLAYERS; i++)
  831. {
  832. if(!IsPlayerConnected(i) || !strcmp(GetPlayerNameEx(i),playername,false)) continue;
  833. return i;
  834. }
  835. return -1;
  836. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement