Advertisement
Guest User

Untitled

a guest
Sep 10th, 2012
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.83 KB | None | 0 0
  1. //---------------------- [INCLUDES] ---------------------------
  2. #include <a_samp.inc>
  3. #include <dini.inc>
  4. #include <utils.inc>
  5.  
  6. //--------------------- [FORWARDS] ----------------------------
  7. forward CheckDeath(playerid);
  8. forward AdminMessage(color,const string[],level);
  9. forward ToAll(color,const string[]);
  10. forward split(const strsrc[], strdest[][], delimiter);
  11. forward UhrZeit();
  12. forward StundeFix(stunde);
  13. forward time();
  14.  
  15. //---------------------- [DEFINES] ----------------------------
  16. #define DIALOG_REGISTER 1
  17. #define DIALOG_LOGIN 2
  18. #define DIALOG_BOTCHECK 3
  19.  
  20. #define DIALOG_REG_1 4
  21. #define DIALOG_REG_2 5
  22. #define DIALOG_REG_3 6
  23.  
  24. //---------------------- [SPAWNPOSIS] -------------------------
  25. #define ZiviSpawn 1216.4645, -917.6577, 43.1221
  26.  
  27. #define Frak1 1529.2499, -1669.5090, 6.2188
  28. #define Frak2 x, y, z //<---------------------------------------- Spawnkoordinaten setzen!
  29. #define Frak3 x, y, z //<---------------------------------------- Spawnkoordinaten setzen!
  30.  
  31. //----------------------- [FARBEN] ----------------------------
  32. #define COLOR_BLUE 0x0087FFFF
  33. #define COLOR_RED 0xE10000FF
  34. #define COLOR_WHITE 0xFFFFFFAA
  35.  
  36. //--------------------- [VARIABELN] ---------------------------
  37. new BEGIN_LEVEL = 1; //Level bei der Registrierung
  38. new BEGIN_MONEY = 5000; //Geld bei der Registrierung (auf der Hand)
  39. new BEGIN_BANK = 50000; //Geld bei der Registrierung (auf der Bank)
  40.  
  41. new loginfail[MAX_PLAYERS];
  42. new antibot[MAX_PLAYERS];
  43.  
  44. new shour;
  45. new tshift = -1;
  46. new gh, gmin, gsek;
  47. new realtime = 1;
  48. new wtime = 15;
  49.  
  50. new Text:Clock;
  51. new Text:Datum;
  52.  
  53. //-------------------- [ENTER - EXIT] -------------------------
  54. new bsnenter;
  55. new bsnexit;
  56.  
  57. //-------------------------------------------------------------
  58.  
  59. enum pInfo
  60. {
  61. pKey[128],
  62. pScore,
  63. pSex,
  64. pBaned,
  65. pMoney,
  66. pBank,
  67. pAdmin,
  68. pFrak,
  69. pRank
  70. };
  71. new PlayerInfo[MAX_PLAYERS][pInfo];
  72.  
  73. new SkinRandom[][] =
  74. {
  75. {1},
  76. {78},
  77. {79},
  78. {134},
  79. {135},
  80. {137}
  81. };
  82.  
  83. public OnGameModeInit()
  84. {
  85. //--------------------- [ENTER - EXIT] ---------------------------------------------
  86. DisableInteriorEnterExits();
  87.  
  88. bsnexit = CreatePickup(1559, 0, 362.8524, -75.1179, 1001.5078, 1);
  89. bsnenter = CreatePickup(1559, 0, 1199.2235, -918.1543, 43.1233, 0);
  90. Create3DTextLabel("BSN\n Eingang",COLOR_BLUE,1199.2235,-918.1543,43.1233,10,0);
  91.  
  92.  
  93. //----------------------------------------------------------------------------------
  94. //----------------------------------------------------------------------------------
  95.  
  96. new Stunde, Minute, Sekunde, string1[256];
  97. gettime(Stunde, Minute, Sekunde);
  98. format(string1,sizeof(string1),"%i:%i:%i", Stunde, Minute, Sekunde);
  99. Clock=TextDrawCreate(549,24, "00:00");
  100. TextDrawLetterSize(Clock,0.55,2);
  101. TextDrawFont(Clock,3);
  102. TextDrawBackgroundColor(Clock,0x000000AA);
  103. TextDrawSetOutline(Clock,2);
  104.  
  105. new Jahr, Monat, Tag, string2[256];
  106. getdate(Jahr, Monat, Tag);
  107. format(string2,sizeof(string2),"%i.%i.%i", Tag, Monat, Jahr);
  108. Datum=TextDrawCreate(500,3, string2);
  109. TextDrawLetterSize(Datum,0.55,2);
  110. TextDrawFont(Datum,3);
  111. TextDrawBackgroundColor(Datum,0x000000AA);
  112. TextDrawSetOutline(Datum,2);
  113.  
  114. SetTimer("time", 1000, 1);
  115.  
  116. gettime(gh, gmin, gsek);
  117. StundeFix(gh);
  118. gh = shour;
  119.  
  120. if(!realtime)
  121. {
  122. SetWorldTime(wtime);
  123. }
  124.  
  125. if(realtime)
  126. {
  127. new tmphour;
  128. new tmpminute;
  129. new tmpsecond;
  130. gettime(tmphour, tmpminute, tmpsecond);
  131. StundeFix(tmphour);
  132. tmphour = shour;
  133. SetWorldTime(tmphour+1);
  134. }
  135.  
  136. return 1;
  137. }
  138.  
  139. public OnPlayerSpawn(playerid)
  140. {
  141. if(IsPlayerNPC(playerid))return 1;
  142. switch(GetPVarInt(playerid,"Fraktion"))
  143. {
  144. case 0:{ SetPlayerPos(playerid, ZiviSpawn); }
  145. case 1:{ SetPlayerPos(playerid, Frak1); }
  146. case 2:{ SetPlayerPos(playerid, Frak2); }
  147. case 3:{ SetPlayerPos(playerid, Frak3); }
  148. }
  149. TextDrawShowForPlayer(playerid,Clock);
  150. TextDrawShowForPlayer(playerid,Datum);
  151. return 1;
  152. }
  153.  
  154. public OnGameModeExit()
  155. {
  156. for(new i = 0; i < MAX_PLAYERS; i++)
  157. {
  158. if(IsPlayerConnected(i))
  159. {
  160. SpielerSpeichern(i);
  161. SendClientMessageToAll(COLOR_BLUE, "Alle Accounts wurden gespeichert!");
  162. }
  163. }
  164. return 1;
  165. }
  166.  
  167. public OnPlayerCommandText(playerid, cmdtext[])
  168. {
  169. new string[256];
  170. new sendername[MAX_PLAYER_NAME];
  171. new giveplayer[MAX_PLAYER_NAME];
  172. new cmd[256];
  173. new tmp[256];
  174. new idx;
  175. cmd = strtok(cmdtext, idx);
  176. GetPlayerName(playerid,sendername,sizeof(sendername));
  177.  
  178.  
  179. if(strcmp(cmd, "/makeadmin", true) == 0)
  180. {
  181. if(IsPlayerConnected(playerid))
  182. {
  183. tmp = strtok(cmdtext, idx);
  184. if(!strlen(tmp))
  185. {
  186. SendClientMessage(playerid, COLOR_BLUE, "Benutze: [SpielerID] [Level(1-1337)]");
  187. return 1;
  188. }
  189. new para1;
  190. new level;
  191. para1 = ReturnUser(tmp);
  192. tmp = strtok(cmdtext, idx);
  193. level = strval(tmp);
  194. if(IsPlayerPAdmin(playerid,1337) || IsPlayerAdmin(playerid))
  195. {
  196. if(IsPlayerConnected(para1))
  197. {
  198. if(para1 != INVALID_PLAYER_ID)
  199. {
  200. if(strlen(tmp) <= 1337)
  201. {
  202. GetPlayerName(para1, giveplayer, sizeof(giveplayer));
  203. GetPlayerName(playerid, sendername, sizeof(sendername));
  204. PlayerInfo[para1][pAdmin] = level;
  205. format(string, sizeof(string), "[ADMIN]: %s wurde von %s zu Admin-Level %d gemacht.", giveplayer, sendername,level);
  206. AdminMessage(COLOR_RED, string,1);
  207. }
  208. else
  209. {
  210. SendClientMessage(playerid, COLOR_BLUE, "Benutze: [SpielerID] [Level(1-1337)]");
  211. }
  212. }
  213. }
  214. }
  215. }
  216. return 1;
  217. }
  218.  
  219. if(strcmp(cmdtext,"/restart",true)==0)
  220. {
  221. if(IsPlayerPAdmin(playerid,1337))
  222. {
  223. SendRconCommand("gmx");
  224. return 1;
  225. }
  226. SendClientMessage(playerid,COLOR_RED,"Du benötigst Admin Rang 1337, um diesen Befehl nutzen zu können.");
  227. return 1;
  228. }
  229.  
  230. if(strcmp(cmdtext,"/givemoneyall",true)==0)
  231. {
  232. if(IsPlayerPAdmin(playerid,1337))
  233. {
  234. for(new i = 0; i < MAX_PLAYERS; i++)
  235. {
  236. if(IsPlayerConnected(i))
  237. {
  238. GivePlayerMoney(playerid, 10000);
  239. SendClientMessage(playerid,COLOR_RED,"Ein Admin hat jedem User etwas Geld gegeben.");
  240. }
  241. }
  242. return 1;
  243. }
  244. SendClientMessage(playerid,COLOR_RED,"Du benötigst Admin Rang 1337, um diesen Befehl nutzen zu können.");
  245. return 1;
  246. }
  247.  
  248. if(strcmp(cmdtext,"/stats",true)==0)
  249. {
  250. new fraktname[64];
  251. switch(PlayerInfo[playerid][pFrak])
  252. {
  253. case 0:{fraktname="Keine";}
  254. case 1:{fraktname="Los Santos Police Department";}
  255. case 2:{fraktname="San Fierro Police Department";}
  256. case 3:{fraktname="Las Venturas Police Department";}
  257. }
  258.  
  259. format(string,sizeof(string),"[Name: %s] [Level: %i] [Adminlevel: %i] [Geld: %i] [Bank: %i] [Fraktion: %s]",SpielerName(playerid), PlayerInfo[playerid][pScore], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pBank], fraktname);
  260. SendClientMessage(playerid,COLOR_BLUE,string);
  261. return 1;
  262. }
  263. return 0;
  264. }
  265.  
  266. public OnPlayerConnect(playerid)
  267. {
  268. loginfail[playerid] = 0;
  269.  
  270. TogglePlayerSpectating(playerid, 1);
  271. if(IsPlayerNPC(playerid))return 1;
  272. new Spielerdatei[64];
  273. new name[MAX_PLAYER_NAME];
  274. GetPlayerName(playerid,name,sizeof(name));
  275. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  276. if(dini_Exists(Spielerdatei) && dini_Int(Spielerdatei,"Registered") == 1)
  277. {
  278. antibot[playerid] = random(9999);
  279. new string[256];
  280. format(string, sizeof(string), "Bitte gib den Sicherheitscode ein und drücke auf Fortfahren! Sicherheitscode: {FF8C00}%d", antibot[playerid]);
  281. ShowPlayerDialog(playerid,DIALOG_BOTCHECK,DIALOG_STYLE_INPUT,"Anti Bot",string,"Fortfahren","Abbrechen");
  282. }
  283. else
  284. {
  285. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte ein Passwort ein:","Register","Abbrechen");
  286. }
  287. return 1;
  288. }
  289.  
  290. public OnPlayerDisconnect(playerid, reason)
  291. {
  292. SpielerSpeichern(playerid);
  293. return 1;
  294. }
  295.  
  296. public OnPlayerDeath(playerid, killerid, reason)
  297. {
  298. SetTimerEx("CheckDeath", 3500, false, "i", playerid);
  299. return 1;
  300. }
  301.  
  302. public OnPlayerRequestClass(playerid, classid)
  303. {
  304. return 1;
  305. }
  306.  
  307. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  308. {
  309. if(dialogid == DIALOG_BOTCHECK)
  310. {
  311. //if(inputtext[DIALOG_BOTCHECK] == antibot[playerid])
  312. //{
  313. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Bitte gib dein Passwort ein!","Login","Abbrechen");
  314. return 1;
  315. //}
  316. //else
  317. //{
  318. /* new string[256];
  319. loginfail[playerid] += 1;
  320. format(string, sizeof(string), "Der von dir eingegebene Sicherheitscode war falsch! Versuch %d/3.", loginfail[playerid]);
  321. SendClientMessage(playerid,COLOR_RED,string);
  322. if(loginfail[playerid] == 3)
  323. {
  324. Kick(playerid);
  325. loginfail[playerid] = 0;
  326. }
  327. else
  328. {
  329. format(string, sizeof(string), "Bitte gib den Sicherheitscode ein und drücke auf Fortfahren! Sicherheitscode: {FF8C00}%d", antibot[playerid]);
  330. ShowPlayerDialog(playerid,DIALOG_BOTCHECK,DIALOG_STYLE_INPUT,"Anti Bot",string,"Fortfahren","Abbrechen");
  331. }
  332. return 1;*/
  333. //}
  334. }
  335.  
  336. if(dialogid==DIALOG_LOGIN)
  337. {
  338. if(response==0)
  339. {
  340. SendClientMessage(playerid,COLOR_BLUE,"Du hast den Vorgang abgebrochen.");
  341. Kick(playerid);
  342. return 1;
  343. }
  344. if(response==1)
  345. {
  346. if(!strlen(inputtext))
  347. {
  348. SendClientMessage(playerid,COLOR_BLUE,"Das Passwort war nicht lang genug.");
  349. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
  350. return 1;
  351. }
  352. else
  353. {
  354. Login(playerid,inputtext);
  355. return 1;
  356. }
  357. }
  358. }
  359. if(dialogid==DIALOG_REGISTER)
  360. {
  361. if(response==0)
  362. {
  363. SendClientMessage(playerid,COLOR_BLUE,"Du hast den Vorgang abgebrochen.");
  364. Kick(playerid);
  365. return 1;
  366. }
  367. if(response==1)
  368. {
  369. if(!strlen(inputtext))
  370. {
  371. SendClientMessage(playerid,COLOR_BLUE,"Das Passwort war nicht lang genug.");
  372. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
  373. return 1;
  374. }
  375. else
  376. {
  377. Register(playerid,inputtext);
  378. return 1;
  379. }
  380. }
  381. }
  382. if(dialogid==DIALOG_REG_1)
  383. {
  384. if(response==0)
  385. {
  386. new Spielerdatei[64];
  387. new name[MAX_PLAYER_NAME];
  388. GetPlayerName(playerid,name,sizeof(name));
  389. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  390. SendClientMessage(playerid,COLOR_BLUE,"Du bist also weiblich.");
  391. dini_IntSet(Spielerdatei,"Sex", 1);
  392. ShowPlayerDialog(playerid,DIALOG_REG_2,DIALOG_STYLE_INPUT,"Eigene Daten","{ffffff}Gib dein Geburtsdatum an.\nIn dieser Form: {ff0000}Tag{ff0000}{ffffff}.{ff0000}Monat{ff0000}{ffffff}.{ff0000}Jahr{ff0000}{ffffff}\n{00ff00}=> {ffffff}Die Angabe soll in Zahlen erfolgen:","Bestätigen"," ");
  393. return 1;
  394. }
  395. if(response==1)
  396. {
  397. new Spielerdatei[64];
  398. new name[MAX_PLAYER_NAME];
  399. GetPlayerName(playerid,name,sizeof(name));
  400. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  401. SendClientMessage(playerid,COLOR_BLUE,"Du bist also männlich.");
  402. dini_IntSet(Spielerdatei,"Sex", 0);
  403. ShowPlayerDialog(playerid,DIALOG_REG_2,DIALOG_STYLE_INPUT,"Eigene Daten","{ffffff}Gib dein Geburtsdatum an.\nIn dieser Form: {ff0000}Tag{ff0000}{ffffff}.{ff0000}Monat{ff0000}{ffffff}.{ff0000}Jahr{ff0000}{ffffff}\n{00ff00}=> {ffffff}Die Angabe soll in Zahlen erfolgen:","Bestätigen"," ");
  404. return 1;
  405. }
  406. }
  407. if(dialogid == DIALOG_REG_2)
  408. {
  409. new Spielerdatei[64];
  410. new name[MAX_PLAYER_NAME];
  411. GetPlayerName(playerid,name,sizeof(name));
  412. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  413. new Jahr, Monat,Tag;
  414. getdate(Jahr, Monat, Tag);
  415. new DateInfo[3][20];
  416. split(inputtext, DateInfo, '.');
  417. if(response == 1)
  418. if (strlen(inputtext) > 10)
  419. { // nicht länger als 10 zeichen (xx/xx/xxxx)
  420. ShowPlayerDialog(playerid,DIALOG_REG_2,DIALOG_STYLE_INPUT,"Eigene Daten","{ff0000}EINGABEFEHLER: {ffffff}Gib dein Geburtsdatum an.\nIn dieser Form: {ff0000}Tag{ff0000}{ffffff}.{ff0000}Monat{ff0000}{ffffff}.{ff0000}Jahr{ff0000}{ffffff}\n{00ff00}=> {ffffff}Die Angabe soll in Zahlen erfolgen:","Bestätigen"," ");
  421. return 0;
  422. }
  423. if (!IsValidDate(strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2])))
  424. {
  425. ShowPlayerDialog(playerid,DIALOG_REG_2,DIALOG_STYLE_INPUT,"Eigene Daten","{ff0000}EINGABEFEHLER: {ffffff}Gib dein Geburtsdatum an.\nIn dieser Form: {ff0000}Tag{ff0000}{ffffff}.{ff0000}Monat{ff0000}{ffffff}.{ff0000}Jahr{ff0000}{ffffff}\n{00ff00}=> {ffffff}Die Angabe soll in Zahlen erfolgen:","Bestätigen"," ");
  426. return 0;
  427. }
  428. if(Jahr - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= Jahr)
  429. {
  430. ShowPlayerDialog(playerid,DIALOG_REG_2,DIALOG_STYLE_INPUT,"Eigene Daten","{ff0000}EINGABEFEHLER: {ffffff}Gib dein Geburtsdatum an.\nIn dieser Form: {ff0000}Tag{ff0000}{ffffff}.{ff0000}Monat{ff0000}{ffffff}.{ff0000}Jahr{ff0000}{ffffff}\n{00ff00}=> {ffffff}Die Angabe soll in Zahlen erfolgen:","Bestätigen"," ");
  431. return 0;
  432. }
  433. new check = Jahr - strval(DateInfo[2]);
  434. if(check == Jahr)
  435. {
  436. ShowPlayerDialog(playerid,DIALOG_REG_2,DIALOG_STYLE_INPUT,"Eigene Daten","{ff0000}EINGABEFEHLER: {ffffff}Gib dein Geburtsdatum an.\nIn dieser Form: {ff0000}Tag{ff0000}{ffffff}.{ff0000}Monat{ff0000}{ffffff}.{ff0000}Jahr{ff0000}{ffffff}\n{00ff00}=> {ffffff}Die Angabe soll in Zahlen erfolgen:","Bestätigen"," ");
  437. return 0;
  438. }
  439. if(strval(DateInfo[1]) > Monat)
  440. {
  441. check -= 1;
  442. }
  443. else if(strval(DateInfo[1]) == Monat && strval(DateInfo[0]) > Tag)
  444. {
  445. check -= 1;
  446. }
  447. new string[256];
  448. format(string,sizeof(string),"Du bist also %i Jahre alt", check);
  449. SendClientMessage(playerid, COLOR_BLUE, string);
  450. dini_IntSet(Spielerdatei,"Alter", check);
  451. dini_IntSet(Spielerdatei,"bDay", Tag);
  452. dini_IntSet(Spielerdatei,"bMonat", Monat);
  453. dini_IntSet(Spielerdatei,"Registered", 1);
  454.  
  455. if(response == 0)
  456. {
  457. ShowPlayerDialog(playerid,DIALOG_REG_2,DIALOG_STYLE_INPUT,"Eigene Daten","{ff0000}EINGABEFEHLER: {ffffff}Gib dein Geburtsdatum\nIn dieser Form: {ff0000}Tag{ff0000}{ffffff}.{ff0000}Monat{ff0000}{ffffff}.{ff0000}Jahr{ff0000}{ffffff}\n{00ff00}=> {ffffff}Die Angabe soll in Zahlen erfolgen:","Bestätigen"," ");
  458. }
  459. }
  460. return 1;
  461. }
  462.  
  463. public OnPlayerPickUpPickup(playerid, pickupid)
  464. {
  465. if(pickupid==bsnenter)
  466. {
  467. if(GetPlayerVirtualWorld(playerid) == 0)
  468. {
  469. SetPlayerVirtualWorld(playerid, 1);
  470. SetPlayerPos(playerid,375.962463,-65.816848,1001.507812);
  471. SetPlayerInterior(playerid,10);
  472. GameTextForPlayer(playerid,"~w~Du ~r~hast ~b~den ~n~~g~BSN betreten.",3000,3);
  473. }
  474. }
  475. if(pickupid==bsnexit)
  476. {
  477. if(GetPlayerVirtualWorld(playerid) == 1)
  478. {
  479. SetPlayerVirtualWorld(playerid, 0);
  480. SetPlayerPos(playerid,1199.4618,-920.8215,43.1059);
  481. SetPlayerFacingAngle(playerid,185.7090);
  482. SetCameraBehindPlayer(playerid);
  483. SetPlayerInterior(playerid,0);
  484. }
  485. }
  486. return 1;
  487. }
  488.  
  489. public CheckDeath(playerid)
  490. {
  491. if(IsPlayerNPC(playerid))
  492. {
  493. return 0;
  494. }
  495. TogglePlayerSpectating(playerid, 1);
  496. TogglePlayerSpectating(playerid, 0);
  497. SpawnPlayer(playerid);
  498. return 1;
  499. }
  500.  
  501. public AdminMessage(color,const string[],level)
  502. {
  503. for(new i = 0; i < MAX_PLAYERS; i++)
  504. {
  505. if(IsPlayerConnected(i))
  506. {
  507. if(PlayerInfo[i][pAdmin] >= level)
  508. {
  509. SendClientMessage(i, color, string);
  510. printf("%s", string);
  511. }
  512. }
  513. }
  514. return 1;
  515. }
  516.  
  517. public ToAll(color,const string[])
  518. {
  519. SendClientMessageToAll(color, string);
  520. return 1;
  521. }
  522.  
  523. public split(const strsrc[], strdest[][], delimiter)
  524. {
  525. new i, li;
  526. new aNum;
  527. new len;
  528. while(i <= strlen(strsrc)){
  529. if(strsrc[i]==delimiter || i==strlen(strsrc)){
  530. len = strmid(strdest[aNum], strsrc, li, i, 128);
  531. strdest[aNum][len] = 0;
  532. li = i+1;
  533. aNum++;
  534. }
  535. i++;
  536. }
  537. return 1;
  538. }
  539.  
  540. public time()
  541. {
  542. new Stunde, Minute, Sekunde;
  543. gettime(Stunde, Minute, Sekunde);
  544. new string[256];
  545. new string2[256];
  546. if (Minute <= 9)
  547. {
  548. if (Sekunde <= 9)
  549. {
  550. format(string,25,"%d:0%d:0%d", Stunde, Minute, Sekunde);
  551. }
  552. else
  553. {
  554. format(string,25,"%d:0%d:%d", Stunde, Minute, Sekunde);
  555. }
  556. }
  557. else
  558. {
  559. if (Sekunde <= 9)
  560. {
  561. format(string,25,"%d:%d:0%d", Stunde, Minute, Sekunde);
  562. }
  563. else
  564. {
  565. format(string,25,"%d:%d:%d", Stunde, Minute, Sekunde);
  566. }
  567. }
  568. // Datum
  569. new Jahr, Monat, Tag;
  570. getdate(Jahr, Monat, Tag);
  571.  
  572. if (Tag <= 9)
  573. {
  574. format(string2,25,"0%d.%d.%d", Tag, Monat, Jahr);
  575. }
  576. else if (Monat <= 9 && Tag >= 9)
  577. {
  578. format(string2,25,"%d.0%d.%d", Tag, Monat, Jahr);
  579. }
  580. else
  581. {
  582. format(string2,25,"%d.%d.%d", Tag, Monat, Jahr);
  583. }
  584.  
  585. if (Stunde == 0){SetWorldTime(0);}
  586. if (Stunde == 1){SetWorldTime(1);}
  587. if (Stunde == 2){SetWorldTime(2);}
  588. if (Stunde == 3){SetWorldTime(3);}
  589. if (Stunde == 4){SetWorldTime(4);}
  590. if (Stunde == 5){SetWorldTime(5);}
  591. if (Stunde == 6){SetWorldTime(6);}
  592. if (Stunde == 7){SetWorldTime(7);}
  593. if (Stunde == 8){SetWorldTime(8);}
  594. if (Stunde == 9){SetWorldTime(9);}
  595. if (Stunde == 10){SetWorldTime(10);}
  596. if (Stunde == 11){SetWorldTime(11);}
  597. if (Stunde == 12){SetWorldTime(12);}
  598. if (Stunde == 13){SetWorldTime(13);}
  599. if (Stunde == 14){SetWorldTime(14);}
  600. if (Stunde == 15){SetWorldTime(15);}
  601. if (Stunde == 16){SetWorldTime(16);}
  602. if (Stunde == 17){SetWorldTime(17);}
  603. if (Stunde == 18){SetWorldTime(18);}
  604. if (Stunde == 19){SetWorldTime(19);}
  605. if (Stunde == 20){SetWorldTime(20);}
  606. if (Stunde == 21){SetWorldTime(21);}
  607. if (Stunde == 22){SetWorldTime(22);}
  608. if (Stunde == 23){SetWorldTime(23);}
  609. if (Stunde == 24){SetWorldTime(24);}
  610.  
  611.  
  612. for(new i=0;i<MAX_PLAYERS;i++)
  613. {
  614. TextDrawHideForPlayer(i,Clock);
  615. TextDrawHideForPlayer(i,Datum);
  616.  
  617. TextDrawSetString(Clock,string);
  618. TextDrawSetString(Datum,string2);
  619.  
  620. TextDrawShowForPlayer(i,Clock);
  621. TextDrawShowForPlayer(i,Datum);
  622. }
  623. return 1;
  624. }
  625.  
  626. public OnRconLoginAttempt(ip[], password[], success)
  627. {
  628. if(!success)
  629. {
  630. printf("Ein User mit der IP %s hat versucht, sich mit dem Passwort %s als Rcon Admin einzuloggen",ip, password);
  631. new pip[16];
  632. for(new i=0; i<MAX_PLAYERS; i++)
  633. {
  634. GetPlayerIp(i, pip, sizeof(pip));
  635. if(!strcmp(ip, pip, true))
  636. {
  637. SendClientMessage(i, 0xFFFFFFFF, "Rcon Passwort ist falsch!");
  638. Ban(i);
  639. }
  640. }
  641. }
  642. return 1;
  643. }
  644.  
  645. public UhrZeit()
  646. {
  647. new string[64];
  648. new tmphour;
  649. new tmpminute;
  650. new tmpsecond;
  651. gettime(tmphour, tmpminute, tmpsecond);
  652. StundeFix(tmphour);
  653. tmphour = shour;
  654. if((tmphour > gh) || (tmphour == 0 && gh == 23))
  655. {
  656. format(string, sizeof(string), "Deine Uhr: Es ist %d:00 Uhr",tmphour+1);
  657. ToAll(COLOR_WHITE,string);
  658. gh = tmphour;
  659. }
  660. }
  661.  
  662. public StundeFix(stunde)
  663. {
  664. stunde = tshift+stunde;
  665. if(stunde < 0)
  666. {
  667. stunde = stunde+24;
  668. }
  669. else if(stunde > 23)
  670. {
  671. stunde = stunde-24;
  672. }
  673. shour = stunde;
  674. return 1;
  675. }
  676.  
  677. stock IsValidDate(Tag, Monat, Jahr)
  678. {
  679. new maxTags;
  680. if (Jahr < 1900 || Jahr > 2010) return 0;
  681. switch (Monat)
  682. {
  683. case 1,3,5,7,8,10,12: maxTags = 31;
  684. case 4,6,9,11: maxTags = 30;
  685. case 2:
  686. {
  687. if(IsLeapJahr(Jahr))
  688. {
  689. maxTags = 29;
  690. }
  691. else
  692. {
  693. maxTags = 28;
  694. }
  695. }
  696. default: return 0;
  697. }
  698.  
  699. if (Tag < 1 || Tag > maxTags) return 0;
  700. return 1;
  701. }
  702.  
  703. stock IsLeapJahr(Jahr)
  704. {
  705. return ( Jahr % 4 == 0 && (Jahr % 100 != 0 || Jahr % 400 == 0) );
  706. }
  707.  
  708. stock SpielerName(playerid)
  709. {
  710. new name[MAX_PLAYER_NAME];
  711. GetPlayerName(playerid,name,sizeof(name));
  712. return name;
  713. }
  714.  
  715. stock Register(playerid,key[])
  716. {
  717. new rand = random(sizeof(SkinRandom));
  718. new Spielerdatei[64];
  719. new name[MAX_PLAYER_NAME];
  720. GetPlayerName(playerid,name,sizeof(name));
  721. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  722. dini_Create(Spielerdatei);
  723. dini_Set(Spielerdatei,"Passwort",key);
  724. dini_IntSet(Spielerdatei,"Level",BEGIN_LEVEL);
  725. dini_IntSet(Spielerdatei,"Geld",BEGIN_MONEY);
  726. dini_IntSet(Spielerdatei,"Bank",BEGIN_BANK);
  727. dini_IntSet(Spielerdatei,"Baned",0);
  728. dini_IntSet(Spielerdatei,"SkinID", SkinRandom[rand][0]);
  729. dini_IntSet(Spielerdatei,"Fraktion", 0);
  730. dini_IntSet(Spielerdatei,"Registered", 0);
  731. SendClientMessage(playerid,COLOR_BLUE,"Erfolgreich registriert.");
  732. ShowPlayerDialog(playerid,DIALOG_REG_1,DIALOG_STYLE_MSGBOX,"Eigende Daten","{ffffff}Bist du {ffffff}'{ff0000}Männlich{ffffff}'{ffffff} oder {ffffff}'{ff0000}Weiblich{ffffff}'?{ffffff},\nBitte klicke auf die Option, die auf dich zutrifft.","Männlich","Weiblich");
  733. SetPlayerScore(playerid,0);
  734. SetPVarInt(playerid,"loggedin",1);
  735. return 1;
  736. }
  737.  
  738. stock Login(playerid,key[])
  739. {
  740. new Spielerdatei[64];
  741. new name[MAX_PLAYER_NAME];
  742. GetPlayerName(playerid,name,sizeof(name));
  743. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  744.  
  745. if(gettime()<dini_Int(Spielerdatei,"timeban"))
  746. {
  747. SendClientMessage(playerid,COLOR_RED,"Du bist noch gebannt. Komm später wieder.");
  748. Kick(playerid);
  749. return 1;
  750. }
  751.  
  752. if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
  753. {
  754. LoadAccount(playerid);
  755. SendClientMessage(playerid,COLOR_BLUE,"Erfolgreich eingeloggt.");
  756. SpawnPlayer(playerid);
  757. TogglePlayerSpectating(playerid, 0);
  758. return 1;
  759. }
  760. else
  761. {
  762. if(loginfail[playerid] == 3)
  763. {
  764. SendClientMessage(playerid,COLOR_RED,"Du hast dein Passwort 3 mal falsch eingegeben und wirst nun gekickt.");
  765. Kick(playerid);
  766. loginfail[playerid] = 0;
  767. }
  768. else
  769. {
  770. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Falsches Passwort. Bitte gib dein Passwort ein!","Login","Abbrechen");
  771. loginfail[playerid] += 1;
  772. }
  773. return 1;
  774. }
  775. }
  776.  
  777. stock LoadAccount(playerid)
  778. {
  779. new Spielerdatei[64];
  780. new name[MAX_PLAYER_NAME];
  781. GetPlayerName(playerid,name,sizeof(name));
  782. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  783.  
  784. PlayerInfo[playerid][pScore] = dini_Int(Spielerdatei,"Level");
  785. PlayerInfo[playerid][pSex] = dini_Int(Spielerdatei,"Sex");
  786. GivePlayerMoneyS(playerid,dini_Int(Spielerdatei,"Geld"));
  787. PlayerInfo[playerid][pBank] = dini_Int(Spielerdatei,"Bank");
  788. PlayerInfo[playerid][pAdmin] = dini_Int(Spielerdatei,"Adminlevel");
  789. SetPlayerSkin(playerid, dini_Int(Spielerdatei,"SkinID"));
  790. PlayerInfo[playerid][pBank] = dini_Int(Spielerdatei,"Fraktion");
  791. PlayerInfo[playerid][pBaned] = dini_Int(Spielerdatei,"Baned");
  792. if(PlayerInfo[playerid][pBaned] == 1)
  793. {
  794. SendClientMessage(playerid,COLOR_RED,"Du bist vom Server gebannt. Sollte dies ein Fehlban sein, so melde dich bitte im Forum!");
  795. Kick(playerid);
  796. }
  797. else
  798. {
  799. }
  800. SetPVarInt(playerid,"loggedin",1);
  801. return 1;
  802. }
  803.  
  804. stock SpielerSpeichern(playerid)
  805. {
  806. if(GetPVarInt(playerid,"loggedin")==1)
  807. {
  808. new Spielerdatei[64];
  809. new name[MAX_PLAYER_NAME];
  810. GetPlayerName(playerid,name,sizeof(name));
  811. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  812. dini_IntSet(Spielerdatei,"Level",PlayerInfo[playerid][pScore]);
  813. dini_IntSet(Spielerdatei,"Bank",PlayerInfo[playerid][pBank]);
  814. dini_IntSet(Spielerdatei,"Adminlevel",PlayerInfo[playerid][pAdmin]);
  815. dini_IntSet(Spielerdatei,"SkinID",PlayerInfo[playerid][pAdmin]);
  816. dini_IntSet(Spielerdatei,"Fraktion",PlayerInfo[playerid][pFrak]);
  817. dini_IntSet(Spielerdatei,"Rank",PlayerInfo[playerid][pRank]);
  818. dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
  819. dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
  820. }
  821. return 1;
  822. }
  823.  
  824. stock ErSie(playerid)
  825. {
  826. new Spielerdatei[64];
  827. new name[MAX_PLAYER_NAME];
  828. GetPlayerName(playerid,name,sizeof(name));
  829. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  830. if(dini_Int(Spielerdatei,"Sex"); == 0)
  831. {
  832. return er;
  833. }
  834. else
  835. {
  836. return sie;
  837. }
  838. return 1;
  839. }
  840.  
  841. stock IhmIhr(playerid)
  842. {
  843. new Spielerdatei[64];
  844. new name[MAX_PLAYER_NAME];
  845. GetPlayerName(playerid,name,sizeof(name));
  846. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  847. if(dini_Int(Spielerdatei,"Sex"); == 0)
  848. {
  849. return ihm;
  850. }
  851. else
  852. {
  853. return ihr;
  854. }
  855. return 1;
  856. }
  857.  
  858. stock IsPlayerPAdmin(playerid,rang)
  859. {
  860. if(PlayerInfo[playerid][pAdmin]>=rang)return 1;
  861. return 0;
  862. }
  863.  
  864. forward GivePlayerMoneyS(playerid,Betrag);
  865. public GivePlayerMoneyS(playerid,Betrag)
  866. {
  867. new string3[256];
  868. new playername3[MAX_PLAYER_NAME];
  869. GetPlayerName(playerid, playername3, sizeof(playername3));
  870. format(string3, sizeof(string3), "/Accounts/%s.ini", playername3);
  871. ResetPlayerMoney(playerid);
  872. new pm = (PlayerInfo[playerid][pMoney] + Betrag);
  873. dini_IntSet(string3,"Geld",pm);
  874. PlayerInfo[playerid][pMoney] = pm;
  875. GivePlayerMoney(playerid,PlayerInfo[playerid][pMoney]);
  876. }
  877.  
  878. forward GetPlayerMoneyS(playerid);
  879. public GetPlayerMoneyS(playerid)
  880. {
  881. new Spielerdatei[64];
  882. new name[MAX_PLAYER_NAME];
  883. format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
  884. new string3[256];
  885. new playername3[MAX_PLAYER_NAME];
  886. GetPlayerName(playerid, playername3, sizeof(playername3));
  887. format(string3, sizeof(string3), "/Accounts/%s.ini", playername3);
  888. return dini_Int(Spielerdatei,"Geld");
  889. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement