Guest User

evo moja skripta

a guest
Mar 21st, 2013
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 39.12 KB | None | 0 0
  1.  
  2. //==============================================================================
  3. //==============================================================================
  4. //==============================================================================
  5. #include <a_samp>
  6. #include <YSI\y_ini>
  7. #include <sscanf2>
  8. #include <sscanf>
  9. #include <ZCMD>
  10. #include <foreach>
  11.  
  12. #define SCM SendClientMessage
  13.  
  14. #define DIALOG_REGISTER 1
  15. #define DIALOG_LOGIN 2
  16. #define DIALOG_SUCCESS_1 3
  17. #define DIALOG_SUCCESS_2 4
  18. #define DIALOG_ORG_INVITE 5
  19.  
  20. #define PATH "/Users/%s.ini"
  21.  
  22. #define COLOR_ORANGE "{FF6600}"
  23. #define COL_WHITE "{FFFFFF}"
  24. #define COL_RED "{F81414}"
  25. #define COL_GREEN "{00FF22}"
  26. #define COL_LIGHTBLUE "{00CED1}"
  27. #define COLOR_BLUE 0x2711F2
  28. #define COLOR_GREY 0xAFAFAFAA
  29.  
  30. #if defined FILTERSCRIPT
  31.  
  32. #define MAX_ORGS 1
  33.  
  34. #endif
  35.  
  36. //==============================================================================
  37.  
  38. //==============================================================================
  39. enum pInfo
  40. {
  41. pPass,
  42. pCash,
  43. pAdmin,
  44. pKills,
  45. pDeaths,
  46. pLider,
  47. pClan,
  48. pRank,
  49. pSkin,
  50. pOrg_Skin
  51.  
  52. }
  53. new PlayerInfo[MAX_PLAYERS][pInfo];
  54. //==============================================================================
  55. forward LoadUser_data(playerid,name[],value[]);
  56. public LoadUser_data(playerid,name[],value[])
  57. {
  58. INI_Int("Password",PlayerInfo[playerid][pPass]);
  59. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  60. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  61. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  62. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  63. INI_Int("Lider",PlayerInfo[playerid][pLider]);
  64. INI_Int("Clan",PlayerInfo[playerid][pClan]);
  65. INI_Int("Rank",PlayerInfo[playerid][pRank]);
  66. INI_Int("Skin",PlayerInfo[playerid][pSkin]);
  67. INI_Int("Org Skin",PlayerInfo[playerid][pOrg_Skin]);
  68. return 1;
  69. }
  70. //==============================================================================
  71. stock UserPath(playerid)
  72. {
  73. new string[128],playername[MAX_PLAYER_NAME];
  74. GetPlayerName(playerid,playername,sizeof(playername));
  75. format(string,sizeof(string),PATH,playername);
  76. return string;
  77. }
  78.  
  79. /*COL_REDits to Dracoblue*/
  80. stock udb_hash(buf[]) {
  81. new length=strlen(buf);
  82. new s1 = 1;
  83. new s2 = 0;
  84. new n;
  85. for (n=0; n<length; n++)
  86. {
  87. s1 = (s1 + buf[n]) % 65521;
  88. s2 = (s2 + s1) % 65521;
  89. }
  90. return (s2 << 16) + s1;
  91. }
  92. //==============================================================================
  93. //==============================================================================
  94. main()
  95. {
  96. print("\n************************************");
  97. print(" |WRT| v1.0.0");
  98. print("\n************************************");
  99. }
  100. //==============================================================================
  101. //==============================================================================
  102. //==============================================================================
  103. public OnGameModeInit()
  104. {
  105. SetGameModeText("|WRT| v1.0.0");
  106. return 1;
  107. }
  108. //==============================================================================
  109. //==============================================================================
  110. //==============================================================================
  111. public OnGameModeExit()
  112. {
  113. return 1;
  114. }
  115. //==============================================================================
  116. //==============================================================================
  117. //==============================================================================
  118. public OnPlayerRequestClass(playerid, classid)
  119. {
  120. SetSpawnInfo(playerid, 0, 0,1544.5767,-1373.3291,329.7563,179.8415,46,1,0,0,0,0); //
  121. SpawnPlayer(playerid);
  122. return 1;
  123. }
  124. //==============================================================================
  125. //==============================================================================
  126. //==============================================================================
  127. public OnPlayerConnect(playerid)
  128. {
  129. if(fexist(UserPath(playerid)))
  130. {
  131. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  132. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
  133. }
  134. else
  135. {
  136. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
  137. }
  138. return 1;
  139. }
  140. //==============================================================================
  141. //==============================================================================
  142. //==============================================================================
  143. public OnPlayerDisconnect(playerid, reason)
  144. {
  145. new INI:File = INI_Open(UserPath(playerid));
  146. INI_SetTag(File,"data");
  147. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  148. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  149. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  150. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  151. INI_WriteInt(File,"Lider",PlayerInfo[playerid][pLider]);
  152. INI_WriteInt(File,"Clan",PlayerInfo[playerid][pClan]);
  153. INI_WriteInt(File,"Rank",PlayerInfo[playerid][pRank]);
  154. INI_WriteInt(File,"Skin",PlayerInfo[playerid][pSkin]);
  155. INI_WriteInt(File,"Org Skin",PlayerInfo[playerid][pOrg_Skin]);
  156. INI_Close(File);
  157. return 1;
  158. }
  159. //==============================================================================
  160. //==============================================================================
  161. //==============================================================================
  162. public OnPlayerSpawn(playerid)
  163. {
  164. GivePlayerWeapon(playerid, 46, 1);
  165. if (PlayerInfo[playerid][pClan] > 0)
  166. {
  167. switch(PlayerInfo[playerid][pClan])
  168. {
  169. case 1: // Prva organizacija, nazovimo je Los Santos Police Department
  170. {
  171. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); // Postavlja igracevu poziciju na te koordinate, vi te koordinate mozete zamijeniti svojima
  172. SetPlayerFacingAngle(playerid, 270.1425); // Postavlja kamo da igrac gleda, vi to mozete zamijeniti sa svojim kutem
  173.  
  174. SetPlayerSkin(playerid, PlayerInfo[playerid][pOrg_Skin]); // Postavlja igracev skin na onaj koji mora imat dok je u organizaciji
  175. }
  176. // Ovaj kod ispod kao da ne postoji, ali vam prikazuje kako dodati jos jednu organizaciju za spawn, sto je potrebno svaki put kada zelite dodati novu organizaciju
  177. /*case 2: // Druga organizacije, nazovimo je FBI
  178. {
  179. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); // Postavlja igracevu poziciju na te koordinate, vi te koordinate mozete zamijeniti svojima
  180. SetPlayerFacingAngle(playerid, 270.1425); // Postavlja kamo da igrac gleda, vi to mozete zamijeniti sa svojim kutem
  181.  
  182. SetPlayerSkin(playerid, PlayerInfo[playerid][pOrg_Skin]); // Postavlja igracev skin na onaj koji mora imat dok je u organizaciji
  183. }*/
  184. }
  185. return 1;
  186. }
  187. //==============================================================================
  188. //==============================================================================
  189. //==============================================================================
  190.  
  191. public OnPlayerDeath(playerid, killerid, reason)
  192. {
  193. PlayerInfo[killerid][pKills]++;
  194. PlayerInfo[playerid][pDeaths]++;
  195. return 1;
  196. }
  197. //==============================================================================
  198. //==============================================================================
  199. //==============================================================================
  200.  
  201. public OnVehicleSpawn(vehicleid)
  202. {
  203. return 1;
  204. }
  205. //==============================================================================
  206. //==============================================================================
  207. //==============================================================================
  208. public OnVehicleDeath(vehicleid, killerid)
  209. {
  210. return 1;
  211. }
  212. //==============================================================================
  213. //==============================================================================
  214. //==============================================================================
  215. public OnPlayerText(playerid, text[])
  216. {
  217.  
  218. new LoseRijeci[][] =
  219. {
  220. {"kurac"},
  221. {"qrac"},
  222. {"racku"},
  223. {"racq"},
  224. {"jebem"},
  225. {"picka"}
  226. }
  227. ;
  228. for(new i; i != sizeof(LoseRijeci); ++i)
  229. {
  230. AntiPsovka(text, LoseRijeci[i]);
  231. }
  232. return 1;
  233. }
  234. //==============================================================================
  235. //==============================================================================
  236. //==============================================================================
  237. public OnPlayerCommandText(playerid, cmdtext[])
  238. {
  239. return SendClientMessage(playerid, 0xAA3333AA, "GRESKA: " "Komanda koju ste uneli ne postoji!");
  240. }
  241. //==============================================================================
  242. //==============================================================================
  243. //==============================================================================
  244. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  245. {
  246. return 1;
  247. }
  248. //==============================================================================
  249. //==============================================================================
  250. //==============================================================================
  251. public OnPlayerExitVehicle(playerid, vehicleid)
  252. {
  253. return 1;
  254. }
  255. //==============================================================================
  256. //==============================================================================
  257. //==============================================================================
  258. public OnPlayerStateChange(playerid, newstate, oldstate)
  259. {
  260. return 1;
  261. }
  262. //==============================================================================
  263. //==============================================================================
  264. //==============================================================================
  265. //==============================================================================
  266. //==============================================================================
  267. public OnPlayerEnterCheckpoint(playerid)
  268. {
  269. return 1;
  270. }
  271. //==============================================================================
  272. //==============================================================================
  273. //==============================================================================
  274. public OnPlayerLeaveCheckpoint(playerid)
  275. {
  276. return 1;
  277. }
  278. //==============================================================================
  279. //==============================================================================
  280. //==============================================================================
  281. public OnPlayerEnterRaceCheckpoint(playerid)
  282. {
  283. return 1;
  284. }
  285. //==============================================================================
  286. //==============================================================================
  287. //==============================================================================
  288. public OnPlayerLeaveRaceCheckpoint(playerid)
  289. {
  290. return 1;
  291. }
  292. //==============================================================================
  293. //==============================================================================
  294. //==============================================================================
  295. public OnRconCommand(cmd[])
  296. {
  297. return 1;
  298. }
  299. //==============================================================================
  300. //==============================================================================
  301. //==============================================================================
  302. public OnPlayerRequestSpawn(playerid)
  303. {
  304. return 1;
  305. }
  306. //==============================================================================
  307. //==============================================================================
  308. //==============================================================================
  309. public OnObjectMoved(objectid)
  310. {
  311. return 1;
  312. }
  313. //==============================================================================
  314. //==============================================================================
  315. //==============================================================================
  316. public OnPlayerObjectMoved(playerid, objectid)
  317. {
  318. return 1;
  319. }
  320. //==============================================================================
  321. //==============================================================================
  322. //==============================================================================
  323. public OnPlayerPickUpPickup(playerid, pickupid)
  324. {
  325. return 1;
  326. }
  327. //==============================================================================
  328. //==============================================================================
  329. //==============================================================================
  330. public OnVehicleMod(playerid, vehicleid, componentid)
  331. {
  332. return 1;
  333. }
  334. //==============================================================================
  335. //==============================================================================
  336. //==============================================================================
  337. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  338. {
  339. return 1;
  340. }
  341. //==============================================================================
  342. //==============================================================================
  343. //==============================================================================
  344. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  345. {
  346. return 1;
  347. }
  348. //==============================================================================
  349. //==============================================================================
  350. //==============================================================================
  351. public OnPlayerSelectedMenuRow(playerid, row)
  352. {
  353. return 1;
  354. }
  355. //==============================================================================
  356. //==============================================================================
  357. //==============================================================================
  358. public OnPlayerExitedMenu(playerid)
  359. {
  360. return 1;
  361. }
  362. //==============================================================================
  363. //==============================================================================
  364. //==============================================================================
  365. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  366. {
  367. return 1;
  368. }
  369. //==============================================================================
  370. //==============================================================================
  371. //==============================================================================
  372. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  373. {
  374. return 1;
  375. }
  376. //==============================================================================
  377. //==============================================================================
  378. //==============================================================================
  379. public OnRconLoginAttempt(ip[], password[], success)
  380. {
  381. return 1;
  382. }
  383. //==============================================================================
  384. //==============================================================================
  385. //==============================================================================
  386. public OnPlayerUpdate(playerid)
  387. {
  388. return 1;
  389. }
  390. //==============================================================================
  391. //==============================================================================
  392. //==============================================================================
  393. public OnPlayerStreamIn(playerid, forplayerid)
  394. {
  395. return 1;
  396. }
  397. //==============================================================================
  398. //==============================================================================
  399. //==============================================================================
  400. public OnPlayerStreamOut(playerid, forplayerid)
  401. {
  402. return 1;
  403. }
  404. //==============================================================================
  405. //==============================================================================
  406. //==============================================================================
  407. public OnVehicleStreamIn(vehicleid, forplayerid)
  408. {
  409. return 1;
  410. }
  411. //==============================================================================
  412. //==============================================================================
  413. //==============================================================================
  414. public OnVehicleStreamOut(vehicleid, forplayerid)
  415. {
  416. return 1;
  417. }
  418. //==============================================================================
  419. //==============================================================================
  420. //==============================================================================
  421. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  422. {
  423. switch( dialogid )
  424. {
  425. case DIALOG_REGISTER:
  426. {
  427. if (!response) return Kick(playerid);
  428. if(response)
  429. {
  430. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
  431. new INI:File = INI_Open(UserPath(playerid));
  432. INI_SetTag(File,"data");
  433. INI_WriteInt(File,"Password",udb_hash(inputtext));
  434. INI_WriteInt(File,"Cash",0);
  435. INI_WriteInt(File,"Admin",0);
  436. INI_WriteInt(File,"Kills",0);
  437. INI_WriteInt(File,"Deaths",0);
  438. INI_WriteInt(File,"Lider",0);
  439. INI_WriteInt(File,"Clan",0);
  440. INI_WriteInt(File,"Rank",0);
  441. INI_WriteInt(File,"Skin",0);
  442. INI_WriteInt(File,"Org_Skin",0);
  443. INI_Close(File);
  444.  
  445. SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 46, 1, 0, 0, 0, 0);
  446. SpawnPlayer(playerid);
  447. ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"Great! Your Y_INI system works perfectly. Relog to save your stats!","Ok","");
  448. }
  449. }
  450.  
  451. case DIALOG_LOGIN:
  452. {
  453. if ( !response ) return Kick ( playerid );
  454. if( response )
  455. {
  456. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  457. {
  458. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  459. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  460. ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
  461. }
  462. else
  463. {
  464. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
  465. }
  466. return 1;
  467. }
  468. }
  469. }
  470. //=========================================================
  471.  
  472. //=========================================================
  473. return 1;
  474. }
  475. //==============================================================================
  476. //==============================================================================
  477. //==============================================================================
  478. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  479. {
  480. return 1;
  481. }
  482. //==============================================================================
  483. //==============================================================================
  484. //==============================================================================
  485.  
  486. //==============================================================================
  487. //==============================================================================
  488. //==============================================================================
  489. forward SendAdminMessage(color, string[]);
  490. public SendAdminMessage(color, string[])
  491. {
  492. for(new i = 0; i < MAX_PLAYERS; i++)
  493. {
  494. if(IsPlayerConnected(i))
  495. {
  496.  
  497. if(PlayerInfo[i][pAdmin] >= 1)
  498. {
  499. SCM(i, color, string);
  500. }
  501. }
  502. }
  503. }
  504. //==============================================================================
  505. //==============================================================================
  506. //==============================================================================
  507. forward Glad();
  508. public Glad()
  509. {
  510. for(new i=0;i<MAX_PLAYERS;i++)
  511. {
  512. new Float:HP;
  513. GetPlayerHealth(i, HP);
  514. SetPlayerHealth(i, HP-3);
  515. }
  516. return 1;
  517. }
  518. //==============================================================================
  519. //==============================================================================
  520. //==============================================================================
  521. stock AntiPsovka(string[], LoseRijeci[], zamjeni = '*')
  522. {
  523. new i;
  524. while((i = strfind(string, LoseRijeci, true)) != -1)
  525. {
  526. for(new x = (i + strlen(LoseRijeci)); i != x; ++i)
  527. {
  528. string[i] = zamjeni;
  529. }
  530. }
  531. return 1;
  532. }
  533. //==============================================================================
  534. //==============================================================================
  535. CMD:makeleader(playerid, params[])
  536. {
  537. if (IsPlayerAdmin(playerid)) // Provjerava da li je igrac RCON admin, vi to mozete promijeniti u svoju provjeru
  538. {
  539. new
  540. iPlayerID,
  541. iOrgID,
  542. szPlayerName[MAX_PLAYER_NAME],
  543. szMessage[105];
  544.  
  545. if (sscanf(params, "ud", iPlayerID, iOrgID)) // Ako igrac nije upisao sve potrebne parametre, ispisuje mu tu poruku
  546. return SendClientMessage(playerid, COL_WHITE, "KORISTI: /makeleader [igracev ID/dio imena] [ID organizacije]");
  547. else if (iPlayerID == INVALID_PLAYER_ID) // Ako je ID igraca koji je igrac upisao nije online, ispisuje mu tu poruku
  548. return SendClientMessage(playerid, COL_WHITE, "ERROR: Pogresan ID igraca.");
  549. else if (iOrgID < 1 || iOrgID > MAX_ORGS) // Ako je ID organizacije koju je igrac upisao manja od 1 ili veca maksimalnog broja organizacija, ispisuje mu tu poruku
  550. return SendClientMessage(playerid, COL_WHITE, "ERROR: ID organizacije ne smije biti manji od 1 ili veci od "#MAX_ORGS);
  551.  
  552. Playerinfo[iPlayerID][pLider] = iOrgID; // Postavlja igracevu varijablu za lidera na ID organizacije, jer moramo negdje zapamtit koje organizacije je igrac lider
  553. Playerinfo[iPlayerID][pRank] = 6; // Postavlja igracevu varijablu za rank na 6, to vi mozete promijeniti ako ne zelite da vam je najveci rank 6
  554.  
  555. switch(iOrgID)
  556. {
  557. case 1: // Prva organizacija, nazovimo je Los Santos Police Department
  558. {
  559. Playerinfo[iPlayerID][pSkin] = GetPlayerSkin(iPlayerID); // Sprema igracev skin tako da ako ikad bude izbacen iz organizacije, dobija svoj stari skin natrag
  560. Playerinfo[iPlayerID][pOrg_Skin] = 283; // Broj 283 je ID skina lidera organizacije, to mozete promijeniti u koji kod skin ID vi zelite
  561.  
  562. SetPlayerSkin(iPlayerID, Playerinfo[iPlayerID][pOrg_Skin]); // Postavlja igracu skin za lidera organizacije
  563. }
  564. // Ovaj kod ispod kao da ne postoji, ali vam prikazuje kako dodati jos jednu organizaciju u /makeleader komandu, sto je potrebno svaki put kada zelite dodati novu organizaciju
  565. /*case 2: // Druga organizacije, nazovimo je FBI
  566. {
  567. Playerinfo[iPlayerID][pSkin] = GetPlayerSkin(iPlayerID); // Sprema igracev skin tako da ako ikad bude izbacen iz organizacije, dobija svoj stari skin natrag
  568. Playerinfo[iPlayerID][pOrg_Skin] = 283; // Broj 283 je ID skina lidera organizacije, to mozete promijeniti u koji kod skin ID vi zelite
  569.  
  570. SetPlayerSkin(iPlayerID, Playerinfo[iPlayerID][pOrg_Skin]); // Postavlja igracu skin za lidera organizacije
  571. }*/
  572. }
  573.  
  574. GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  575.  
  576. format(szMessage, sizeof(szMessage), "INFO: Admin %s vas je postavio za lidera organizacije %s", szPlayerName, GetOrgNameByID(iOrgID));
  577. SendClientMessage(iPlayerID, COL_WHITE, szMessage);
  578.  
  579. GetPlayerName(iPlayerID, szPlayerName, MAX_PLAYER_NAME);
  580.  
  581. format(szMessage, sizeof(szMessage), "INFO: Postavio si igraca %s za lidera organizacije %s", szPlayerName, GetOrgNameByID(iOrgID));
  582. SendClientMessage(playerid, COL_WHITE, szMessage);
  583. }
  584. else
  585. SendClientMessage(playerid, COL_WHITE, "ERROR: Moras biti RCON admin da koristis ovu komandu.");
  586. return 1;
  587. }
  588.  
  589. stock GetOrgNameByID(iOrgID) // By Joey_
  590. {
  591. new
  592. szOrgName[29];
  593.  
  594. switch(iOrgID)
  595. {
  596. case 1: // Prva organizacija, nazovimo je Los Santos Police Department
  597. szOrgName = "Los Santos Police Department";
  598. default: // Ako ne postoji ID takve organizacije
  599. szOrgName = "Nepoznata organizacija";
  600. }
  601. return szOrgName;
  602. }
  603. //==============================================================================
  604. //==============================================================================
  605. CMD:invite(playerid, params[])
  606. {
  607. if (Playerinfo[playerid][pLider] > 0) // Provjerava da li je igrac lider icega
  608. {
  609. new
  610. iPlayerID,
  611. szPlayerName[MAX_PLAYER_NAME],
  612. szInviteMsg[241];
  613.  
  614. if (sscanf(params, "u", iPlayerID)) // Ako igrac nije upisao sve potrebne parametre, ispisuje mu tu poruku
  615. return SendClientMessage(playerid, COL_WHITE, "KORISTI: /invite [igracev ID/dio imena]");
  616. else if (iPlayerID == INVALID_PLAYER_ID) // Ako je ID igraca koji je igrac upisao nije online, ispisuje mu tu poruku
  617. return SendClientMessage(playerid, COL_WHITE, "ERROR: Pogresan ID igraca.");
  618.  
  619. GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  620.  
  621. switch(Playerinfo[playerid][pLider])
  622. {
  623. case 1: // Prva organizacija, nazovimo je Los Santos Police Department
  624. {
  625. Playerinfo[iPlayerID][pClan] = Playerinfo[playerid][pLider]; // Ovdje postavljamo igracu kojeg zelimo pozvati u organizaciju varijablu na ID organizacije (tako da kasnije znamo u kojoj je organizaciji)
  626. Playerinfo[iPlayerID][pRank] = 1; // Postavlja igracu kojeg zelimo pozvati u organizaciju rank na 1
  627.  
  628. // Ovdje formatiramo poruku koju cemo poslati igracu koji je pozvan u organizaciju
  629. // Preko te poruke ce pozvani igrac prihvatiti ili ne prihvatiti ulazak u organizaciju
  630. format(szInviteMsg, sizeof(szInviteMsg), "Lider %s vas je pozvao u organizaciju Los Santos Police Department.\n\nPritisnite tipku 'Prihvacam' ako zelite prihvatiti poziv za ulazak u tu organizaciju\nili pritisnite tipku 'Odbijam' ako ne zelite prihvatiti.", szPlayerName);
  631. }
  632. // Ovaj kod ispod kao da ne postoji, ali vam prikazuje kako dodati jos jednu organizaciju u /invite komandu, sto je potrebno svaki put kada zelite dodati novu organizaciju
  633. /*case 2: // Druga organizacije, nazovimo je FBI
  634. {
  635. Playerinfo[iPlayerID][pClan] = Playerinfo[playerid][pLider]; // Ovdje postavljamo igracu kojeg zelimo pozvati u organizaciju varijablu na ID organizacije (tako da kasnije znamo u kojoj je organizaciji)
  636. Playerinfo[iPlayerID][pRank] = 1; // Postavlja igracu kojeg zelimo pozvati u organizaciju rank na 1
  637.  
  638. // Ovdje formatiramo poruku koju cemo poslati igracu koji je pozvan u organizaciju
  639. // Preko te poruke ce pozvani igrac prihvatiti ili ne prihvatiti ulazak u organizaciju
  640. // Kad dodajete novu organizaciju, morate promijeniti neke nazive u tekstu kako ne bi svaki tekst bio isti (govorim o imenu organizacije)
  641. format(szInviteMsg, sizeof(szInviteMsg), "Lider %s vas je pozvao u organizaciju FBI.\n\nPritisnite tipku 'Prihvacam' ako zelite prihvatiti poziv za ulazak u tu organizaciju\nili pritisnite tipku 'Odbijam' ako ne zelite prihvatiti.", szPlayerName);
  642. }*/
  643. }
  644.  
  645. ShowPlayerDialog(iPlayerID, DIALOG_ORG_INVITE, DIALOG_STYLE_MSGBOX, "POZVANI STE U ORGANIZACIJU", szInviteMsg, "Prihvacam", "Odbijam");
  646. }
  647. else
  648. SendClientMessage(playerid, COL_WHITE, "ERROR: Moras biti lider da koristis ovu komandu.");
  649. return 1;
  650. }
  651.  
  652.  
  653. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  654. {
  655. switch(dialogid)
  656. {
  657. case DIALOG_ORG_INVITE: // Ovdje ce se izvrsiti daljnji kod nakon sto je igrac pritisnuo 'Prihvacam' ili 'Ne prihvacam'
  658. {
  659. if (response) // Ako je igrac pritisnuo 'Prihvacam'
  660. {
  661. switch(Playerinfo[playerid][pClan])
  662. {
  663. case 1: // Prva organizacija, nazovimo je Los Santos Police Department
  664. {
  665. SetPlayerSkin(playerid, 280); // Broj 280 je ID skina za rank 1 u organizaciji LSPD, vi to mozete promijeniti na bilo koji ID skina koji vama odgovara
  666.  
  667. SendClientMessage(playerid, COL_WHITE, "INFO: Prihvatili ste poziv za ulazak u "COL_RED"Los Santos Police Department");
  668. }
  669. }
  670. }
  671. else // Ako je igrac pritisnuo 'Ne prihvacam'
  672. {
  673. // Resetiramo igraceve varijable na 0 jer nije prihvatio ulazak u organizaciju
  674. Playerinfo[playerid][pClan] = 0;
  675. Playerinfo[playerid][pRank] = 0;
  676.  
  677. SendClientMessage(playerid, COL_WHITE, "INFO: Odbili ste poziv za ulazak u organizaciju");
  678. }
  679. }
  680. }
  681. return 1;
  682. }
  683. //==============================================================================
  684. //==============================================================================
  685. CMD:rankup(playerid, params[])
  686. {
  687. if (Playerinfo[playerid][pLider] > 0) // Provjerava da li je igrac lider icega
  688. {
  689. new
  690. iPlayerID,
  691. iRankNum,
  692. szPlayerName[MAX_PLAYER_NAME],
  693. szMessage[71];
  694.  
  695. if (sscanf(params, "ud", iPlayerID, iRankNum)) // Ako igrac nije upisao sve potrebne parametre, ispisuje mu tu poruku
  696. return SendClientMessage(playerid, COL_WHITE, "KORISTI: /rankup [igracev ID/dio imena] [rank]");
  697. else if (iPlayerID == INVALID_PLAYER_ID) // Ako je ID igraca koji je igrac upisao nije online, ispisuje mu tu poruku
  698. return SendClientMessage(playerid, COL_WHITE, "ERROR: Pogresan ID igraca.");
  699. else if (iRankNum < 1 || iRankNum > 6) // Ako je broj ranka manji od 1 ili veci od 6, ispisuje mu tu poruku
  700. return SendClientMessage(playerid, COL_WHITE, "ERROR: ID organizacije ne smije biti manji od 1 ili veci od 6.");
  701. else if (Playerinfo[iPlayerID][pClan] != Playerinfo[playerid][pLider]) // Provjerava da li su igrac i ID igraca koji je upisao u istoj organizaciji
  702. return SendClientMessage(playerid, COL_WHITE, "ERROR: Taj igrac nije u vasoj organizaciji.");
  703.  
  704. Playerinfo[iPlayerID][pRank] = iRankNum; // Postavlja igracevu varijablu na broj ranka, tako da bi kasnije mogli znati koji je igrac rank
  705.  
  706. SetPlayerOrgSkin(iPlayerID, ((Playerinfo[iPlayerID][pLider] > 0) ? (Playerinfo[iPlayerID][pLider]) : (Playerinfo[iPlayerID][pClan])), iRankNum);
  707.  
  708. GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  709.  
  710. format(szMessage, sizeof(szMessage), "INFO: Lider %s ti je postavio rank na "COL_RED"%d", szPlayerName, iRankNum);
  711. SendClientMessage(iPlayerID, COL_WHITE, szMessage);
  712.  
  713. GetPlayerName(iPlayerID, szPlayerName, MAX_PLAYER_NAME);
  714.  
  715. format(szMessage, sizeof(szMessage), "INFO: Postavio si clanu %s rank na "COL_RED"%d", szPlayerName, iRankNum);
  716. SendClientMessage(playerid, COL_WHITE, szMessage);
  717. }
  718. else
  719. SendClientMessage(playerid, COL_WHITE, "ERROR: Moras biti lider da koristis ovu komandu.");
  720. return 1;
  721. }
  722.  
  723. stock SetPlayerOrgSkin(iPlayerID, iOrgID, iRank)
  724. {
  725. switch(iOrgID)
  726. {
  727. case 1: // Prva organizacija, nazovimo je Los Santos Police Department
  728. {
  729. switch(iRank) // Rankovi za prvu organizaciju
  730. {
  731. case 1: // 1. Rank
  732. Playerinfo[iPlayerID][pOrg_Skin] = 284; // 284 je ID skina za 1. rank u LSPD organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  733. case 2: // 2. Rank
  734. Playerinfo[iPlayerID][pOrg_Skin] = 280; // 280 je ID skina za 2. rank u LSPD organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  735. case 3: // 3. Rank
  736. Playerinfo[iPlayerID][pOrg_Skin] = 281; // 281 je ID skina za 3. rank u LSPD organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  737. case 4: // 4. Rank
  738. Playerinfo[iPlayerID][pOrg_Skin] = 282; // 282 je ID skina za 4. rank u LSPD organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  739. case 5: // 5. Rank
  740. Playerinfo[iPlayerID][pOrg_Skin] = 282; // 282 je ID skina za 5. rank u LSPD organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  741. case 6: // 6. Rank
  742. Playerinfo[iPlayerID][pOrg_Skin] = 288; // 288 je ID skina za 6. rank u LSPD organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  743. default:
  744. Playerinfo[iPlayerID][pOrg_Skin] = 284; // Ovaj ID skina neka vam bude uvijek jednak 1. ranku, on je tu samo ako je doslo do neke greske kod broja ranka
  745. }
  746. }
  747. // Ovaj kod ispod kao da ne postoji, ali vam prikazuje kako dodati jos jednu organizaciju, sto je potrebno svaki put kada zelite dodati novu organizaciju
  748. /*case 2: // Druga organizacija, nazovimo je FBI
  749. {
  750. switch(iRank) // Rankovi za drugu organizaciju
  751. {
  752. case 1: // 1. Rank
  753. Playerinfo[iPlayerID][pOrg_Skin] = 166; // 166 je ID skina za 1. rank u FBI organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  754. case 2: // 2. Rank
  755. Playerinfo[iPlayerID][pOrg_Skin] = 166; // 166 je ID skina za 2. rank u FBI organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  756. case 3: // 3. Rank
  757. Playerinfo[iPlayerID][pOrg_Skin] = 165; // 165 je ID skina za 3. rank u FBI organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  758. case 4: // 4. Rank
  759. Playerinfo[iPlayerID][pOrg_Skin] = 165; // 165 je ID skina za 4. rank u FBI organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  760. case 5: // 5. Rank
  761. Playerinfo[iPlayerID][pOrg_Skin] = 286; // 286 je ID skina za 5. rank u FBI organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  762. case 6: // 6. Rank
  763. Playerinfo[iPlayerID][pOrg_Skin] = 286; // 286 je ID skina za 6. rank u FBI organizaciji i taj broj mjenjate u svoj ID skina koji zelite
  764. default:
  765. Playerinfo[iPlayerID][pOrg_Skin] = 166; // Ovaj ID skina neka vam bude uvijek jednak 1. ranku, on je tu samo ako je doslo do neke greske kod broja ranka
  766. }
  767. }*/
  768. }
  769.  
  770. SetPlayerSkin(iPlayerID, Playerinfo[iPlayerID][pOrg_Skin]);
  771. return 1;
  772. }
  773. //==============================================================================
  774. //==============================================================================
  775. CMD:izbaci(playerid, params[])
  776. {
  777. if (Playerinfo[playerid][pLider] > 0) // Provjerava da li je igrac lider icega
  778. {
  779. new
  780. iPlayerID,
  781. szPlayerName[MAX_PLAYER_NAME],
  782. szMessage[68];
  783.  
  784. if (sscanf(params, "u", iPlayerID)) // Ako igrac nije upisao sve potrebne parametre, ispisuje mu tu poruku
  785. return SendClientMessage(playerid, COL_WHITE, "KORISTI: /izbaci [igracev ID/dio imena]");
  786. else if (iPlayerID == INVALID_PLAYER_ID) // Ako je ID igraca koji je igrac upisao nije online, ispisuje mu tu poruku
  787. return SendClientMessage(playerid, COL_WHITE, "ERROR: Pogresan ID igraca.");
  788. else if (Playerinfo[iPlayerID][pClan] != Playerinfo[playerid][pLider]) // Provjerava da li su igrac i ID igraca koji je upisao u istoj organizaciji
  789. return SendClientMessage(playerid, COL_WHITE, "ERROR: Taj igrac nije u vasoj organizaciji.");
  790.  
  791. Playerinfo[iPlayerID][pClan] = 0; // Resetira igracevu varijablu jer vise nije u organizaciji
  792. Playerinfo[iPlayerID][pRank] = 0; // Resetira igracevu varijablu jer vise nije u organizaciji
  793. Playerinfo[iPlayerID][pOrg_Skin] = 0; // Resetira igracevu varijablu jer vise nije u organizaciji
  794.  
  795. SetPlayerSkin(iPlayerID, Playerinfo[iPlayerID][pSkin]); // Vraca igracev skin koji je imao prije ulaska u organizaciju
  796.  
  797. GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  798.  
  799. format(szMessage, sizeof(szMessage), "INFO: Lider %s te je izbacio iz organizacije.", szPlayerName);
  800. SendClientMessage(iPlayerID, COL_WHITE, szMessage);
  801.  
  802. GetPlayerName(iPlayerID, szPlayerName, MAX_PLAYER_NAME);
  803.  
  804. format(szMessage, sizeof(szMessage), "INFO: Izbacio si clana %s iz organizacije.", szPlayerName);
  805. SendClientMessage(playerid, COL_WHITE, szMessage);
  806. }
  807. else
  808. SendClientMessage(playerid, COL_WHITE, "ERROR: Moras biti lider da koristis ovu komandu.");
  809. return 1;
  810. }
  811. //==============================================================================
  812. //==============================================================================
  813. CMD:r(playerid, params[])
  814. {
  815. if (Playerinfo[playerid][pClan] > 0 || Playerinfo[playerid][pLider] > 0)
  816. {
  817. new
  818. szChatMsg[128],
  819. szPlayerName[MAX_PLAYER_NAME],
  820. szMessage[128];
  821.  
  822. if (sscanf(params, "s[128]", szChatMsg)) // Ako igrac nije upisao sve potrebne parametre, ispisuje mu tu poruku
  823. return SendClientMessage(playerid, COL_WHITE, "KORISTI: (/r)adio [tekst]");
  824.  
  825. GetPlayerName(playerid, szPlayerName, MAX_PLAYER_NAME);
  826.  
  827. foreach(new iPlayerID : Player)
  828. {
  829. // Prolazi kroz sve online igrace i provjerava da li su u istoj organizaciji kao i posiljatelj poruke
  830. if (Playerinfo[iPlayerID][pClan] == Playerinfo[playerid][pClan] || Playerinfo[iPlayerID][pLider] == Playerinfo[playerid][pLider])
  831. {
  832. format(szMessage, sizeof(szMessage), "%s %s kaze: %s", GetPlayerRank(playerid), szPlayerName, szChatMsg);
  833. SendClientMessage(iPlayerID, COL_WHITE, szMessage);
  834. }
  835. }
  836. }
  837. else
  838. SendClientMessage(playerid, COL_WHITE, "ERROR: Moras biti clan neke organizacije da koristis ovu komandu.");
  839. return 1;
  840. }
  841.  
  842. CMD:radio(playerid, params[])
  843. return cmd_r(playerid, params);
  844.  
  845. stock GetPlayerRank(iPlayerID) // By Joey_
  846. {
  847. new
  848. szRankName[16], // Broj 16 morate promijeniti ako imate rank ime vece od 15 znakova
  849. iPlayerOrg = (Playerinfo[iPlayerID][pClan] > 0) ? (Playerinfo[iPlayerID][pClan]) : (Playerinfo[iPlayerID][pLider]);
  850.  
  851. switch(iPlayerOrg)
  852. {
  853. case 1: // Prva organizacija, nazovimo je Los Santos Police Department
  854. {
  855. switch(Playerinfo[iPlayerID][pRank]) // Rankovi za prvu organizaciju
  856. {
  857. case 1: // 1. Rank
  858. szRankName = "Vježbenik";
  859. case 2: // 2. Rank
  860. szRankName = "Kadet";
  861. case 3: // 3. Rank
  862. szRankName = "Policajac";
  863. case 4: // 4. Rank
  864. szRankName = "Viši Policajac";
  865. case 5: // 5. Rank
  866. szRankName = "Narednik";
  867. case 6: // 6. Rank
  868. szRankName = "Porucnik";
  869. default:
  870. szRankName = "Nepoznato";
  871. }
  872. }
  873. // Ovaj kod ispod kao da ne postoji, ali vam prikazuje kako dodati jos jednu organizaciju, sto je potrebno svaki put kada zelite dodati novu organizaciju
  874. /*case 1: // Druga organizacija, nazovimo je FBI
  875. {
  876. switch(Playerinfo[iPlayerID][pRank]) // Rankovi za drugu organizaciju
  877. {
  878. case 1: // 1. Rank
  879. szRankName = "Vojnik";
  880. case 2: // 2. Rank
  881. szRankName = "Vojnik";
  882. case 3: // 3. Rank
  883. szRankName = "Zapovjednik";
  884. case 4: // 4. Rank
  885. szRankName = "Zapovjednik";
  886. case 5: // 5. Rank
  887. szRankName = "Zapovjednik";
  888. case 6: // 6. Rank
  889. szRankName = "General";
  890. default:
  891. szRankName = "Nepoznato";
  892. }
  893. }*/
  894. }
  895. return szRankName;
  896. }
  897. //==============================================================================
  898. //==============================================================================
  899. //==============================================================================
  900. //==============================================================================
  901. //==============================================================================
Advertisement
Add Comment
Please, Sign In to add comment