Advertisement
Guest User

Mysql

a guest
Jun 11th, 2013
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.52 KB | None | 0 0
  1. /*
  2. Dieses Filterscript wurde von K3VIN am 11.06.2013
  3. um 13:40 erstellt.
  4.  
  5. Ihr könnt hiermit machen was ihr wollt, lediglich gebe ich
  6. nur Support zu diesem Filterscript, wenn dadurch Bugs mit
  7. eurem Gamemode enstehen müsst ihr diese selber ausbaden.
  8.  
  9. Greetz K3VIN
  10.  
  11. PS: Kommt nicht auf dumme gedanken es wieder als eures auszugeben.
  12.  
  13. */
  14.  
  15.  
  16.  
  17. #include <a_samp>
  18. #include <ocmd>
  19. #include <a_mysql>
  20. #include <streamer>
  21.  
  22. //==== [ Zugang ] ====//
  23. #define My_Host "localhost" // MYSQL Host Eintragen
  24. #define My_User "root" // Mysql Benutzername/Username eintragen
  25. #define My_Pass "123" // Mysql Passwort Eintragen
  26. #define My_DB "samp" // Mysql Datenbank Name eintragen
  27.  
  28. #define Rot 0xFF2D35FF
  29. #define Weiss 0xFFFFFFFF
  30. #define Orange 0xFF9C00FF
  31. #define Gruen 0x4BB400FF
  32.  
  33.  
  34. #define DIALOG_PORTEN 0
  35. #define DIALOG_BANK 1
  36. #define DIALOG_DATEN 2
  37. #define DIALOG_VERWALTEN 3
  38. #define DIALOG_EINZAHLEN 4
  39. #define DIALOG_PINABFRAGE 5
  40. #define DIALOG_AUSZAHLEN 6
  41. #define DIALOG_ATM 7
  42. #define DIALOG_UEBERWEISEN 8
  43. #define DIALOG_UEBERWEISEN1 9
  44.  
  45. #define Function%0(%1) forward%0(%1); public%0(%1)//
  46. #define String(%0,%1,%2,%3) do {new _msg[128]; format(_msg,sizeof(_msg),%2,%3); SendClientMessage(%0,%1,_msg); } while(FALSE)
  47. new bool:FALSE = false;
  48. #define KEY_N 131072
  49. #define Geschenk 25
  50.  
  51.  
  52. stock CreatePickupEx(modelid, spawntype, Float:x, Float:y, Float:z, text[])
  53. {
  54. CreateDynamic3DTextLabel(text, Weiss, x, y, z, 15.0);
  55. return CreatePickup(modelid, spawntype, x, y, z);
  56. }
  57.  
  58. main()
  59. {
  60. }
  61.  
  62. enum SpielerKonto
  63. {
  64. Konto,
  65. Kontostand,
  66. Beantragt,
  67. Pin,
  68. Kontonummer,
  69. Abholen,
  70. Partner
  71. }
  72. new Bank[MAX_PLAYERS][SpielerKonto],
  73. GlobalString[1024];
  74.  
  75. new Float:ATMS[][3] =
  76. {
  77. {1507.69995, -1276.09998, 14.2}
  78. };
  79.  
  80. public OnFilterScriptInit()
  81. {
  82. print("\n--------------------------------------");
  83. print("Bank System by K3VIN ");
  84. print("--------------------------------------\n");
  85.  
  86. C_T_D();
  87. mysql_query("CREATE TABLE IF NOT EXISTS `bkonto` (`id` int(11) NOT NULL AUTO_INCREMENT, `bname` varchar(24), `Konto` varchar(40), `Kontostand` int(11), `Beantragt` int(11),`Pin` int(11),`Kontonummer` int(11),`Abholen` int(11),PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
  88. CreatePickupEx(1274, 1, 1501.8632,-1277.8013,14.5625,"Sparkasse\nbenutze die Taste 'N'");
  89.  
  90. // ============== [ Atm ] ============== //
  91. CreateDynamicObject(2942, 1507.69995, -1276.09998, 14.2, 0, 0, 0);
  92.  
  93. for(new o=0; o<sizeof(ATMS); o++)
  94. {
  95. format(GlobalString,sizeof(GlobalString),"Geldautomat\nBenutze die Taste 'N'",ATMS[o][0],ATMS[o][1],ATMS[o][2]);
  96. Create3DTextLabel(GlobalString,Weiss,ATMS[o][0],ATMS[o][1],ATMS[o][2]+1,25,0,1);
  97. }
  98. return 1;
  99. }
  100.  
  101. public OnFilterScriptExit()
  102. {
  103. for(new i=0; i<MAX_PLAYERS; i++)
  104. {
  105. BankSpeichern(i);
  106. }
  107. return 1;
  108. }
  109.  
  110.  
  111.  
  112. public OnPlayerConnect(playerid)
  113. {
  114. BankLaden(playerid);
  115. String(playerid,Orange,"Willkommen %s, Banksystem by K3VIN",SpielerName(playerid));
  116. return 1;
  117. }
  118.  
  119. public OnPlayerDisconnect(playerid, reason)
  120. {
  121. BankSpeichern(playerid);
  122. Bank[playerid][Konto] = 0;
  123. Bank[playerid][Kontostand] = 0;
  124. Bank[playerid][Beantragt] = 0;
  125. Bank[playerid][Pin] = 0;
  126. Bank[playerid][Kontonummer] = 0;
  127. return 1;
  128. }
  129.  
  130.  
  131. // ==================================================================== //
  132.  
  133. ocmd:porten(playerid,params[])
  134. {
  135. ShowPlayerDialog(playerid,DIALOG_PORTEN,DIALOG_STYLE_LIST,"Wohin ?","Los Santos Bank","Auswahl","Abbrechen");
  136. return 1;
  137. }
  138.  
  139. ocmd:geld(playerid,params[]) return GivePlayerMoney(playerid,500);
  140.  
  141.  
  142. // ==================================================================== //
  143.  
  144. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  145. {
  146. if(newkeys & KEY_N)
  147. {
  148. if(IsPlayerInRangeOfPoint(playerid,2.0,1501.8632,-1277.8013,14.5625))
  149. {
  150. ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Sparkasse","Konto erstellen\nKonto abholen\nVerwalten","Auswahl","Abbrechen");
  151. return 1;
  152. }
  153. for(new o=0; o<sizeof(ATMS); o++)
  154. {
  155. if(IsPlayerInRangeOfPoint(playerid,3.0,ATMS[o][0],ATMS[o][1],ATMS[o][2]))
  156. {
  157. if(Bank[playerid][Konto] == 0)return SendClientMessage(playerid,Orange,"Du besitzt noch kein Konto!");
  158. ShowPlayerDialog(playerid,DIALOG_PINABFRAGE,DIALOG_STYLE_INPUT,"Geldautomat","Um auch wirklich sicher zu gehen, dass das dein Konto ist,\ngib bitte den Konto Pin an!","Absenden","Abbrechen");
  159. return 1;
  160. }
  161. }
  162. }
  163. return 1;
  164. }
  165.  
  166. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  167. {
  168. if(dialogid==DIALOG_PORTEN)
  169. {
  170. if(response)
  171. {
  172. if(listitem==0)
  173. {
  174. SetPlayerPos(playerid,1521.3539,-1284.2428,14.4892);
  175. SetPlayerInterior(playerid,0);
  176. SetCameraBehindPlayer(playerid);
  177. SetPlayerFacingAngle(playerid,37.2782);
  178. SendClientMessage(playerid,Weiss,"Du hast dich erfolgreich zur Los Santos Bank geportet!");
  179. return 1;
  180. }
  181. }
  182. }
  183. if(dialogid==DIALOG_BANK)
  184. {
  185. if(response)
  186. {
  187. if(listitem==0)
  188. {
  189. if(Bank[playerid][Konto] == 1)return SendClientMessage(playerid,Orange,"Du besitzt bereits ein Konto!");
  190. String(playerid,Weiss,"Vielen Danke %s, das Sie sich für die Sparkasse entschieden habe.",SpielerName(playerid));
  191. SetTimerEx("Kontobeantragt",10000,0,"d",playerid);
  192. Bank[playerid][Beantragt] = 1;
  193. return 1;
  194. }
  195. if(listitem==1)
  196. {
  197. new string[512],query[200];
  198. if(Bank[playerid][Konto] == 1)return SendClientMessage(playerid,Orange,"Du besitzt bereits ein Konto!");
  199. if(Bank[playerid][Beantragt] == 0)return SendClientMessage(playerid,Orange,"Du hast kein Konto beantragt!");
  200. if(Bank[playerid][Abholen] == 0)return SendClientMessage(playerid,Orange,"Dein Konto ist noch nicht fertig!");
  201. new pin = random(8999) + 1000, nummer = random(18999) + 1000;
  202. Bank[playerid][Abholen] = 0;
  203. Bank[playerid][Beantragt] = 0;
  204. Bank[playerid][Konto] = 1;
  205. Bank[playerid][Pin] = pin;
  206. Bank[playerid][Kontonummer] = nummer;
  207. Bank[playerid][Kontostand] += Geschenk;
  208. format(string,sizeof(string),"{FEFEFE}Dein Konto ist fertiggestellt.\n\nDeine Kontonummer lautet: {23FF00}%i{FEFEFE}\nDein Bankpin lautet: {23FF00}%i{FEFEFE}\n\nGib auf dein Bankpin gut acht!",pin,nummer);
  209. ShowPlayerDialog(playerid,DIALOG_DATEN,DIALOG_STYLE_MSGBOX,"Dein Konto",string,"Fertig","");
  210. String(playerid,Gruen,"Als Geschenk erhälst du von uns %i$ auf dein Konto gutgeschrieben.",Geschenk);
  211. format(query,sizeof(query),"INSERT INTO `bkonto` (`bname`,`Konto`,`Kontostand`,`Beantragt`,`Pin`,`Kontonummer`,`Abholen`) VALUES ('%s','%d','%d','%d','%d','%d','%d')",
  212. SpielerName(playerid),Bank[playerid][Konto],Bank[playerid][Kontostand],Bank[playerid][Beantragt],Bank[playerid][Pin],Bank[playerid][Kontonummer],Bank[playerid][Abholen]);
  213. mysql_query(query);
  214. return 1;
  215. }
  216. if(listitem==2)
  217. {
  218. if(Bank[playerid][Konto] == 0)return SendClientMessage(playerid,Orange,"Du besitzt kein Konto!");
  219. ShowPlayerDialog(playerid,DIALOG_PINABFRAGE,DIALOG_STYLE_INPUT,"Sparkasse - Konto Verwalten","Um auch wirklich sicher zu gehen, dass das dein Konto ist,\ngib bitte den Konto Pin an!","Absenden","Abbrechen");
  220. return 1;
  221. }
  222. }
  223. }
  224. if(dialogid==DIALOG_PINABFRAGE)
  225. {
  226. if(!response)return ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Sparkasse","Konto erstellen\nKonto abholen\nVerwalten","Auswahl","Abbrechen");
  227. if(response)
  228. {
  229. if(strval(inputtext) != Bank[playerid][Pin])return ShowPlayerDialog(playerid,DIALOG_PINABFRAGE,DIALOG_STYLE_INPUT,"Sparkasse - Konto Verwalten","{E10000}Falscher Pin!\n\n{FEFEFE}Bitte gib den Korrekten Pin ein!","Absenden","Abbrechen");
  230. ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen\nÜberweisen","Auswahl","Abbrechen");
  231. return 1;
  232. }
  233. }
  234. if(dialogid==DIALOG_VERWALTEN)
  235. {
  236. if(!response)return ShowPlayerDialog(playerid,DIALOG_BANK,DIALOG_STYLE_LIST,"Sparkasse","Konto erstellen\nKonto abholen\nVerwalten","Auswahl","Abbrechen");
  237. if(response)
  238. {
  239. if(listitem==0)
  240. {
  241. SendClientMessage(playerid,Weiss, " ");
  242. SendClientMessage(playerid,Orange,"| ==================== |");
  243. SendClientMessage(playerid,Weiss, " ");
  244. String(playerid,Weiss,"Aktueller Kontostand: {23FF00}%i$",Bank[playerid][Kontostand]);
  245. SendClientMessage(playerid,Weiss, " ");
  246. SendClientMessage(playerid,Orange,"| ==================== |");
  247. ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen\nÜberweisen","Auswahl","Abbrechen");
  248. return 1;
  249. }
  250. if(listitem==1)
  251. {
  252. ShowPlayerDialog(playerid,DIALOG_EINZAHLEN,DIALOG_STYLE_INPUT,"Geld einzahlen","Wieviel Geld möchtest du auf dein Konto einzahlen ?","Einzahlen","Abbrechen");
  253. return 1;
  254. }
  255. if(listitem==2)
  256. {
  257. ShowPlayerDialog(playerid,DIALOG_AUSZAHLEN,DIALOG_STYLE_INPUT,"Geld auszahlen","Wieviel Geld möchtest du von deinem Konto auszahlen ?","Auszahlen","Abbrechen");
  258. return 1;
  259. }
  260. if(listitem==3)
  261. {
  262. ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN,DIALOG_STYLE_INPUT,"Überweisung","An welchen Spieler möchtest du Geld überweisen ?\nGib die Kontonummer des Spielers an!","Absenden","Abbrechen");
  263. return 1;
  264. }
  265. }
  266. }
  267. if(dialogid==DIALOG_UEBERWEISEN)
  268. {
  269. new string[128], pID = Kontonummerrichtig(strval(inputtext));
  270. if(pID == -1)return ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN,DIALOG_STYLE_INPUT,"Überweisung","{E10000}Dieses Konto Exisitiert nicht oder der Besitzer ist nicht Online!\n\n{FEFEFE}An welchen Spieler möchtest du Geld überweisen ?\nGib die Kontonummer des Spielers an!","Absenden","Abbrechen");
  271. format(string,sizeof(string),"Wieviel Geld möchtest du an {23FF00}%s{FEFEFE} Überweisen ?",SpielerName(pID));
  272. ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN1,DIALOG_STYLE_INPUT,"Überweisung",string,"Absenden","Abbrechen");
  273. Bank[playerid][Partner] = pID;
  274. return 1;
  275. }
  276. if(dialogid==DIALOG_UEBERWEISEN1)
  277. {
  278. new pID = Bank[playerid][Partner];
  279. if(strval(inputtext) > Bank[playerid][Kontostand])return ShowPlayerDialog(playerid,DIALOG_UEBERWEISEN1,DIALOG_STYLE_INPUT,"Überweisung","Bitte gib einen Betrag an den du auch besitzt","Absenden","Abbrechen");
  280. Bank[playerid][Kontostand] -= strval(inputtext);
  281. Bank[pID][Kontostand] += strval(inputtext);
  282. String(playerid,Weiss,"Du hast an %s {23FF00}%i${FEFEFE} überwiesen.\nAktuelles Guthaben {23FF00}%i$",SpielerName(pID),strval(inputtext),Bank[playerid][Kontostand]);
  283. String(pID,Weiss,"%s hat dir {23FF00}%i${FEFEFE} überwiesen.\nAktueller Kontostand {23FF00}%i$",SpielerName(playerid),strval(inputtext),Bank[pID][Kontostand]);
  284. Bank[playerid][Partner] = -1;
  285. return 1;
  286. }
  287. if(dialogid==DIALOG_EINZAHLEN)
  288. {
  289. if(!response)return ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen\nÜberweisen","Auswahl","Abbrechen");
  290. if(strval(inputtext) > GetPlayerMoney(playerid))return ShowPlayerDialog(playerid,DIALOG_EINZAHLEN,DIALOG_STYLE_INPUT,"Geld einzahlen","{E10000}So viel Geld besitzt du nicht!\n{FEFEFE}Bitte gib einen Betrag an den du auch besitzt!","Einzahlen","Abbrechen");
  291. GivePlayerMoney(playerid,-strval(inputtext));
  292. Bank[playerid][Kontostand] += strval(inputtext);
  293. SendClientMessage(playerid,Weiss, " ");
  294. String(playerid,Weiss,"Du hast {23FF00}%i${FEFEFE} in dein Konto eingezahlt!",strval(inputtext));
  295. String(playerid,Weiss,"Aktueller Kontostand: {23FF00}%i$",Bank[playerid][Kontostand]);
  296. return 1;
  297. }
  298. if(dialogid==DIALOG_AUSZAHLEN)
  299. {
  300. if(!response)return ShowPlayerDialog(playerid,DIALOG_VERWALTEN,DIALOG_STYLE_LIST,"Konto Verwaltung","Kontostand\nEinzahlen\nAuszahlen\bÜberweisen","Auswahl","Abbrechen");
  301. if(strval(inputtext) > Bank[playerid][Kontostand])return ShowPlayerDialog(playerid,DIALOG_AUSZAHLEN,DIALOG_STYLE_INPUT,"Geld auszahlen","{E10000}So viel Geld besitzt du nicht!\n{FEFEFE}Bitte gib einen Betrag an den du auch besitzt!","Auszahlen","Abbrechen");
  302. Bank[playerid][Kontostand] -= strval(inputtext);
  303. GivePlayerMoney(playerid, GetPlayerMoney(playerid) +strval(inputtext));
  304. SendClientMessage(playerid,Weiss," ");
  305. String(playerid,Weiss,"Du hast dir {23FF00}%i${FEFEFE} von deinem Konto ausgezahlt!",strval(inputtext));
  306. String(playerid,Weiss,"Aktueller Kontostand: {23FF00}%i$",Bank[playerid][Kontostand]);
  307. return 1;
  308. }
  309. return 1;
  310. }
  311.  
  312. Function Kontobeantragt(playerid)
  313. {
  314. String(playerid,Orange,"Die Sparkasse meldet, das Ihr Konto fertig ist %s",SpielerName(playerid));
  315. Bank[playerid][Abholen] = 1;
  316. return 1;
  317. }
  318.  
  319.  
  320. stock Kontonummerrichtig(Kontonummer1)
  321. {
  322. for(new i=0; i<MAX_PLAYERS; i++)
  323. {
  324. if(IsPlayerConnected(i) && !IsPlayerNPC(i))
  325. {
  326. if(Bank[i][Kontonummer] == Kontonummer1 && Kontonummer1 != 0)
  327. return i;
  328. }
  329. }
  330. return -1;
  331. }
  332.  
  333. stock SpielerName(playerid)
  334. {
  335. new Name[MAX_PLAYER_NAME];
  336. GetPlayerName(playerid,Name,sizeof(Name));
  337. return Name;
  338. }
  339.  
  340.  
  341. stock BankLaden(playerid)
  342. {
  343. new query[150],val[128];
  344. format(query,sizeof(query),"SELECT * FROM `bkonto` WHERE `bname` = '%s'",SpielerName(playerid));
  345. mysql_query(query);
  346. mysql_store_result();
  347. if(mysql_num_rows())
  348. {
  349. mysql_fetch_row_format(query);
  350. mysql_fetch_field_row(val,"Konto"); Bank[playerid][Konto] = strlen(val);
  351. mysql_fetch_field_row(val,"Kontostand"); Bank[playerid][Kontostand] = strval(val);
  352. mysql_fetch_field_row(val,"Beantragt"); Bank[playerid][Beantragt] = strval(val);
  353. mysql_fetch_field_row(val,"Pin"); Bank[playerid][Pin] = strval(val);
  354. mysql_fetch_field_row(val,"Kontonummer"); Bank[playerid][Kontonummer] = strval(val);
  355. mysql_fetch_field_row(val,"Abholen"); Bank[playerid][Abholen] = strval(val);
  356. }
  357. mysql_free_result();
  358. return 1;
  359. }
  360.  
  361. stock BankSpeichern(playerid)
  362. {
  363. new query[200];
  364. format(query,sizeof(query),"UPDATE `bkonto` SET `Konto` = '%d',`Kontostand` = '%d',`Beantragt` = '%d',`Pin` = '%d',`Kontonummer` = '%d',`Abholen` = '%d' WHERE `bname` = '%s'",
  365. Bank[playerid][Konto],Bank[playerid][Kontostand],Bank[playerid][Beantragt],Bank[playerid][Pin],Bank[playerid][Kontonummer],Bank[playerid][Abholen],SpielerName(playerid));
  366. mysql_query(query);
  367. return 1;
  368. }
  369.  
  370.  
  371.  
  372. stock IsNumeric(const string[]) {
  373. new length=strlen(string);
  374. if (length==0) return false;
  375. for (new i = 0; i < length; i++) {
  376. if (
  377. (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')
  378. || (string[i]=='-' && i!=0)
  379. || (string[i]=='+' && i!=0)
  380. ) return false;
  381. }
  382. if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
  383. return true;
  384. }
  385. stock C_T_D()
  386. {
  387. mysql_connect(My_Host, My_User, My_DB, My_Pass);
  388. if(mysql_ping() == 1)
  389. {
  390. print("||>>|| [ Mysql ] Die Verbindung zur DB (= Datenbank) wurde hergestellt ||<<||");
  391. return true;
  392. }
  393. else
  394. {
  395. print("||>>|| [ Mysql ] Die Verbindung zur DB konnte nicht hergestellt werden ||<<||!");
  396. print("||>>|| [ Mysql ] Es wird versucht erneut zur DB zu Connecten ||<<||");
  397. mysql_connect(My_Host, My_User, My_DB, My_Pass);
  398. if(mysql_ping() == 1)
  399. {
  400. print("||>>|| [ Mysql ] Die Verbindung zur DB (= Datenbank) wurde hergestellt (2)||<<||");
  401. return true;
  402. }
  403. else
  404. {
  405. print("||>>|| [ Mysql ] Die Verbindung zur DB konnte nicht hergestellt werden ||<<||");
  406. print("||>>|| [ Mysql ] Das Filterscript Banksystem_K3VIN wird heruntergefahren ||<<||!");
  407. SendRconCommand("unloadfs Banksystem_K3VIN");
  408. return true;
  409. }
  410. }
  411. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement