Guest User

Untitled

a guest
Jul 12th, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.46 KB | None | 0 0
  1. ////////////////////////////////////#include////////////////////////////////////
  2. #include <a_samp >
  3. #include <sscanf >
  4. #include <zcmd >
  5. #include <YSI/y_ini>
  6. #include <streamer >
  7.  
  8. #pragma tabsize 0
  9. ////////////////////////////////////#define boje////////////////////////////////
  10. #define DARKORANGE 0xFF3F00AA
  11. #define BLUE {0000BB}
  12. #define h_BLUE 0x0000BBAA
  13. #define red 0xFF0000AA
  14. #define WHITE "{FFFFFF}"
  15. #define RED "{F81414}"
  16. #define h_RED 0xF81414FF
  17. #define GREEN "{00FF22}"
  18. #define LIGHTBLUE "{00CED1}"
  19. ////////////////////////////////#define Register/Login//////////////////////////
  20. enum
  21. {
  22. DIALOG_REGISTER = 1,
  23. DIALOG_LOGIN,
  24. DIALOG_SUCCESS_1,
  25. DIALOG_SUCCESS_2
  26. };
  27.  
  28. #define PATH "/Korisnici/%s.ini"
  29. ////////////////////////////////#define skracenice//////////////////////////////
  30. #define SCM SendClientMessage //definiramo SCM kao kraticu od SendClientMessage
  31. #define SCMTA SendClientMessageToAll //definiramo SCMTA kao kraticu od SendClientMessageToAll
  32. ////////////////////////////////#define DIALOG_Poslovi//////////////////////////
  33. #define DIALOG_BUSVOZAC 1
  34. ///////////////////////////////#define POSAO_???////////////////////////////////
  35. #define POSAO_BUSVOZAC 1
  36. //////////////////////////#define ???(posao)_SKIN [ID skina]////////////////////
  37. #define BUSVOZAC_SKIN 61
  38. ///////////////////////////////Rent System//////////////////////////////////////
  39.  
  40. //////////////////////////////////////new///////////////////////////////////////
  41. new aduty[MAX_PLAYERS];
  42. ////////////////////////////////////Register/Login System///////////////////////
  43. //////////////////OVO VAM PRIKAZUJE KAD SE IGRAC REGISTRUJE & UMRE & UBIJE NEKOG U SCRIPT FILES > KORISNICI///////////////////////
  44. enum pInfo
  45. {
  46. pPass,
  47. pPosao,
  48. pCash,
  49. pAdmin,
  50. pKills,
  51. pDeaths
  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. return 1;
  64. }
  65. ////////////////////////////////////////////////////////////////////////////////
  66. stock UserPath(playerid)
  67. {
  68. new string[128],playername[MAX_PLAYER_NAME];
  69. GetPlayerName(playerid,playername,sizeof(playername));
  70. format(string,sizeof(string),PATH,playername);
  71. return string;
  72. }
  73.  
  74. stock udb_hash(buf[]) {
  75. new length=strlen(buf);
  76. new s1 = 1;
  77. new s2 = 0;
  78. new n;
  79. for (n=0; n<length; n++)
  80. {
  81. s1 = (s1 + buf[n]) % 65521;
  82. s2 = (s2 + s1) % 65521;
  83. }
  84. return (s2 << 16) + s1;
  85. }
  86. ////////////////////////////////////////////////////
  87. public OnPlayerConnect(playerid)
  88. {
  89. if(fexist(UserPath(playerid)))
  90. {
  91. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  92. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""WHITE"Login",""WHITE"Ukucajte sifru da bi ste se ulogovali.","Login","Izadji");
  93. }
  94. else
  95. {
  96. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""WHITE"Registracija...",""WHITE"Ukucajte sifru kako bi se registrovali","Register","Izadji");
  97. }
  98. ////////////////////////////////// Bus Vozac ///////////////////////////////////
  99. CP1 = CreateDynamicRaceCP(0,1461.1018,-2355.2996,13.2528,269.6068,1472.5420,-2368.3738,13.1099,177.0389,3.0);
  100. CP2 = CreateDynamicRaceCP(0,1472.5420,-2368.3738,13.1099,177.0389,1553.3702,-2380.4897,13.1021,271.3445,3.0);
  101. CP3 = CreateDynamicRaceCP(0,1553.3702,-2380.4897,13.1021,271.3445,0,0,0,3.0);
  102. TogglePlayerDinamicRaceCP(playerid,CP1,0);
  103. TogglePlayerDinamicRaceCP(playerid,CP2,0);
  104. TogglePlayerDinamicRaceCP(playerid,CP3,0);
  105. ////////////////////////////////////////////////////////////////////////////////
  106. return 1;
  107. }
  108.  
  109. //////////////////////////////////////////////////////////////////////////////////
  110. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  111. {
  112. switch( dialogid )
  113. {
  114. case DIALOG_REGISTER:
  115. {
  116. if (!response) return Kick(playerid);
  117. if(response)
  118. {
  119. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""WHITE"Registracija...",""RED"Ukucali ste pogresnu lozinku.\n"WHITE"Ukucajte sifru kako bi registrovali nov akaunt","Register","Izadji");
  120. new INI:File = INI_Open(UserPath(playerid));
  121. INI_SetTag(File,"data");
  122. INI_WriteInt(File,"Password",udb_hash(inputtext));
  123. INI_WriteInt(File,"Cash",0);
  124. INI_WriteInt(File,"Admin",0);
  125. INI_WriteInt(File,"Kills",0);
  126. INI_WriteInt(File,"Deaths",0);
  127. INI_Close(File);
  128.  
  129. SetSpawnInfo(playerid, 0, 0, 1332.3175,-984.9104,33.8966,269.8959,0,0,0,0,0,0);
  130. SpawnPlayer(playerid);
  131. ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""WHITE"Dobrodosli!",""GREEN"Uspesno ste registrovali svoj account!","Ok","");
  132. }
  133. }
  134.  
  135. case DIALOG_LOGIN:
  136. {
  137. if ( !response ) return Kick ( playerid );
  138. if( response )
  139. {
  140. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  141. {
  142. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  143. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  144. ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""WHITE"Dobrodosli!",""GREEN"Uspesno ste se ulogovali na svoj account!","Ok","");
  145. SetSpawnInfo(playerid, 0, 0, 1332.3175,-984.9104,33.8966,269.8959,0,0,0,0,0,0);
  146. SpawnPlayer(playerid);
  147. }
  148. else
  149. {
  150. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""WHITE"Login",""RED"Ukucali ste pogresnu sifru.\n"WHITE"Ukucajte ponovo sifru kako bi ste se ulogovali na svoj account.","Login","Izadji");
  151. }
  152. return 1;
  153. }
  154. }
  155. }
  156. return 1;
  157. }
  158. //////////// SACUVA IGRACEVE PODATKE KADA IZADJE SA SERVERA ////////////////////
  159. public OnPlayerDisconnect(playerid, reason)
  160. {
  161. new INI:File = INI_Open(UserPath(playerid));
  162. INI_SetTag(File,"data");
  163. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  164. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  165. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  166. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  167. INI_Close(File);
  168. return 1;
  169. }
  170. ///////////////////////////kada igrac umre doda mu Smrt u scriptfiles korisnici/////////////////
  171. public OnPlayerDeath(playerid, killerid, reason)
  172. {
  173. PlayerInfo[killerid][pKills]++;
  174. PlayerInfo[playerid][pDeaths]++;
  175. return 1;
  176. }
  177. ///////////////////////////////////////////////////////////////////////////////
  178. main()
  179. {
  180. print("Ucitavanje servera");
  181. print("Server uspesno ucitan");
  182. SendRconCommand("mapname Balkansko Poluostrvo");
  183. }
  184. public OnGameModeInit()
  185. {
  186. SetGameModeText("New School v1.0.0");
  187. EnableStuntBonusForAll(0); //////////0- iskljuceno | 1- ukljuceno///////////
  188. return 1;
  189. }
  190. ////////////////////////////////////kaciga system////////////////////////////////////
  191. CMD:kaciga(playerid,params[])
  192. {
  193. SetPlayerAttachedObject(playerid,0,18645,2,0.101, -0.0, 0.0, 5.50, 84.60, 83.7, 1, 1, 1);
  194. GameTextForPlayer(playerid,"Uspesno si stavio kacigu",2000,3);
  195. SendClientMessage(playerid,h_BLUE,"[Kaciga_System] > Da skinete kacigu koristite /kacigaoff");
  196. return 1;
  197. }
  198. CMD:kacigaoff(playerid,params[])
  199. {
  200. RemovePlayerAttachedObject(playerid,0);
  201. GameTextForPlayer(playerid,"Uspesno si skinuo kacigu",2000,3);
  202. return 1;
  203. }
  204. ////////////////////////////Da vozac nema gun dok vozi//////////////////////////
  205. public OnPlayerStateChange(playerid, newstate, oldstate)
  206. {
  207. if(newstate == PLAYER_STATE_DRIVER) return SetPlayerArmedWeapon(playerid,0);
  208. return 1;
  209. }
  210. //
  211. stock GetName(id)
  212. {
  213. new name[MAX_PLAYER_NAME];
  214. GetPlayerName(id, name, sizeof(name));
  215. return name;
  216. }
  217. //////////////////////////////////////BUS VOZAC POSAO///////////////////////////
  218. new Zaposlen[MAX_PLAYERS];
  219. new CP1;
  220. new CP2;
  221. new CP3;
  222. //////////////////////////////////////goto//////////////////////////////////////
  223. CMD:goto(playerid,params[])
  224. {
  225. if(aduty[playerid] == 0) return SCM(playerid,-1,"Nisi na Admin duznosti!");
  226. if(PlayerInfo[playerid][pAdmin] >=1)
  227. {
  228. new id;
  229. if(sscanf(params,"u",id)) return SCM(playerid,-1,"/goto [ID igraca/Deo imena]");
  230. if(!IsPlayerConnected(id)) return SCM(playerid,-1,"Igrac nije konektovan!");
  231.  
  232. new Float:x,Float:y,Float:z;
  233. GetPlayerPos(id,x,y,z);
  234. SetPlayerPos(playerid, x, y, z);
  235.  
  236. if(IsPlayerInAnyVehicle(playerid))
  237. {
  238. SetVehiclePos(GetPlayerVehicleID(playerid),x,y,z);
  239. }
  240. }
  241. return 1;
  242. }
  243. ///////////////////////////////////// kick ////////////////////////////////////
  244. CMD:kick(playerid, params[])
  245. {
  246. if(PlayerInfo[playerid][pAdmin] > 0)
  247. {
  248. new id,
  249. reason[16];
  250. if(sscanf(params, "us[16]", id, reason)) return SendClientMessage(playerid, -1, "/kick <id> <razlog>");
  251. if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, h_RED, "ID nije konektovan.");
  252. if(strlen(reason) < 1 || strlen(reason) > 16) return SendClientMessage(playerid, h_RED, "Razlog ne moze biti manji od 1 i vise od 16 karaktera.");
  253.  
  254. new str[40+MAX_PLAYER_NAME];
  255. format(str, sizeof(str), "* Kickovani ste sa servera od strane %s.", GetName(playerid));
  256. SendClientMessage(id, 0xAAFF00FF, str);
  257.  
  258. format(str, sizeof(str), "* Kickovali ste %s sa servera.", GetName(id));
  259. SendClientMessage(playerid, 0xAAFF00FF, str);
  260.  
  261. SetTimerEx("KickPlayer", 200, false, "i", id);
  262. }
  263. else SendClientMessage(playerid, h_RED, "Niste ovlasceni.");
  264. return 1;
  265. }
  266.  
  267. forward KickPlayer(id);
  268. public KickPlayer(id)
  269. {
  270. Kick(id);
  271. return 1;
  272. }
  273. /////////////////////////////////////aduty//////////////////////////////////////
  274. CMD:adminduty(playerid,params[])
  275. {
  276. if(PlayerInfo[playerid][pAdmin] >=1)
  277. {
  278. if(aduty[playerid] == 0)
  279. {
  280. new str[100];
  281. format(str,sizeof(str),"Admin %s je na duznosti!",GetName(playerid));
  282. SCMTA(-1,str);
  283. SetPlayerHealth(playerid,99);
  284. SetPlayerArmour(playerid,99);
  285. aduty[playerid] = 1;
  286. }
  287. else if(aduty[playerid] == 1)
  288. {
  289. new str1[100];
  290. format(str1,sizeof(str1),"Admin %s vise nije na duznosti!",GetName(playerid));
  291. SCMTA(-1,str1);
  292. SetPlayerHealth(playerid,99);
  293. SetPlayerArmour(playerid,99);
  294. aduty[playerid] = 0;
  295. }
  296. }
  297. return 1;
  298. }
  299. ///////////////////////////////////// postaviadmina ////////////////////////////
  300. CMD:postaviadmina(playerid,params[])
  301. {
  302. if(IsPlayerAdmin(playerid))
  303. {
  304. new targetid,level;
  305. if(sscanf(params,"ud",targetid,level)) return SCM(playerid,-1,"/postaviadmina [ID igraca/Deo imena] [Admin Level]");
  306. if(!IsPlayerConnected(targetid)) return SCM(playerid,-1,"Igrac nije na serveru!");
  307. if(level >5 || level <1) return SCM(playerid,-1,"Najveci admin level je 5, a najmanji 1!");
  308.  
  309. new str[100];
  310. format(str,sizeof(str), "Postavili ste admin level %d igracu %s!", level, GetName(targetid));
  311. SCM(playerid,-1,str);
  312.  
  313. format(str,sizeof(str),"Admin %s te je promovisao na admin level %d!", GetName(playerid), level);
  314. SCM(targetid,-1,str);
  315.  
  316. PlayerInfo[targetid][pAdmin] = level;
  317. }
  318. else
  319. {
  320. SCM(playerid,-1,"Niste ovlasceni da koristite ovu komandu!");
  321. }
  322. return 1;
  323. }
  324. ///////////////////////////////////// clearchat ////////////////////////////////
  325. CMD:clearchat(playerid,params[])
  326. {
  327. if(IsPlayerAdmin(playerid))
  328. {
  329. for(new i = 0; i < 99; i++) SendClientMessageToAll(-1, " ");
  330.  
  331. new str[50+MAX_PLAYER_NAME];
  332. format(str, sizeof(str), "[SERVER]: Chat je obrisan od strane admina %s!", GetName(playerid));
  333. SendClientMessageToAll(h_BLUE, str);
  334. }
  335. else SendClientMessage(playerid, h_RED, "[SERVER]: Niste ovlasceni da koristite ovu komandu!");
  336. return 1;
  337. }
  338. ///////////////////////////////////// kill /////////////////////////////////////
  339. CMD:kill(playerid,params[])
  340. {
  341. SetPlayerHealth(playerid, 0);
  342. return 1;
  343. }
  344. /////////////////////////////////// jet pack ///////////////////////////////////
  345. CMD:jpack(playerid,params[])
  346. {
  347. if(IsPlayerAdmin(playerid))
  348. {
  349. SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
  350. SCM(playerid,h_BLUE,"[NS:RP] Uzeo si jetpack!");
  351. }
  352. else
  353. {
  354. SCM(playerid,h_RED,"[NS:RP]Nisi admin!");
  355. }
  356. return 1;
  357. }
  358. /////////////////////////////// komanda me /////////////////////////////////////
  359. CMD:me(playerid, params[])
  360. {
  361. if(IsPlayerConnected(playerid))
  362. {
  363. new
  364. MeTxT,
  365. string[180],
  366. Ime[MAX_PLAYER_NAME];
  367. GetPlayerName(playerid, Ime, sizeof(Ime));
  368. if(sscanf(params, "s", MeTxT)) return SendClientMessage(playerid, h_BLUE, "/me [Text]");
  369. format(string, sizeof(string), " * %s %s", Ime, MeTxT);
  370. ProxDetector(30, playerid, string, h_BLUE, h_BLUE, h_BLUE, h_BLUE, h_BLUE);
  371. }
  372. return false;
  373. }
  374. ///////////////////////////////// komanda do ///////////////////////////////////
  375.  
  376. //////////////////////////////// ProxDetector //////////////////////////////////
  377. stock ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
  378. {
  379. if(IsPlayerConnected(playerid))
  380. {
  381. new Float:posx, Float:posy, Float:posz;
  382. new Float:oldposx, Float:oldposy, Float:oldposz;
  383. new Float:tempposx, Float:tempposy, Float:tempposz;
  384. GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  385. for(new i=0; i<MAX_PLAYERS; i++)
  386. {
  387. if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
  388. {
  389. GetPlayerPos(i, posx, posy, posz);
  390. tempposx = (oldposx -posx);
  391. tempposy = (oldposy -posy);
  392. tempposz = (oldposz -posz);
  393. if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
  394. {
  395. SendClientMessage(i, col1, string);
  396. }
  397. else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
  398. {
  399. SendClientMessage(i, col2, string);
  400. }
  401. else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
  402. {
  403. SendClientMessage(i, col3, string);
  404. }
  405. else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
  406. {
  407. SendClientMessage(i, col4, string);
  408. }
  409. else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  410. {
  411. SendClientMessage(i, col5, string);
  412. }
  413. }
  414. }
  415. }
  416. return 1;
  417. }
  418. /////////////////////////////////////// Rent System ////////////////////////////
  419. ////////////////////////////////////////////////////////////////////////////////
  420. public OnPlayerCommandText(playerid, cmdtext[])
  421. {
  422. if(strcmp("/pare", cmdtext, true, 10) == 0)
  423. {
  424. GivePlayerMoney(playerid, 20000);
  425. return 1;
  426. }
  427. if(strcmp("/prevoziputnike", cmdtext, true, 10) == 0)
  428. {
  429. new vehicleid = GetPlayerVehicleID(playerid);
  430. if(Zaposlen[playerid] == 0 && GetVehicleModel(vehicleid) 437 || GetVehicleModel(vehicleid) 431
  431. {
  432. Zaposlen[playerid] = 1;
  433. new name[MAX_PLAYER_NAME], string[48];
  434. GetPlayerName(playerid, name, sizeof(name));
  435. format(string,sizeof(string,"%s je poceo bus vozaca!", name);
  436. SCMTA(playerid,string);
  437. TogglePlayerDinamicRaceCP(playerid,CP1,1);
  438. }
  439. else if(Zaposlen[playerid] == 1);
  440. {
  441. SCM(playerid,-1,"Vec si zaposlen !");
  442. }
  443. else
  444. {
  445. SCM(playerid,-1,"Ili nsi u autobusu!");
  446. }
  447. return 1;
  448. }
  449. return 0;
  450. }
  451. public OnPlayerEnterDynamicRaceCP(playerid,checkpointid)
  452. {
  453. if(checkpointid == CP1)
  454. {
  455. TogglePlayerDynamicRaceCP(playerid,CP1,0);
  456. TogglePlayerDinamicRaceCP(playerid,CP2,1);
  457. TogglePlayerDinamicRaceCP(playerid,0);
  458. SetTimerEx("UnfreezePlayer",3000,false,"d",playerid);
  459. GameTextForPlayer,"~d~LOADING...",1500,6);
  460. }
  461. if(checkpointid == CP2)
  462. {
  463. TogglePlayerDynamicRaceCP(playerid,CP2,0);
  464. TogglePlayerDinamicRaceCP(playerid,CP3,1);
  465. TogglePlayerDinamicRaceCP(playerid,0);
  466. SetTimerEx("UnfreezePlayer",3000,false,"d",playerid);
  467. GameTextForPlayer,"~d~LOADING...",1500,6);
  468. }
  469. if(checkopintid == Kraj)
  470. {
  471. TogglePlayerAllDynamicRaceCPs(playerid,0);
  472. Zaposlen[playerid] = 0
  473. SendClientMessage(playerid,h_BLUE,"Uspesno si prevezao putnike, zaradio si 5000$!");
  474. GivePlayerMoney(playerid,5000);
  475. TogglePlayerDinamicRaceCP(playerid,0);
  476. SetTimerEx("UnfreezePlayer",3000,false,"d",playerid);
  477. GameTextForPlayer,"~d~UNLOADING...",1500,6);
  478. }
  479. return 1;
  480. }
Advertisement
Add Comment
Please, Sign In to add comment