purplesky

Blog Template

Jan 28th, 2012
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.97 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3. #include <ocmd>
  4.  
  5. //Farben
  6. #define ROT 0xFF0000FF
  7. #define BLAU 0x0000FFFF
  8. #define GELB 0xFFFF00FF
  9. #define GRUEN 0x00FF00FF
  10. #define SCHWARZ 0x000000FF
  11. #define WEISS 0xFEFEFEFF
  12. #define GRAU 0x787878FF
  13. #define DUNKELGRUEN 0x00B200FF
  14. #define DUNKELROT 0xCA0000FF
  15. #define DUNKELBLAU 0x0000B2FF
  16. #define PINK 0xFF00FFFF
  17. #define VIOLET 0xB500A4FF
  18. #define CYAN 0x00FFFFFF
  19. #define ORANGE 0xFF8C00FF
  20. //Dialoge
  21. #define DIALOG_REG 1
  22. #define DIALOG_LOG 2
  23.  
  24. main()
  25. {
  26. print("\n----------------------------------");
  27. print("(c) by T0BiEH. Script loadet!");
  28. print("----------------------------------\n");
  29. }
  30.  
  31. public OnGameModeInit()
  32. {
  33. SetGameModeText("Isla-Gaming[Stunt]");
  34. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  35. return 1;
  36. }
  37.  
  38. public OnGameModeExit()
  39. {
  40. return 1;
  41. }
  42.  
  43. public OnPlayerRequestClass(playerid, classid)
  44. {
  45. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  46. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  47. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  48. return 1;
  49. }
  50.  
  51. public OnPlayerConnect(playerid)
  52. {
  53. new Playerdatei[128];
  54. new name[MAX_PLAYER_NAME];
  55. GetPlayerName(playerid,name,sizeof(name));
  56. format(Playerdatei,sizeof(Playerdatei),"/Spieler/%s.ini",name);
  57. if(dini_Exists(Playerdatei))
  58. {
  59. ShowPlayerDialog(playerid,DIALOG_LOG,DIALOG_STYLE_PASSWORD,"Einloggen","Dein Account wurde gefunden!\nBitte gebe dein Passwort ein.","Einloggen","Abbrechen");
  60. }
  61. else
  62. {
  63. ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_INPUT,"Reg.","Gebe bitte dein gewünschtes Passwort ein!","Registrieren","Abbrechen");
  64. }
  65. return 1;
  66. }
  67.  
  68. public OnPlayerDisconnect(playerid, reason)
  69. {
  70. if(GetPVarInt(playerid,"Einloggen")==1)
  71. {
  72. SpielerSpeichern(playerid);
  73. }
  74. return 1;
  75. }
  76.  
  77. public OnPlayerSpawn(playerid)
  78. {
  79. return 1;
  80. }
  81.  
  82. public OnPlayerDeath(playerid, killerid, reason)
  83. {
  84. return 1;
  85. }
  86.  
  87. public OnVehicleSpawn(vehicleid)
  88. {
  89. return 1;
  90. }
  91.  
  92. public OnVehicleDeath(vehicleid, killerid)
  93. {
  94. return 1;
  95. }
  96.  
  97. public OnPlayerText(playerid, text[])
  98. {
  99. return 1;
  100. }
  101.  
  102. ocmd:kick(playerid,params[])
  103. {
  104. new pID,Grund[128],string[128];
  105. if(!IstSpielerAdmin(playerid,1))return SendClientMessage(playerid,GELB,"Du bist kein Admin!");
  106. if(sscanf(params,"us",pID,Grund))return SendClientMessage(playerid,GELB,"Das geht so: /kick <id> <grund>!");
  107. format(string,sizeof(string),"%s hat %s wegen %s vom Server gekickt!",SpielerName(pID),SpielerName(playerid),Grund);
  108. SendClientMessageToAll(CYAN,string);
  109. TogglePlayerControllable(pID,0);
  110. Kick(playerid);
  111. return 1;
  112. }
  113.  
  114. ocmd:ban(playerid,params[])
  115. {
  116. new pID,Grund[128],string[128];
  117. if(!IstSpielerAdmin(playerid,1))return SendClientMessage(playerid,GELB,"Du bist kein Admin!");
  118. if(sscanf(params,"us",pID,Grund))return SendClientMessage(playerid,GELB,"Das geht so: /ban <id> <grund>!");
  119. format(string,sizeof(string),"%s hat %s wegen %s vom Server gebannt!",SpielerName(pID),SpielerName(playerid),Grund);
  120. SendClientMessageToAll(CYAN,string);
  121. TogglePlayerControllable(playerid,0);
  122. SetPVarInt(pID,"Gebannt",1);
  123. Ban(pID);
  124. return 1;
  125. }
  126.  
  127. ocmd:gebadmin(playerid,params[])
  128. {
  129. new pID,rang,string[128];
  130. if(!IstSpielerAdmin(playerid,1))return SendClientMessage(playerid,GELB,"Du bist kein Admin!");
  131. if(sscanf(params,"ui",pID,rang))return SendClientMessage(playerid,GELB,"Das geht so: /gebadmin <id> <rang>");
  132. if(rang<0||rang>4)return SendClientMessage(playerid,GELB,"Es gibt nur 4 Ränge!");
  133. SetPVarInt(pID,"Adminlevel",rang);
  134. format(string,sizeof(string),"Du hast %s zu einem Admin Rang %d gemacht!",SpielerName(pID),rang);
  135. SendClientMessage(playerid,GELB,string);
  136. format(string,sizeof(string),"Admin %s hat dich zu einem Admin Rang %d gemacht!",SpielerName(playerid),rang);
  137. SendClientMessage(pID,CYAN,string);
  138. return 1;
  139. }
  140.  
  141. public OnPlayerCommandText(playerid, cmdtext[])
  142. {
  143. return 0;
  144. }
  145.  
  146. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  147. {
  148. return 1;
  149. }
  150.  
  151. public OnPlayerExitVehicle(playerid, vehicleid)
  152. {
  153. return 1;
  154. }
  155.  
  156. public OnPlayerStateChange(playerid, newstate, oldstate)
  157. {
  158. return 1;
  159. }
  160.  
  161. public OnPlayerEnterCheckpoint(playerid)
  162. {
  163. return 1;
  164. }
  165.  
  166. public OnPlayerLeaveCheckpoint(playerid)
  167. {
  168. return 1;
  169. }
  170.  
  171. public OnPlayerEnterRaceCheckpoint(playerid)
  172. {
  173. return 1;
  174. }
  175.  
  176. public OnPlayerLeaveRaceCheckpoint(playerid)
  177. {
  178. return 1;
  179. }
  180.  
  181. public OnRconCommand(cmd[])
  182. {
  183. return 1;
  184. }
  185.  
  186. public OnPlayerRequestSpawn(playerid)
  187. {
  188. return 1;
  189. }
  190.  
  191. public OnObjectMoved(objectid)
  192. {
  193. return 1;
  194. }
  195.  
  196. public OnPlayerObjectMoved(playerid, objectid)
  197. {
  198. return 1;
  199. }
  200.  
  201. public OnPlayerPickUpPickup(playerid, pickupid)
  202. {
  203. return 1;
  204. }
  205.  
  206. public OnVehicleMod(playerid, vehicleid, componentid)
  207. {
  208. return 1;
  209. }
  210.  
  211. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  212. {
  213. return 1;
  214. }
  215.  
  216. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  217. {
  218. return 1;
  219. }
  220.  
  221. public OnPlayerSelectedMenuRow(playerid, row)
  222. {
  223. return 1;
  224. }
  225.  
  226. public OnPlayerExitedMenu(playerid)
  227. {
  228. return 1;
  229. }
  230.  
  231. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  232. {
  233. return 1;
  234. }
  235.  
  236. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  237. {
  238. return 1;
  239. }
  240.  
  241. public OnRconLoginAttempt(ip[], password[], success)
  242. {
  243. return 1;
  244. }
  245.  
  246. public OnPlayerUpdate(playerid)
  247. {
  248. return 1;
  249. }
  250.  
  251. public OnPlayerStreamIn(playerid, forplayerid)
  252. {
  253. return 1;
  254. }
  255.  
  256. public OnPlayerStreamOut(playerid, forplayerid)
  257. {
  258. return 1;
  259. }
  260.  
  261. public OnVehicleStreamIn(vehicleid, forplayerid)
  262. {
  263. return 1;
  264. }
  265.  
  266. public OnVehicleStreamOut(vehicleid, forplayerid)
  267. {
  268. return 1;
  269. }
  270.  
  271. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  272. {
  273. if(dialogid==DIALOG_LOG)
  274. {
  275. if(response==0)
  276. {
  277. SendClientMessage(playerid,GELB,"Du hast den Vorgang abgebrochen!");
  278. Kick(playerid);
  279. return 1;
  280. }
  281. if(response==1)
  282. {
  283. if(!strlen(inputtext))
  284. {
  285. SendClientMessage(playerid,GELB,"Dein eingegebenes Passwort war nicht lang genug!");
  286. ShowPlayerDialog(playerid,DIALOG_LOG,DIALOG_STYLE_PASSWORD,"Einloggen","Dein Account wurde gefunden!\nBitte gebe dein Passwort ein.","Einloggen","Abbrechen");
  287. return 1;
  288. }
  289. else
  290. {
  291. Login(playerid,inputtext);
  292. return 1;
  293. }
  294. }
  295. }
  296.  
  297. if(dialogid==DIALOG_REG)
  298. {
  299. if(response==0)
  300. {
  301. SendClientMessage(playerid,GELB,"Du hast den Vorgang abgebrochen!");
  302. Kick(playerid);
  303. return 1;
  304. }
  305. if(response==1)
  306. {
  307. if(!strlen(inputtext))
  308. {
  309. SendClientMessage(playerid,GELB,"Das Passwort war nicht lang genug!");
  310. ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_INPUT,"Reg.","Gebe bitte dein gewünschtes Passwort ein!","Registrieren","Abbrechen");
  311. return 1;
  312. }
  313. else
  314. {
  315. Register(playerid,inputtext);
  316. return 1;
  317. }
  318. }
  319. }
  320. return 1;
  321. }
  322.  
  323. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  324. {
  325. return 1;
  326. }
  327.  
  328. stock Register(playerid,key[])
  329. {
  330. new Playerdatei[128];
  331. new name[MAX_PLAYER_NAME];
  332. GetPlayerName(playerid,name,sizeof(name));
  333. format(Playerdatei,sizeof(Playerdatei),"/Spieler/%s.ini",name);
  334. dini_Create(Playerdatei);
  335. dini_Set(Playerdatei,"Passwort",key);
  336. SendClientMessage(playerid,GELB,"Du bist nun eingeloggt!");
  337. SetPlayerScore(playerid,0);
  338. dini_IntSet(Playerdatei,"Adminlevel",0);
  339. SetPVarInt(playerid,"Eingeloggt",1);
  340. return 1;
  341. }
  342.  
  343. stock Login(playerid,key[])
  344. {
  345. new Playerdatei[128];
  346. new name[MAX_PLAYER_NAME];
  347. GetPlayerName(playerid,name,sizeof(name));
  348. format(Playerdatei,sizeof(Playerdatei),"/Spieler/%s",name);
  349. if(!strcmp(key,dini_Get(Playerdatei,"Passwort"),false))
  350. {
  351. AccountLaden(playerid);
  352. SendClientMessage(playerid,GELB,"Du bist nun eingeloggt!");
  353. }
  354. else
  355. {
  356. SendClientMessage(playerid,GELB,"Dein Passwort war falsch!");
  357. ShowPlayerDialog(playerid,DIALOG_LOG,DIALOG_STYLE_PASSWORD,"Einloggen","Dein Account wurde gefunden!\nBitte gebe dein Passwort ein.","Einloggen","Abbrechen");
  358. }
  359. return 1;
  360. }
  361.  
  362. stock AccountLaden(playerid)
  363. {
  364. new Playerdatei[128];
  365. new name[MAX_PLAYER_NAME];
  366. GetPlayerName(playerid,name,sizeof(name));
  367. format(Playerdatei,sizeof(Playerdatei),"/Spieler/%s",name);
  368. SetPlayerScore(playerid,dini_Int(Playerdatei,"Level"));
  369. GivePlayerMoney(playerid,dini_Int(Playerdatei,"Geld"));
  370. SetPVarInt(playerid,"Adminlevel",dini_Int(Playerdatei,"Adminlevel"));
  371. SetPVarInt(playerid,"Eingeloggt",1);
  372. if(GetPVarInt(playerid,"Gebannt")==1)
  373. {
  374. SendClientMessage(playerid,GELB,"Du bist auf unserem Server gebannt!");
  375. Kick(playerid);
  376. }
  377. }
  378.  
  379. stock SpielerSpeichern(playerid)
  380. {
  381. if(GetPVarInt(playerid,"Eingeloggt")==1)
  382. {
  383. new Playerdatei[128];
  384. new name[MAX_PLAYER_NAME];
  385. GetPlayerName(playerid,name,sizeof(name));
  386. format(Playerdatei,sizeof(Playerdatei),"/Spieler/%s",name);
  387. dini_IntSet(Playerdatei,"Level",GetPlayerScore(playerid));
  388. dini_IntSet(Playerdatei,"Geld",GetPlayerMoney(playerid));
  389. dini_IntSet(Playerdatei,"AdminLevel",GetPVarInt(playerid,"Adminlevel"));
  390. dini_IntSet(Playerdatei,"Gebannt",GetPVarInt(playerid,"Gebannt"));
  391. }
  392. }
  393.  
  394. stock IstSpielerAdmin(playerid,rang)
  395. {
  396. if(GetPVarInt(playerid,"Adminlevel")>=rang) return 1;
  397. return 0;
  398. }
  399.  
  400. stock SpielerName(playerid)
  401. {
  402. new name[MAX_PLAYER_NAME];
  403. GetPlayerName(playerid,name,sizeof(name));
  404. return name;
  405. }
  406.  
  407. stock sscanf(string[], format[], {Float,_}:...)
  408. {
  409. #if defined isnull
  410. if (isnull(string))
  411. #else
  412. if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  413. #endif
  414. {
  415. return format[0];
  416. }
  417. #pragma tabsize 4
  418. new
  419. formatPos = 0,
  420. stringPos = 0,
  421. paramPos = 2,
  422. paramCount = numargs(),
  423. delim = ' ';
  424. while (string[stringPos] && string[stringPos] <= ' ')
  425. {
  426. stringPos++;
  427. }
  428. while (paramPos < paramCount && string[stringPos])
  429. {
  430. switch (format[formatPos++])
  431. {
  432. case '\0':
  433. {
  434. return 0;
  435. }
  436. case 'i', 'd':
  437. {
  438. new
  439. neg = 1,
  440. num = 0,
  441. ch = string[stringPos];
  442. if (ch == '-')
  443. {
  444. neg = -1;
  445. ch = string[++stringPos];
  446. }
  447. do
  448. {
  449. stringPos++;
  450. if ('0' <= ch <= '9')
  451. {
  452. num = (num * 10) + (ch - '0');
  453. }
  454. else
  455. {
  456. return -1;
  457. }
  458. }
  459. while ((ch = string[stringPos]) > ' ' && ch != delim);
  460. setarg(paramPos, 0, num * neg);
  461. }
  462. case 'h', 'x':
  463. {
  464. new
  465. num = 0,
  466. ch = string[stringPos];
  467. do
  468. {
  469. stringPos++;
  470. switch (ch)
  471. {
  472. case 'x', 'X':
  473. {
  474. num = 0;
  475. continue;
  476. }
  477. case '0' .. '9':
  478. {
  479. num = (num << 4) | (ch - '0');
  480. }
  481. case 'a' .. 'f':
  482. {
  483. num = (num << 4) | (ch - ('a' - 10));
  484. }
  485. case 'A' .. 'F':
  486. {
  487. num = (num << 4) | (ch - ('A' - 10));
  488. }
  489. default:
  490. {
  491. return -1;
  492. }
  493. }
  494. }
  495. while ((ch = string[stringPos]) > ' ' && ch != delim);
  496. setarg(paramPos, 0, num);
  497. }
  498. case 'c':
  499. {
  500. setarg(paramPos, 0, string[stringPos++]);
  501. }
  502. case 'f':
  503. {
  504.  
  505. new changestr[16], changepos = 0, strpos = stringPos;
  506. while(changepos < 16 && string[strpos] && string[strpos] != delim)
  507. {
  508. changestr[changepos++] = string[strpos++];
  509. }
  510. changestr[changepos] = '\0';
  511. setarg(paramPos,0,_:floatstr(changestr));
  512. }
  513. case 'p':
  514. {
  515. delim = format[formatPos++];
  516. continue;
  517. }
  518. case '\'':
  519. {
  520. new
  521. end = formatPos - 1,
  522. ch;
  523. while ((ch = format[++end]) && ch != '\'') {}
  524. if (!ch)
  525. {
  526. return -1;
  527. }
  528. format[end] = '\0';
  529. if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  530. {
  531. if (format[end + 1])
  532. {
  533. return -1;
  534. }
  535. return 0;
  536. }
  537. format[end] = '\'';
  538. stringPos = ch + (end - formatPos);
  539. formatPos = end + 1;
  540. }
  541. case 'u':
  542. {
  543. new
  544. end = stringPos - 1,
  545. id = 0,
  546. bool:num = true,
  547. ch;
  548. while ((ch = string[++end]) && ch != delim)
  549. {
  550. if (num)
  551. {
  552. if ('0' <= ch <= '9')
  553. {
  554. id = (id * 10) + (ch - '0');
  555. }
  556. else
  557. {
  558. num = false;
  559. }
  560. }
  561. }
  562. if (num && IsPlayerConnected(id))
  563. {
  564. setarg(paramPos, 0, id);
  565. }
  566. else
  567. {
  568. #if !defined foreach
  569. #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  570. #define __SSCANF_FOREACH__
  571. #endif
  572. string[end] = '\0';
  573. num = false;
  574. new
  575. name[MAX_PLAYER_NAME];
  576. id = end - stringPos;
  577. foreach (Player, playerid)
  578. {
  579. GetPlayerName(playerid, name, sizeof (name));
  580. if (!strcmp(name, string[stringPos], true, id))
  581. {
  582. setarg(paramPos, 0, playerid);
  583. num = true;
  584. break;
  585. }
  586. }
  587. if (!num)
  588. {
  589. setarg(paramPos, 0, INVALID_PLAYER_ID);
  590. }
  591. string[end] = ch;
  592. #if defined __SSCANF_FOREACH__
  593. #undef foreach
  594. #undef __SSCANF_FOREACH__
  595. #endif
  596. }
  597. stringPos = end;
  598. }
  599. case 's', 'z':
  600. {
  601. new
  602. i = 0,
  603. ch;
  604. if (format[formatPos])
  605. {
  606. while ((ch = string[stringPos++]) && ch != delim)
  607. {
  608. setarg(paramPos, i++, ch);
  609. }
  610. if (!i)
  611. {
  612. return -1;
  613. }
  614. }
  615. else
  616. {
  617. while ((ch = string[stringPos++]))
  618. {
  619. setarg(paramPos, i++, ch);
  620. }
  621. }
  622. stringPos--;
  623. setarg(paramPos, i, '\0');
  624. }
  625. default:
  626. {
  627. continue;
  628. }
  629. }
  630. while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  631. {
  632. stringPos++;
  633. }
  634. while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  635. {
  636. stringPos++;
  637. }
  638. paramPos++;
  639. }
  640. do
  641. {
  642. if ((delim = format[formatPos++]) > ' ')
  643. {
  644. if (delim == '\'')
  645. {
  646. while ((delim = format[formatPos++]) && delim != '\'') {}
  647. }
  648. else if (delim != 'z')
  649. {
  650. return delim;
  651. }
  652. }
  653. }
  654. while (delim > ' ');
  655. return 0;
  656. }
Advertisement
Add Comment
Please, Sign In to add comment