Guest User

Untitled

a guest
Jun 20th, 2018
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.16 KB | None | 0 0
  1. //Include
  2. #include <a_samp>
  3. #include <zcmd>
  4. #include <sscanf2>
  5. #include <foreach>
  6. #include <fly>
  7. #include <YSI/y_ini>
  8. //Define
  9. #define SCM SendClientMessage
  10.  
  11. #define COLOR_JOBINFO 0xF6FF00FF
  12. #define COLOR_ERROR 0xFF0000FF
  13. #define COLOR_PLAYERINFO 0xF6FF00FF
  14.  
  15. #define JOB_NAME1 "Busdriver"
  16. #define JOB_VEH1 431
  17.  
  18. #define DIALOG_TP 1
  19.  
  20. #define Register 2
  21. #define Login 3
  22. #define Sfolder "/Utilizatori/%s.ini"
  23.  
  24. main() {
  25.  
  26. }
  27.  
  28. enum pINF
  29. {
  30. pPass, pCash,
  31. pAdmin, pKills,
  32. pDeaths
  33. }
  34. new PlayerInfo[MAX_PLAYERS][pINF];
  35. //Server
  36. new playerAdmin[MAX_PLAYERS];
  37. new
  38. PlayerJob[MAX_PLAYERS],
  39. Checkpoint[MAX_PLAYERS],
  40. JobVehicle[MAX_PLAYERS],
  41. JobWorking[MAX_PLAYERS];
  42.  
  43. new
  44. VehSpawn[MAX_PLAYERS];
  45. //Publics
  46. public OnGameModeInit()
  47. {
  48. new string[256];
  49. format(string, sizeof(string), "Job %s\n{0xFF0000FF}[/getjob]", JOB_NAME1);
  50. Create3DTextLabel(string, -1, 1629.2684,972.1755,10.8203, 10.0, 0, 0);
  51. CreatePickup(1239, 23,1629.2684,972.1755,10.8203, 0);
  52.  
  53. SetGameModeText("v0.0.1");
  54. AddPlayerClass(0,2127.5479,2362.7981,10.8203,181.6954,0,0,0,0,0,0);
  55. return 1;
  56. }
  57.  
  58. public OnGameModeExit()
  59. {
  60. return 1;
  61. }
  62.  
  63. public OnPlayerRequestClass(playerid, classid)
  64. {
  65. return 1;
  66. }
  67.  
  68. public OnPlayerConnect(playerid)
  69. {
  70. if(fexist(UserPath(playerid)))
  71. {
  72. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  73. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Login","Scrie parola mai jos pentru a te loga.","Login","Quit");
  74. }
  75. else
  76. {
  77. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Registering...","Scrie parola mai jos pentru a creea un cont nou !!","Register","Quit");
  78. }
  79.  
  80. PlayerJob[playerid] = 0;
  81. Checkpoint[playerid] = 0;
  82. JobVehicle[playerid] = 0;
  83. JobWorking[playerid] = 0;
  84. return 1;
  85. }
  86.  
  87. public OnPlayerDisconnect(playerid, reason)
  88. {
  89. new INI:File = INI_Open(UserPath(playerid));//Functia care deschide salvarea
  90. INI_SetTag(File,"data");Functia care scrie tagul
  91. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));Functia ce salveaza statsticile
  92. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);Functia ce salveaza statsticile
  93. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);Functia ce salveaza statsticile
  94. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);Functia ce salveaza statsticile
  95. INI_Close(File);Functia ce inchide salvarea
  96.  
  97. if(JobWorking[playerid] == 1) FailJob(playerid, "Deconecatre!");
  98. return 1;
  99. }
  100.  
  101. public OnPlayerSpawn(playerid)
  102. {
  103. if(JobWorking[playerid] == 1) FailJob(playerid, "Ai fost respawnat!");
  104. return 1;
  105. }
  106.  
  107. public OnPlayerDeath(playerid, killerid, reason)
  108. {
  109. PlayerInfo[killerid][pKills]++;
  110. PlayerInfo[playerid][pDeaths]++;
  111.  
  112. if(JobWorking[playerid] == 1) FailJob(playerid, "Ai murit!");
  113. return 1;
  114. }
  115.  
  116. public OnVehicleSpawn(vehicleid)
  117. {
  118. return 1;
  119. }
  120.  
  121. public OnVehicleDeath(vehicleid, killerid)
  122. {
  123. return 1;
  124. }
  125.  
  126. public OnPlayerText(playerid, text[])
  127. {
  128. return 1;
  129. }
  130.  
  131. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  132. {
  133. return 1;
  134. }
  135.  
  136. public OnPlayerExitVehicle(playerid, vehicleid)
  137. {
  138. return 1;
  139. }
  140.  
  141. public OnPlayerStateChange(playerid, newstate, oldstate)
  142. {
  143. if(newstate == PLAYER_STATE_ONFOOT) {
  144. FailJob(playerid, "Ai murit!");
  145. }
  146. return 1;
  147. }
  148.  
  149. public OnPlayerEnterCheckpoint(playerid)
  150. {
  151. new string[256];
  152. switch(Checkpoint[playerid]) {
  153. case 1: {
  154. DisablePlayerCheckpoint(playerid);
  155. Checkpoint[playerid] = 0;
  156. SCM(playerid, COLOR_JOBINFO, "Foloseste comanda /work");
  157. }
  158. case 2: SetPlayerCheckpoint(playerid, 1603.5635,1126.4496,10.8203, 5.0), Checkpoint[playerid] ++;
  159. case 3: SetPlayerCheckpoint(playerid, 2081.9727,2458.6226,10.8203, 5.0), Checkpoint[playerid] ++;
  160. case 4: SetPlayerCheckpoint(playerid, 1653.6163,915.3739,10.6653, 5.0), Checkpoint[playerid] ++;
  161. case 5: {
  162. DisablePlayerCheckpoint(playerid);
  163. Checkpoint[playerid] = 0;
  164. new money = 50000 + random(50000);
  165. format(string, sizeof(string), "Ai terminat de muncit la jobul %s si ai primit suma de $%d", JOB_NAME1, money); <----- Eroarea pe care o am!
  166. SCM(playerid, COLOR_JOBINFO, string);
  167. GivePlayerMoney(playerid, money);
  168. FinishJob(playerid);
  169. }
  170. }
  171.  
  172. return 1;
  173. }
  174.  
  175. public OnPlayerLeaveCheckpoint(playerid)
  176. {
  177. return 1;
  178. }
  179.  
  180. public OnPlayerEnterRaceCheckpoint(playerid)
  181. {
  182. return 1;
  183. }
  184.  
  185. public OnPlayerLeaveRaceCheckpoint(playerid)
  186. {
  187. return 1;
  188. }
  189.  
  190. public OnRconCommand(cmd[])
  191. {
  192. return 1;
  193. }
  194.  
  195. public OnPlayerRequestSpawn(playerid)
  196. {
  197. return 1;
  198. }
  199.  
  200. public OnObjectMoved(objectid)
  201. {
  202. return 1;
  203. }
  204.  
  205. public OnPlayerObjectMoved(playerid, objectid)
  206. {
  207. return 1;
  208. }
  209.  
  210. public OnPlayerPickUpPickup(playerid, pickupid)
  211. {
  212. return 1;
  213. }
  214.  
  215. public OnVehicleMod(playerid, vehicleid, componentid)
  216. {
  217. return 1;
  218. }
  219.  
  220. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  221. {
  222. return 1;
  223. }
  224.  
  225. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  226. {
  227. return 1;
  228. }
  229.  
  230. public OnPlayerSelectedMenuRow(playerid, row)
  231. {
  232. return 1;
  233. }
  234.  
  235. public OnPlayerExitedMenu(playerid)
  236. {
  237. return 1;
  238. }
  239.  
  240. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  241. {
  242. return 1;
  243. }
  244.  
  245. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  246. {
  247. return 1;
  248. }
  249.  
  250. public OnRconLoginAttempt(ip[], password[], success)
  251. {
  252. return 1;
  253. }
  254.  
  255. public OnPlayerUpdate(playerid)
  256. {
  257. return 1;
  258. }
  259.  
  260. public OnPlayerStreamIn(playerid, forplayerid)
  261. {
  262. return 1;
  263. }
  264.  
  265. public OnPlayerStreamOut(playerid, forplayerid)
  266. {
  267. return 1;
  268. }
  269.  
  270. public OnVehicleStreamIn(vehicleid, forplayerid)
  271. {
  272. return 1;
  273. }
  274.  
  275. public OnVehicleStreamOut(vehicleid, forplayerid)
  276. {
  277. return 1;
  278. }
  279.  
  280. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  281. {
  282. switch(dialogid) {
  283. case DIALOG_TP: {
  284. if(!response) return SCM(playerid, COLOR_PLAYERINFO, "Ai inchis acest meniu!");
  285. switch(listitem) {
  286. case 0: SetPlayerPos(playerid, 1726.4785, -1912.1207, 13.5481);
  287. case 1: SetPlayerPos(playerid, 1719.7839, 1454.2864, 10.8036);
  288. case 2: SetPlayerPos(playerid, -1982.9357, 138.9342, 27.6555);
  289. }
  290. }
  291. }
  292. return 1;
  293. }
  294. switch( dialogid )
  295. {
  296. case Register:
  297. {
  298. if (!response)
  299. return Kick(playerid);
  300. if(response)
  301. {
  302. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "Inregistrare","Tu nu ai introdus nici o parola in casuta.\nScrie parola mai jos pentru a crea un cont nou!.","Register","Quit");
  303. new INI:File = INI_Open(UserPath(playerid));
  304. INI_SetTag(File,"data");
  305. INI_WriteInt(File,"Password",udb_hash(inputtext));
  306. INI_WriteInt(File,"Cash",0);
  307. INI_WriteInt(File,"Adminl",0);
  308. INI_WriteInt(File,"Kills",0);
  309. INI_WriteInt(File,"Deaths",0);
  310. INI_Close(File);
  311. SpawnPlayer(playerid);
  312. }
  313. }
  314.  
  315. case DIALOG_LOGIN:
  316. {
  317. if ( !response ) return Kick ( playerid );
  318. if( response )Aceasta functie il va lasa pe jucator sa intre pe server si ii va da statisticile inapoi!
  319. {
  320. if(udb_hash(inputtext) == PlayerInfo[playerid][parola])
  321. {
  322. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  323. GivePlayerMoney(playerid, PlayerInfo[playerid][money]);
  324. }
  325. else
  326. {
  327. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Login","Tu ai introdus o parola gresita!.\nScrie parola in casuta de mai jos!!.","Login","Quit");
  328. }
  329. return 1;
  330. }
  331. }
  332. }
  333. return 1;
  334. }
  335. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  336. {
  337. return 1;
  338. }
  339.  
  340. //CMD
  341. CMD:makeadmin(playerid, params[])
  342. {
  343. if(!IsPlayerAdmin(playerid))
  344. return SendClientMessage(playerid, -1, "Doar adminii RCON pot folosi aceasta comanda.");
  345.  
  346. new pID, adminLevel, str[128];
  347. if(sscanf(params,"ui", pID, adminLevel))
  348. return SendClientMessage(playerid, -1, "FOLOSIRE: /makeadmin [PlayerID] [Level]");
  349.  
  350. if(!IsPlayerConnected(pID))
  351. return SendClientMessage(playerid, -1, "Player-ul selectat nu este conectat.");
  352.  
  353. if(adminLevel < 0 || adminLevel > 6)
  354. return SendClientMessage(playerid, -1, "Admin level este gresit. Foloseste valori intre 0 si 6");
  355.  
  356. new name[MAX_PLAYER_NAME], pName[MAX_PLAYER_NAME];
  357. GetPlayerName(pID, name, sizeof name);
  358. GetPlayerName(playerid, pName, sizeof pName);
  359. playerAdmin[pID] = adminLevel;
  360. format(str, sizeof str, "Admin %s ti-a setat admin level la %i.", pName, playerAdmin[pID]);
  361. SendClientMessage(pID, -1, str);
  362. format(str, sizeof str, "Ai setat lui %s admin level la %i.", name, playerAdmin[pID]);
  363. SendClientMessage(playerid, -1, str);
  364. format(str, sizeof str, "Admin %s l-a facut pe %s admin level %i.", pName, name, playerAdmin[pID]);
  365. SendClientMessageToAll(-1, str);
  366. return 1;
  367. }
  368. CMD:fly(playerid, params[]) {
  369. if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
  370. InitFly(playerid);
  371. StartFly(playerid);
  372. SetPlayerHealth(playerid, 10000000);
  373. SCM(playerid, COLOR_PLAYERINFO, "Flymode ON.");
  374. return 1;
  375. }
  376. CMD:stopfly(playerid, params[]) {
  377. if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
  378. StopFly(playerid);
  379. SetPlayerHealth(playerid, 100);
  380. SCM(playerid, COLOR_PLAYERINFO, "Flymode OFF.");
  381. return 1;
  382. }
  383. CMD:heal(playerid, params[]) {
  384. if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
  385. SetPlayerHealth(playerid, 100);
  386. SCM(playerid, COLOR_PLAYERINFO, "Ti-ai setat viata la 100HP");
  387. return 1;
  388. }
  389. CMD:getjob(playerid, params[]) {
  390. if(PlayerJob[playerid] != 0) return SCM(playerid, COLOR_JOBINFO, "Ai deja un job!");
  391. new string[256];
  392. if(IsPlayerInRangeOfPoint(playerid, 2.0, 1629.2684,972.1755,10.8203)) {
  393. PlayerJob[playerid] = 1;
  394. format(string, sizeof(string), "Ai luat cu succes jobul %s", JOB_NAME1);
  395. SCM(playerid, COLOR_JOBINFO, string);
  396. }
  397. else {
  398. SCM(playerid, COLOR_JOBINFO, "Nu te aflii in jurul unui job!");
  399. }
  400. return 1;
  401. }
  402. CMD:quitjob(playerid, params[]) {
  403. if(PlayerJob[playerid] == 0) return SCM(playerid, COLOR_JOBINFO, "Nu ai niciun job!");
  404. if(JobWorking[playerid] == 1) FailJob(playerid, "Ai renuntat la job!");
  405. PlayerJob[playerid] = 0;
  406. SCM(playerid, COLOR_JOBINFO, "Ai demisionat cu succes!");
  407. return 1;
  408. }
  409. CMD:work(playerid, params[]) {
  410. if(PlayerJob[playerid] == 0) return SCM(playerid, COLOR_JOBINFO, "Nu ai niciun job!");
  411. switch(PlayerJob[playerid]) {
  412. case 1: {
  413. if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1652.0060,989.0849,10.8203)) {
  414. SCM(playerid, COLOR_JOBINFO, "Nu te aflii in zona unde poti folosi aceasta comanda!");
  415. SetPlayerCheckpoint(playerid, 1652.0060,989.0849,10.8203, 5.0);
  416. }
  417. JobVehicle[playerid] = CreateVehicle(JOB_VEH1, 1652.0060,989.0849,10.8203, 90, 205, 128, 100);
  418. PutPlayerInVehicle(playerid, JobVehicle[playerid], 0);
  419. JobWorking[playerid] = 1;
  420. Checkpoint[playerid] = 2;
  421. SetPlayerCheckpoint(playerid, 1664.7562,941.8705,10.6719, 5.0);
  422. }
  423. }
  424. return 1;
  425. }
  426. CMD:tp(playerid, params[]) {
  427. if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
  428. new zones[256];
  429. zones = "LosSantos\nLasVenturas\nSanFiero";
  430. ShowPlayerDialog(playerid, DIALOG_TP, DIALOG_STYLE_LIST, "Teleport List", zones, "Ok", "Cancel");
  431. return 1;
  432. }
  433. CMD:spawncar(playerid, params[]) {
  434. if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
  435. new model, color1, color2;
  436. if(sscanf(params, "iii", model, color1, color2)) return SCM(playerid, COLOR_ERROR, "Foloseste: /spawncar <model> <color1> <color2>");
  437. new Float: Pos[3];
  438. GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  439. new carid = CreateVehicle(model, Pos[0], Pos[1], Pos[2], 90, color1, color2, 300);
  440. VehSpawn[carid] = 1;
  441. SetVehicleNumberPlate(carid, "AdmCar:1501");
  442. PutPlayerInVehicle(playerid, carid, 0);
  443. return 1;
  444. }
  445. CMD:despawncar(playerid, params[]) {
  446. if(playerAdmin[playerid] < 1) return SCM(playerid, COLOR_ERROR, "Nu ai gradul necesar pentru aceasta comanda!");
  447. if(IsPlayerInAnyVehicle(playerid) && VehSpawn[GetPlayerVehicleID(playerid)] == 1) {
  448. VehSpawn[GetPlayerVehicleID(playerid)] = 0;
  449. DestroyVehicle(GetPlayerVehicleID(playerid));
  450. }
  451. else {
  452. new vehid;
  453. if(sscanf(params, "i", vehid)) return SCM(playerid, COLOR_ERROR, "Foloseste: /despawncar <carID>");
  454. if(VehSpawn[vehid] == 0) return SCM(playerid, COLOR_ERROR, "Id Invalid");
  455. VehSpawn[vehid] = 0;
  456. DestroyVehicle(vehid);
  457. }
  458. return 1;
  459. }
  460. //Forward
  461. forward FailJob(playerid, reason[]);
  462. public FailJob(playerid, reason[]) {
  463. new string[256];
  464. format(string, sizeof(string), "Munca ta a esuat! Motiv: %s", reason);
  465. SCM(playerid, COLOR_JOBINFO, string);
  466. DestroyVehicle(JobVehicle[playerid]);
  467. JobVehicle[playerid] = 0;
  468. JobWorking[playerid] = 0;
  469. DisablePlayerCheckpoint(playerid);
  470. Checkpoint[playerid] = 0;
  471. return 1;
  472. }
  473. forward FinishJob(playerid);
  474. public FinishJob(playerid) {
  475. DestroyVehicle(JobVehicle[playerid]);
  476. JobVehicle[playerid] = 0;
  477. JobWorking[playerid] = 0;
  478. DisablePlayerCheckpoint(playerid);
  479. Checkpoint[playerid] = 0;
  480. return 1;
  481. }
  482. forward LoadUser_data(playerid,name[],value[]);
  483. public LoadUser_data(playerid,name[],value[])
  484. {
  485. INI_Int("Password",PlayerInfo[playerid][pPass]);
  486. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  487. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  488. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  489. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  490. return 1;
  491. }
  492. stock udb_hash(buf[])
  493. {
  494. new length=strlen(buf);
  495. new s1 = 1;
  496. new s2 = 0;
  497. new n;
  498. for (n=0; n<length; n++)
  499. {
  500. s1 = (s1 + buf[n]) % 65521;
  501. s2 = (s2 + s1) % 65521;
  502. }
  503. return (s2 << 16) + s1;
  504. }
  505. stock UserPath(playerid)
  506. {
  507. new string[128],playername[MAX_PLAYER_NAME];
  508. GetPlayerName(playerid,playername,sizeof(playername));
  509. format(string,sizeof(string),Sfolder,playername);
  510. return string;
  511. }
Advertisement
Add Comment
Please, Sign In to add comment