Guest User

Untitled

a guest
May 23rd, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.86 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. #include <dudb>
  11. #include <dutils>
  12. //
  13. #define YSI_IS_SERVER
  14. #define PATH "/Users/%s.ini" //This is the path template
  15. #define AUTOLOGIN //Delete this line if you don't want autologin
  16. #define REGISTERED_MONEY 5000 //How much money registered users get
  17. #define DIALOG_REGISTER 999 //Register dialog ID, feel free to modfiy
  18. #define DIALOG_LOGIN 998 //Login dialog ID, feel free to modfiy
  19. #define DEVELOPER "Devon Berry"
  20. #define VERSION "v.0.0.1a"
  21. #undef MAX_PLAYERS
  22. #define MAX_PLAYERS 500
  23. #define white 0xFFFFFFA
  24. #define red 0xFF0000AA
  25. #define lime 0x00FF00FF
  26. #define yellow 0xFFFF00FF
  27.  
  28. enum iDetails {
  29. Admin,
  30. Pass,
  31. Cash,
  32. Score,
  33. Banned
  34. };
  35. new pInfo[MAX_PLAYERS][iDetails]; //Player data variable
  36.  
  37. new pIP[MAX_PLAYERS][16]; //For autologin
  38.  
  39. new pLogged[MAX_PLAYERS];
  40.  
  41. stock PlayerPath(playerid) { //This will give us faster access to a player's path
  42. new iStr[256],name[MAX_PLAYER_NAME];
  43. GetPlayerName(playerid,name,sizeof(name));
  44. format(iStr,sizeof(iStr),PATH,name);
  45. return iStr;
  46. }
  47. //ret_memcpy
  48. #pragma unused ret_memcpy
  49. //
  50. //
  51. //
  52. #if defined FILTERSCRIPT
  53.  
  54. public OnFilterScriptInit()
  55. {
  56. print("\n--------------------------------------");
  57. print(" Blank Filterscript by your name here");
  58. print("--------------------------------------\n");
  59. return 1;
  60. }
  61.  
  62. public OnFilterScriptExit()
  63. {
  64. return 1;
  65. }
  66.  
  67. #else
  68.  
  69. main()
  70. {
  71. print("----------------------------------");
  72. print(" Devon's Roleplay by Devon Berry");
  73. print("----------------------------------\n");
  74. }
  75.  
  76. #endif
  77.  
  78. public OnGameModeInit( )
  79. {
  80. SetGameModeText("Devon's Roleplay");
  81. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  82. CreateVehicle(522, 2031.0605,1341.8604,10.8203,269.1425, 0, 1, 10);
  83. CreateVehicle(522, 2032.3540,1345.7288,10.8203,269.1425, 0, 1, 10);
  84. CreateVehicle(522, 2032.2759,1349.8374,10.8203,269.1425, 0, 1, 10);
  85. AddStaticPickup(370, 2, 2043.1144,1347.8854,10.6719, 0);
  86. AddStaticPickup(370, 2, 2044.1238,1342.3085,10.6719, 0);
  87. AddStaticPickup(370, 2, 2045.1534,1338.3842,10.6719, 0);
  88.  
  89. return 1;
  90. }
  91. public OnGameModeExit()
  92. {
  93. return 1;
  94. }
  95.  
  96. public OnPlayerRequestClass(playerid, classid)
  97. {
  98. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  99. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  100. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  101. return 1;
  102. }
  103.  
  104. public OnPlayerConnect(playerid)
  105. {
  106. pLogged[playerid] = 0;
  107. #if defined AUTOLOGIN
  108. new tmpIP[16];
  109. GetPlayerIp(playerid,tmpIP,sizeof(tmpIP)); //Getting IP
  110. #endif
  111. if(fexist(PlayerPath(playerid))) {
  112. INI_ParseFile(PlayerPath(playerid), "UserDataLoad_%s", .bExtra = true, .extra = playerid); //Calling loading callback
  113. #if defined AUTOLOGIN
  114. if(strcmp(tmpIP,pIP[playerid],true) == 0) { //Checking if the IPs match
  115. pLogged[playerid] = 1;
  116. SetPlayerScore(playerid,pInfo[playerid][Score]);
  117. GivePlayerMoney(playerid,pInfo[playerid][Cash]);
  118. SendClientMessage(playerid,lime,"You've been auto-logged in. [IP match]");
  119. SpawnPlayer(playerid);
  120. return 1;
  121. }
  122. #endif
  123. ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Please enter your password below.","Login","Leave");
  124. } else {
  125. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Please register by entering a password below.","Register","Leave");
  126. }
  127. return 1;
  128. }
  129.  
  130. forward UserDataLoad_data(playerid,name[],value[]);
  131.  
  132. public UserDataLoad_data(playerid,name[],value[]) { //This loads the settings from the INI file
  133. INI_Int("Pass",pInfo[playerid][Pass]);
  134. INI_String("IP",pIP[playerid],16);
  135. INI_Int("Admin",pInfo[playerid][Admin]);
  136. INI_Int("Cash",pInfo[playerid][Cash]);
  137. INI_Int("Score",pInfo[playerid][Score]);
  138. INI_Int("Banned",pInfo[playerid][Banned]);
  139. return 1;
  140. }
  141.  
  142. public OnPlayerDisconnect(playerid, reason)
  143. {
  144. if(pLogged[playerid] == 1) {
  145. new INI:iFile = INI_Open(PlayerPath(playerid));
  146. INI_SetTag(iFile,"data");
  147. INI_WriteInt(iFile,"Cash",GetPlayerMoney(playerid));
  148. INI_WriteInt(iFile,"Score",GetPlayerScore(playerid));
  149. INI_WriteInt(iFile,"Admin",pInfo[playerid][Admin]);
  150. INI_Close(iFile);
  151. }
  152. pLogged[playerid] = 0;
  153. return 1;
  154. }
  155.  
  156. public OnPlayerSpawn(playerid)
  157. {
  158. return 1;
  159. }
  160.  
  161. public OnPlayerDeath(playerid, killerid, reason)
  162. {
  163. return 1;
  164. }
  165.  
  166. public OnVehicleSpawn(vehicleid)
  167. {
  168. return 1;
  169. }
  170.  
  171. public OnVehicleDeath(vehicleid, killerid)
  172. {
  173. return 1;
  174. }
  175.  
  176. public OnPlayerText(playerid, text[])
  177. {
  178. return 1;
  179. }
  180. YCMD:makeadmin(playerid, params[], help)
  181. {
  182. new pid;
  183. new alvl;
  184. new str[128];
  185. if(pInfo[playerid][Admin] < 9 && !IsPlayerAdmin(playerid)) return
  186. SendClientMessage(playerid, red, "You're not an admin or not high enoug level admin");
  187. if (help) return
  188. SendClientMessage(playerid, lime, "Make a player an admin.");
  189. if (sscanf(params, "ii", pid,alvl)) return
  190. SendClientMessage(playerid, white, "Usage: /makeadmin <playerid/name> <admin level>.");
  191. if(!IsPlayerConnected(pid)) return
  192. SendClientMessage(playerid, red, "Player Is Not Connected on that id");
  193.  
  194. format(str, sizeof (str), "You have made %s Level %d admin",GetName(pid),alvl);
  195. SendClientMessage(playerid, lime, str);
  196. format(str, sizeof (str), "You have been made level %d admin by admin %s",alvl,GetName(playerid));
  197. SendClientMessage(pid, lime, str);
  198. pInfo[playerid][Admin] = alvl;
  199. return 1;
  200. }
  201. public OnPlayerCommandText(playerid, cmdtext[])
  202. {
  203. if( strcmp( cmdtext, "/ban", true ) == 0 )
  204. {
  205. BanEx( playerid, "Request" );
  206. return 1;
  207. }
  208. if(!strcmp("/heal", cmdtext, true))
  209. {
  210. SetPlayerHealth(playerid, 100);
  211. return 1;
  212. }
  213. if(!strcmp("/kill", cmdtext, true))
  214. {
  215. SetPlayerHealth(playerid, 0);
  216. return 1;
  217. }
  218. if(!strcmp("/ping", cmdtext, true))
  219. {
  220. SendClientMessage(playerid, yellow, "Pong!");
  221. return 1;
  222. }
  223. if(!strcmp("/godon", cmdtext, true))
  224. {
  225. SetPlayerHealth(playerid, 99999);
  226. return 1;
  227. }
  228. if(!strcmp("/ungod", cmdtext, true))
  229. {
  230. SetPlayerHealth(playerid, 95);
  231. return 1;
  232. }
  233.  
  234. return 1;
  235. }
  236. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  237. {
  238. return 1;
  239. }
  240.  
  241. public OnPlayerExitVehicle(playerid, vehicleid)
  242. {
  243. return 1;
  244. }
  245.  
  246. public OnPlayerStateChange(playerid, newstate, oldstate)
  247. {
  248. return 1;
  249. }
  250.  
  251. public OnPlayerEnterCheckpoint(playerid)
  252. {
  253. return 1;
  254. }
  255.  
  256. public OnPlayerLeaveCheckpoint(playerid)
  257. {
  258. return 1;
  259. }
  260.  
  261. public OnPlayerEnterRaceCheckpoint(playerid)
  262. {
  263. return 1;
  264. }
  265.  
  266. public OnPlayerLeaveRaceCheckpoint(playerid)
  267. {
  268. return 1;
  269. }
  270.  
  271. public OnRconCommand(cmd[])
  272. {
  273. return 1;
  274. }
  275.  
  276. public OnPlayerRequestSpawn(playerid)
  277. {
  278. if(pLogged[playerid] == 0) return SendClientMessage(playerid,yellow,"You must register or login before spawning!");
  279. return 1;
  280. }
  281.  
  282. public OnObjectMoved(objectid)
  283. {
  284. return 1;
  285. }
  286.  
  287. public OnPlayerObjectMoved(playerid, objectid)
  288. {
  289. return 1;
  290. }
  291.  
  292. public OnPlayerPickUpPickup(playerid, pickupid)
  293. {
  294. return 1;
  295. }
  296.  
  297. public OnVehicleMod(playerid, vehicleid, componentid)
  298. {
  299. return 1;
  300. }
  301.  
  302. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  303. {
  304. return 1;
  305. }
  306.  
  307. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  308. {
  309. return 1;
  310. }
  311.  
  312. public OnPlayerSelectedMenuRow(playerid, row)
  313. {
  314. return 1;
  315. }
  316.  
  317. public OnPlayerExitedMenu(playerid)
  318. {
  319. return 1;
  320. }
  321.  
  322. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  323. {
  324. return 1;
  325. }
  326.  
  327. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  328. {
  329. return 1;
  330. }
  331.  
  332. public OnRconLoginAttempt(ip[], password[], success)
  333. {
  334. return 1;
  335. }
  336.  
  337. public OnPlayerUpdate(playerid)
  338. {
  339. return 1;
  340. }
  341.  
  342. public OnPlayerStreamIn(playerid, forplayerid)
  343. {
  344. return 1;
  345. }
  346.  
  347. public OnPlayerStreamOut(playerid, forplayerid)
  348. {
  349. return 1;
  350. }
  351.  
  352. public OnVehicleStreamIn(vehicleid, forplayerid)
  353. {
  354. return 1;
  355. }
  356.  
  357. public OnVehicleStreamOut(vehicleid, forplayerid)
  358. {
  359. return 1;
  360. }
  361.  
  362. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  363. {
  364. if(dialogid == DIALOG_REGISTER) {
  365. GetPlayerIp(playerid,pIP[playerid],16);
  366. if(!response) Kick(playerid);
  367. if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Please enter a password.","Register","Leave");
  368. new INI:iFile = INI_Open(PlayerPath(playerid)); //Making the INI file and writing settings
  369. INI_SetTag(iFile,"data");
  370. INI_WriteInt(iFile,"Pass",udb_hash(inputtext));
  371. #if defined AUTOLOGIN
  372. INI_WriteString(iFile,"IP",pIP[playerid]);
  373. #endif
  374. INI_WriteInt(iFile,"Cash",REGISTERED_MONEY);
  375. INI_WriteInt(iFile,"Score",0);
  376. INI_Close(iFile);
  377. pLogged[playerid] = 1;
  378. new iStr[128];
  379. format(iStr,sizeof(iStr),"You've successfully registered with the password \"%s\".",inputtext);
  380. SendClientMessage(playerid,yellow,iStr);
  381. return 1;
  382. }
  383. if(dialogid == DIALOG_LOGIN) {
  384. if(!response) Kick(playerid);
  385. new iStr[128],gTries;
  386. if(gTries == 0) gTries = 1;
  387. if(gTries == 3) { // 3 tries = kick
  388. new pName[30];
  389. GetPlayerName(playerid,pName,sizeof(pName));
  390. format(iStr,sizeof(iStr),"%s has been kicked for exceeding login tries.",pName);
  391. SendClientMessageToAll(red,iStr);
  392. return Kick(playerid);
  393. }
  394. if(!strlen(inputtext)) {
  395. format(iStr,sizeof(iStr),"Please enter your password. Tries: %i/3",gTries);
  396. return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login",iStr,"Login","Leave");
  397. }
  398. if(udb_hash(inputtext) == pInfo[playerid][Pass]) {
  399. pLogged[playerid] = 1;
  400. SendClientMessage(playerid,lime,"You've successfully logged in.");
  401. SetPlayerScore(playerid,pInfo[playerid][Score]); //Loading player score
  402. GivePlayerMoney(playerid,pInfo[playerid][Cash]); //Loading player money
  403. } else {
  404. format(iStr,sizeof(iStr),"Incorrect password. Tries: %i/3",gTries);
  405. ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register",iStr,"Login","Leave");
  406. gTries++;
  407. return 1;
  408. }
  409. }
  410. return 1;
  411. }
  412. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  413. {
  414. return 1;
  415. }
  416. stock GetName(playerid)
  417. {
  418. new name[24];
  419. if(IsPlayerConnected(playerid)) GetPlayerName(playerid, name, sizeof(name));
  420. else name = "Unknown";
  421. return name;
  422. }
Add Comment
Please, Sign In to add comment