Advertisement
Guest User

Freeroam Gamemode [v0.1] [0.3x]

a guest
Oct 2nd, 2013
894
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.90 KB | None | 0 0
  1. /*
  2. *
  3. *                       Freeroam Gamemode™
  4. *                       Copyright: © Fandchor
  5. *                    Credits to: Dracoblue,Kush,Y_Less
  6. */
  7.  
  8. // Include's
  9. #include <a_samp>
  10. #include <YSI\y_ini>
  11.  
  12. // Dialog's
  13. #define DIALOG_REGISTER 1
  14. #define DIALOG_LOGIN 2
  15. #define DIALOG_BANNED 2
  16.  
  17. // FOLDER
  18. #define FOLDER "Freeroam Server/Users/%s.ini"
  19.  
  20. // Color's
  21. #define COLOR_WHITE 0xFFFFFFFF
  22. #define COLOR_RED 0xF81414FF
  23. #define COLOR_GREEN 0x00FF22FF
  24. #define COLOR_LIGHTBLUE 0x00CED1FF
  25.  
  26. // Enum's
  27. enum pInfo
  28. {
  29.     pPass,
  30.     pCash,
  31.     pAdmin,
  32.     pKills,
  33.     pDeaths,
  34.     pScore,
  35.     pBanned
  36. }
  37. // New's
  38. new PlayerInfo[MAX_PLAYERS][pInfo];
  39. new Score[MAX_PLAYERS];
  40.  
  41. //Forward's
  42. forward LoadUser_data(playerid,name[],value[]);
  43. forward ScoreFunc(playerid);
  44.  
  45.  
  46.  
  47. main()
  48. {
  49.         print("\n----------------------------------");
  50.         print(" Freeroam Gamemode™  by Fadchor");
  51.         print("----------------------------------\n");
  52. }
  53.  
  54. public OnGameModeInit()
  55. {
  56.         SetGameModeText("FG™ v1.0");
  57.        
  58.         ShowPlayerMarkers(1);
  59.         ShowNameTags(1);
  60.         EnableStuntBonusForAll(0);
  61.  
  62.         // Player Skins
  63.         AddPlayerClass(266,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  64.         AddPlayerClass(267,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  65.         AddPlayerClass(268,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  66.         AddPlayerClass(269,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  67.         AddPlayerClass(270,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  68.         AddPlayerClass(271,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  69.         AddPlayerClass(272,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  70.         AddPlayerClass(280,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  71.         AddPlayerClass(281,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  72.         AddPlayerClass(282,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
  73.         AddPlayerClass(283,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  74.         AddPlayerClass(284,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  75.         AddPlayerClass(285,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  76.         AddPlayerClass(286,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  77.         AddPlayerClass(287,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  78.         AddPlayerClass(254,1958.3783,1343.1572,15.3746,0.0,0,0,24,300,-1,-1);
  79.         AddPlayerClass(255,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  80.         AddPlayerClass(256,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  81.         AddPlayerClass(257,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  82.         AddPlayerClass(258,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  83.         AddPlayerClass(259,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  84.         AddPlayerClass(260,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  85.         AddPlayerClass(261,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  86.         AddPlayerClass(262,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  87.         AddPlayerClass(263,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  88.         AddPlayerClass(264,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  89.         AddPlayerClass(274,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  90.         AddPlayerClass(275,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  91.         AddPlayerClass(276,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
  92.         return 1;
  93. }
  94.  
  95. public OnGameModeExit()
  96. {
  97.         return 1;
  98. }
  99.  
  100. public OnPlayerRequestClass(playerid, classid)
  101. {
  102.         SetPlayerInterior(playerid,14);
  103.         SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
  104.         SetPlayerFacingAngle(playerid, 270.0);
  105.         SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
  106.         SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
  107.         return 1;
  108. }
  109.  
  110. public OnPlayerConnect(playerid)
  111. {
  112.     if(PlayerInfo[playerid][pBanned] == 1)
  113.     {
  114.         ShowPlayerDialog(playerid,DIALOG_BANNED,DIALOG_STYLE_MSGBOX,"{44A1D0}USER BANNED!","{44A1D0}Your user is banned: {FFFFFF} [Go to our website to make unban post!]","Ok","");
  115.         Kick(playerid);
  116.     }
  117.     if(fexist(UserPath(playerid)))
  118.     {
  119.         INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  120.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"{44A1D0}Freeroam Server","{44A1D0}Type your password below to login.","Login","Quit");
  121.     }
  122.     else
  123.     {
  124.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"{44A1D0}Freeroam Server","{44A1D0}Type your password below to register a new account.","Register","Quit");
  125.     }
  126.     Score[playerid] = SetTimer("ScoreFunc", 60000, 1);
  127.     return 1;
  128. }
  129.  
  130. public ScoreFunc(playerid)
  131. {
  132.      SetPlayerScore(playerid, GetPlayerScore(playerid) + 1);
  133.      KillTimer(Score[playerid]);
  134.      Score[playerid] = SetTimer("ScoreFunc", 60000, 1);
  135.      PlayerInfo[playerid][pScore]++;
  136. }
  137.  
  138. public OnPlayerDisconnect(playerid, reason)
  139. {
  140.     new INI:File = INI_Open(UserPath(playerid));
  141.     INI_SetTag(File,"data");
  142.     INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  143.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  144.     INI_WriteInt(File,"Banned",PlayerInfo[playerid][pBanned]);
  145.     INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  146.     INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  147.     INI_WriteInt(File,"Score",PlayerInfo[playerid][pScore]);
  148.     INI_Close(File);
  149.     return 1;
  150. }
  151.  
  152. public LoadUser_data(playerid,name[],value[])
  153. {
  154.     INI_Int("Password",PlayerInfo[playerid][pPass]);
  155.     INI_Int("Cash",PlayerInfo[playerid][pCash]);
  156.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  157.     INI_Int("Banned",PlayerInfo[playerid][pBanned]);
  158.     INI_Int("Kills",PlayerInfo[playerid][pKills]);
  159.     INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  160.     INI_Int("Score",PlayerInfo[playerid][pScore]);
  161.     return 1;
  162. }
  163.  
  164. public OnPlayerSpawn(playerid)
  165. {
  166.         SetPlayerInterior(playerid, 0);
  167.         return 1;
  168. }
  169.  
  170. public OnPlayerDeath(playerid, killerid, reason)
  171. {
  172.     PlayerInfo[killerid][pKills]++;
  173.     PlayerInfo[playerid][pDeaths]++;
  174.     return 1;
  175. }
  176.  
  177. public OnVehicleSpawn(vehicleid)
  178. {
  179.         return 1;
  180. }
  181.  
  182. public OnVehicleDeath(vehicleid, killerid)
  183. {
  184.         return 1;
  185. }
  186.  
  187. public OnPlayerText(playerid, text[])
  188. {
  189.         return 1;
  190. }
  191.  
  192. public OnPlayerCommandText(playerid, cmdtext[])
  193. {
  194.         if (strcmp("/help", cmdtext, true, 10) == 0)
  195.         {
  196.                 if(IsPlayerConnected(playerid))
  197.                 {
  198.                     SendClientMessage(playerid,COLOR_GREEN,"====================[HELP]====================");
  199.                     SendClientMessage(playerid,COLOR_WHITE,"Commands: /help | /credits |stats | /kill");
  200.                     SendClientMessage(playerid,COLOR_GREEN,"==============================================");
  201.                 }
  202.                 return 1;
  203.         }
  204.         if (strcmp("/kill", cmdtext, true, 10) == 0)
  205.         {
  206.                 if(IsPlayerConnected(playerid))
  207.                 {
  208.                     SendClientMessage(playerid,COLOR_GREEN,"====================[KILL]====================");
  209.                     SetPlayerHealth(playerid,-99999);
  210.                 }
  211.                 return 1;
  212.         }
  213.         if (strcmp("/credits", cmdtext, true, 10) == 0)
  214.         {
  215.                 if(IsPlayerConnected(playerid))
  216.                 {
  217.                     SendClientMessage(playerid,COLOR_GREEN,"====================[CREDITS]====================");
  218.                     SendClientMessage(playerid,COLOR_WHITE,"Credits: Darcoblue,Y-Less,Kush,Fadchor");
  219.                     SendClientMessage(playerid,COLOR_GREEN,"=================================================");
  220.                 }
  221.                 return 1;
  222.         }
  223.         if (strcmp("/stats", cmdtext, true, 10) == 0)
  224.         {
  225.             if(IsPlayerConnected(playerid))
  226.             {
  227.                 new admin = PlayerInfo[playerid][pAdmin];
  228.                 new cash = PlayerInfo[playerid][pCash];
  229.                 new score = PlayerInfo[playerid][pScore];
  230.                 new string1[128],stats[1024];
  231.                 format(string1, sizeof string1, "{44A1D0}Score: {FFFFFF}[%d] {44A1D0}Money: {FFFFFF}[$%d] {44A1D0}AdminLevel: {FFFFFF}[%d]", score,cash,admin);
  232.                 format(stats, sizeof stats, "%s", string1);
  233.                 ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,"{44A1D0}Your Account Stats{FFFFFF}:",stats,"Ok","");
  234.             }
  235.             return 1;
  236.         }
  237.         return 0;
  238. }
  239.  
  240. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  241. {
  242.         return 1;
  243. }
  244.  
  245. public OnPlayerExitVehicle(playerid, vehicleid)
  246. {
  247.         return 1;
  248. }
  249.  
  250. public OnPlayerStateChange(playerid, newstate, oldstate)
  251. {
  252.         return 1;
  253. }
  254.  
  255. public OnPlayerEnterCheckpoint(playerid)
  256. {
  257.         return 1;
  258. }
  259.  
  260. public OnPlayerLeaveCheckpoint(playerid)
  261. {
  262.         return 1;
  263. }
  264.  
  265. public OnPlayerEnterRaceCheckpoint(playerid)
  266. {
  267.         return 1;
  268. }
  269.  
  270. public OnPlayerLeaveRaceCheckpoint(playerid)
  271. {
  272.         return 1;
  273. }
  274.  
  275. public OnRconCommand(cmd[])
  276. {
  277.         return 1;
  278. }
  279.  
  280. public OnPlayerRequestSpawn(playerid)
  281. {
  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, "{44A1D0}Freeroam Server","{44A1D0}You have entered an invalid password.\n{44A1D0}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,"Banned",0);
  381.                 INI_WriteInt(File,"Kills",0);
  382.                 INI_WriteInt(File,"Deaths",0);
  383.                 INI_WriteInt(File,"Score",0);
  384.                 INI_Close(File);
  385.                 SendClientMessage(playerid, COLOR_WHITE,"Successuly registred!");
  386.             }
  387.         }
  388.  
  389.         case DIALOG_LOGIN:
  390.         {
  391.             if ( !response ) return Kick ( playerid );
  392.             if( response )
  393.             {
  394.                 if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  395.                 {
  396.                     INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  397.                     GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  398.                     SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
  399.                     SendClientMessage(playerid, COLOR_WHITE,"Successuly logged in!");
  400.                 }
  401.                 else
  402.                 {
  403.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"{44A1D0}Freeroam Server","{44A1D0}You are entred invald password.\n{44A1D0}Type your password below to login.","Log-in","Quit");
  404.                 }
  405.                 return 1;
  406.             }
  407.         }
  408.     }
  409.     return 1;
  410. }
  411.  
  412. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  413. {
  414.         return 1;
  415. }
  416.  
  417.  
  418. stock UserPath(playerid)
  419. {
  420.     new string[128],playername[MAX_PLAYER_NAME];
  421.     GetPlayerName(playerid,playername,sizeof(playername));
  422.     format(string,sizeof(string),FOLDER,playername);
  423.     return string;
  424. }
  425.  
  426. /*Credits to Dracoblue*/
  427. stock udb_hash(buf[]) {
  428.     new length=strlen(buf);
  429.     new s1 = 1;
  430.     new s2 = 0;
  431.     new n;
  432.     for (n=0; n<length; n++)
  433.     {
  434.        s1 = (s1 + buf[n]) % 65521;
  435.        s2 = (s2 + s1)     % 65521;
  436.     }
  437.     return (s2 << 16) + s1;
  438. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement