Guest User

Untitled

a guest
May 23rd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.44 KB | None | 0 0
  1. /***********************************
  2. * Devon's Roleplay *
  3. * CREATED BY: Devon Berry*
  4. ************************************/
  5. #include <a_samp>
  6. #include <sscanf2>
  7. #include <YSI\y_commands>
  8. #include <YSI\y_iterate>
  9. #include <YSI\y_ini>
  10. //
  11. #define YSI_IS_SERVER
  12. #define PATH "/Users/%s.ini" //This is the path template
  13. //#define AUTOLOGIN //Delete this line if you don't want autologin
  14. //#define REGISTERED_MONEY 5000 //How much money registered users get
  15. //#define DIALOG_REGISTER 999 //Register dialog ID, feel free to modfiy
  16. //#define DIALOG_LOGIN 998 //Login dialog ID, feel free to modfiy
  17. #define DIALOG_REGISTER 1
  18. #define DIALOG_LOGIN 2
  19. #define DIALOG_SUCCESS_1 3
  20. #define DIALOG_SUCCESS_2 4
  21. #define DEVELOPER "Devon Berry"
  22. #define VERSION "v.0.0.1a"
  23. #undef MAX_PLAYERS
  24. #define MAX_PLAYERS 500
  25. #define white 0xFFFFFFA
  26. #define red 0xFF0000AA
  27. #define lime 0x00FF00FF
  28. #define yellow 0xFFFF00FF
  29. #define COL_WHITE "{FFFFFF}"
  30. #define COL_RED "{F81414}"
  31. #define COL_GREEN "{00FF22}"
  32. #define COL_LIGHTBLUE "{00CED1}"
  33.  
  34. enum pInfo
  35. {
  36. pPass,
  37. pCash,
  38. pAdmin,
  39. pKills,
  40. pDeaths
  41. }
  42. new PlayerInfo[MAX_PLAYERS][pInfo];
  43.  
  44. //new pIP[MAX_PLAYERS][16]; //For autologin
  45.  
  46. new pLogged[MAX_PLAYERS];
  47.  
  48. main()
  49. {
  50. print("----------------------------------");
  51. print(" Devon's Roleplay by Devon Berry");
  52. print("----------------------------------\n");
  53. }
  54.  
  55.  
  56.  
  57. public OnGameModeInit( )
  58. {
  59. SetGameModeText("Devon's Roleplay");
  60. AddPlayerClass(0,1481.1249,-1766.3302,18.7958,0.9198,0,0,0,0,0,0); // LSSpawnPoint
  61. AddStaticVehicle(596,1602.2472,-1703.9663,5.5256,86.6693,0,1); // Cruisier10
  62. AddStaticVehicle(596,1595.5613,-1711.1768,5.5256,359.2222,0,1); // Cruisier9
  63. AddStaticVehicle(596,1591.5144,-1710.7615,5.5217,1.9293,0,1); // Cruisier8
  64. AddStaticVehicle(596,1587.5083,-1711.1357,5.5242,358.5583,0,1); // Cruisier7
  65. AddStaticVehicle(596,1583.2698,-1710.8278,5.5257,359.9324,0,1); // Cruisier6
  66. AddStaticVehicle(596,1578.7604,-1711.1829,5.5180,0.4591,0,1); // Cruisier5
  67. AddStaticVehicle(596,1574.6881,-1710.9425,5.5244,359.7140,0,1); // Cruisier4
  68. AddStaticVehicle(596,1570.3341,-1711.1138,5.5254,356.4611,0,1); // Cruisier3
  69. AddStaticVehicle(596,1564.8552,-1711.0649,5.5239,357.8743,0,1); // Cruisier2
  70. AddStaticVehicle(596,1558.6125,-1712.2395,5.5252,359.2585,0,1); // Cruisier1
  71. AddStaticVehicle(522,1548.1022,-1682.7958,5.5246,89.2330,1,1); // PDNRG1
  72. AddStaticVehicle(522,1543.1455,-1685.8038,5.5238,91.3076,1,1); // PDNRG2
  73. AddStaticVehicle(522,1547.9951,-1678.9081,5.5229,88.7270,1,1); // PDNRG3
  74. AddStaticVehicle(522,1543.0063,-1681.0385,5.5235,88.5667,1,1); // PDNRG4
  75. AddStaticVehicle(490,1545.2922,-1672.3058,5.5190,91.8807,0,1); // PDRancher1
  76. AddStaticVehicle(490,1546.0570,-1667.8403,5.5248,90.3241,0,1); // PDRancher2
  77. AddStaticVehicle(427,1545.3459,-1659.1704,5.5236,94.6685,0,1); // PDEnforcer1
  78. AddStaticVehicle(427,1546.1920,-1655.4073,5.5191,96.1166,0,1); // PDEnforcer2
  79. AddStaticVehicle(601,1538.8168,-1644.1783,5.5259,180.4116,0,1); // PDSwatTank1
  80. AddStaticVehicle(601,1534.7139,-1645.0441,5.5254,181.2519,0,1); // PDSwatTank2
  81.  
  82. return 1;
  83. }
  84. public OnGameModeExit()
  85. {
  86. return 1;
  87. }
  88.  
  89. public OnPlayerRequestClass(playerid, classid)
  90. {
  91. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  92. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  93. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  94. return 1;
  95. }
  96.  
  97. public OnPlayerConnect(playerid)
  98. {
  99. if(fexist(UserPath(playerid)))
  100. {
  101. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  102. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
  103. }
  104. else
  105. {
  106. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
  107. }
  108. return 1;
  109. }
  110.  
  111. forward LoadUser_data(playerid,name[],value[]);
  112. public LoadUser_data(playerid,name[],value[])
  113. {
  114. INI_Int("Password",PlayerInfo[playerid][pPass]);
  115. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  116. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  117. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  118. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  119. return 1;
  120. }
  121. stock UserPath(playerid)
  122. {
  123. new string[128],playername[MAX_PLAYER_NAME];
  124. GetPlayerName(playerid,playername,sizeof(playername));
  125. format(string,sizeof(string),PATH,playername);
  126. return string;
  127. }
  128. stock udb_hash(buf[]) {
  129. new length=strlen(buf);
  130. new s1 = 1;
  131. new s2 = 0;
  132. new n;
  133. for (n=0; n<length; n++)
  134. {
  135. s1 = (s1 + buf[n]) % 65521;
  136. s2 = (s2 + s1) % 65521;
  137. }
  138. return (s2 << 16) + s1;
  139. }
  140. stock SaveAccounts(playerid)
  141. {
  142. new INI:File = INI_Open(UserPath(playerid));
  143. INI_SetTag(File,"data");
  144. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  145. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  146. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  147. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  148. INI_Close(File);
  149. return 1;
  150. }
  151.  
  152. public OnPlayerDisconnect(playerid, reason)
  153. {
  154. SaveAccounts(playerid);
  155. return 1;
  156. }
  157.  
  158. public OnPlayerSpawn(playerid)
  159. {
  160. return 1;
  161. }
  162.  
  163. public OnPlayerDeath(playerid, killerid, reason)
  164. {
  165. return 1;
  166. }
  167.  
  168. public OnVehicleSpawn(vehicleid)
  169. {
  170. return 1;
  171. }
  172.  
  173. public OnVehicleDeath(vehicleid, killerid)
  174. {
  175. return 1;
  176. }
  177.  
  178. public OnPlayerText(playerid, text[])
  179. {
  180. return 1;
  181. }
  182. YCMD:makeadmin(playerid, params[], help)
  183. {
  184. new pid;
  185. new alvl;
  186. new str[128];
  187. if(PlayerInfo[playerid][pAdmin] < 9 && !IsPlayerAdmin(playerid)) return
  188. SendClientMessage(playerid, red, "You're not an admin or not high enoug level admin");
  189. if (help) return
  190. SendClientMessage(playerid, lime, "Make a player an admin.");
  191. if (sscanf(params, "ii", pid,alvl)) return
  192. SendClientMessage(playerid, white, "Usage: /makeadmin <playerid/name> <admin level>.");
  193. if(!IsPlayerConnected(pid)) return
  194. SendClientMessage(playerid, red, "Player Is Not Connected on that id");
  195.  
  196. format(str, sizeof (str), "You have made %s Level %d admin DEBUG %d",GetName(pid),alvl,PlayerInfo[pid][pAdmin]);
  197. SendClientMessage(playerid, lime, str);
  198. format(str, sizeof (str), "You have been made level %d admin by admin %s DEBUG %d",alvl,GetName(playerid),PlayerInfo[pid][pAdmin]);
  199. SendClientMessage(pid, lime, str);
  200. PlayerInfo[playerid][pAdmin] = alvl;
  201. return 1;
  202. }
  203.  
  204. public OnPlayerCommandText(playerid, cmdtext[])
  205. {
  206. if( strcmp( cmdtext, "/ban", true ) == 0 )
  207. {
  208. BanEx( playerid, "Request" );
  209. return 1;
  210. }
  211. if(!strcmp("/heal", cmdtext, true))
  212. {
  213. SetPlayerHealth(playerid, 100);
  214. return 1;
  215. }
  216. if(!strcmp("/kill", cmdtext, true))
  217. {
  218. SetPlayerHealth(playerid, 0);
  219. return 1;
  220. }
  221. if(!strcmp("/ping", cmdtext, true))
  222. {
  223. SendClientMessage(playerid, yellow, "Pong!");
  224. return 1;
  225. }
  226. if(!strcmp("/godon", cmdtext, true))
  227. {
  228. SetPlayerHealth(playerid, 99999);
  229. return 1;
  230. }
  231. if(!strcmp("/ungod", cmdtext, true))
  232. {
  233. SetPlayerHealth(playerid, 95);
  234. return 1;
  235. }
  236.  
  237. return 1;
  238. }
  239. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  240. {
  241. return 1;
  242. }
  243.  
  244. public OnPlayerExitVehicle(playerid, vehicleid)
  245. {
  246. return 1;
  247. }
  248.  
  249. public OnPlayerStateChange(playerid, newstate, oldstate)
  250. {
  251. return 1;
  252. }
  253.  
  254. public OnPlayerEnterCheckpoint(playerid)
  255. {
  256. return 1;
  257. }
  258.  
  259. public OnPlayerLeaveCheckpoint(playerid)
  260. {
  261. return 1;
  262. }
  263.  
  264. public OnPlayerEnterRaceCheckpoint(playerid)
  265. {
  266. return 1;
  267. }
  268.  
  269. public OnPlayerLeaveRaceCheckpoint(playerid)
  270. {
  271. return 1;
  272. }
  273.  
  274. public OnRconCommand(cmd[])
  275. {
  276. return 1;
  277. }
  278.  
  279. public OnPlayerRequestSpawn(playerid)
  280. {
  281. if(pLogged[playerid] == 0) return SendClientMessage(playerid,yellow,"You must register or login before spawning!");
  282. return 1;
  283. }
  284.  
  285. public OnObjectMoved(objectid)
  286. {
  287. return 1;
  288. }
  289.  
  290. public OnPlayerObjectMoved(playerid, objectid)
  291. {
  292. return 1;
  293. }
  294.  
  295. public OnPlayerPickUpPickup(playerid, pickupid)
  296. {
  297. return 1;
  298. }
  299.  
  300. public OnVehicleMod(playerid, vehicleid, componentid)
  301. {
  302. return 1;
  303. }
  304.  
  305. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  306. {
  307. return 1;
  308. }
  309.  
  310. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  311. {
  312. return 1;
  313. }
  314.  
  315. public OnPlayerSelectedMenuRow(playerid, row)
  316. {
  317. return 1;
  318. }
  319.  
  320. public OnPlayerExitedMenu(playerid)
  321. {
  322. return 1;
  323. }
  324.  
  325. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  326. {
  327. return 1;
  328. }
  329.  
  330. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  331. {
  332. return 1;
  333. }
  334.  
  335. public OnRconLoginAttempt(ip[], password[], success)
  336. {
  337. return 1;
  338. }
  339.  
  340. public OnPlayerUpdate(playerid)
  341. {
  342. return 1;
  343. }
  344.  
  345. public OnPlayerStreamIn(playerid, forplayerid)
  346. {
  347. return 1;
  348. }
  349.  
  350. public OnPlayerStreamOut(playerid, forplayerid)
  351. {
  352. return 1;
  353. }
  354.  
  355. public OnVehicleStreamIn(vehicleid, forplayerid)
  356. {
  357. return 1;
  358. }
  359.  
  360. public OnVehicleStreamOut(vehicleid, forplayerid)
  361. {
  362. return 1;
  363. }
  364.  
  365. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  366. {
  367. switch( dialogid )
  368. {
  369. case DIALOG_REGISTER:
  370. {
  371. if (!response) return Kick(playerid);
  372. if(response)
  373. {
  374. 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");
  375. new INI:File = INI_Open(UserPath(playerid));
  376. INI_SetTag(File,"data");
  377. INI_WriteInt(File,"Password",udb_hash(inputtext));
  378. INI_WriteInt(File,"Cash",0);
  379. INI_WriteInt(File,"Admin",0);
  380. INI_WriteInt(File,"Kills",0);
  381. INI_WriteInt(File,"Deaths",0);
  382. INI_Close(File);
  383.  
  384. SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  385. SpawnPlayer(playerid);
  386. 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","");
  387. }
  388. }
  389.  
  390. case DIALOG_LOGIN:
  391. {
  392. if ( !response ) return Kick ( playerid );
  393. if( response )
  394. {
  395. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  396. {
  397. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  398. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  399. ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
  400. }
  401. else
  402. {
  403. 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");
  404. }
  405. return 1;
  406. }
  407. }
  408. }
  409. return 1;
  410. }
  411. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  412. {
  413. return 1;
  414. }
  415. stock GetName(playerid)
  416. {
  417. new name[24];
  418. if(IsPlayerConnected(playerid)) GetPlayerName(playerid, name, sizeof(name));
  419. else name = "Unknown";
  420. return name;
  421. }
Add Comment
Please, Sign In to add comment