Advertisement
Guest User

LS:DM

a guest
Dec 22nd, 2012
923
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 35.68 KB | None | 0 0
  1. #include <a_samp>
  2. #include <core>
  3. #include <float>
  4. #include <streamer>
  5. #include <zcmd>
  6. #include <sscanf2>
  7. #include <YSI\y_ini>
  8.  
  9. #pragma tabsize 0
  10.  
  11. #define COLOUR_GREY 0xAFAFAFAA
  12. #define COLOUR_GREEN 0x33AA33AA
  13. #define COLOUR_LIME 0x00FF00FF
  14. #define COLOUR_RED 0xFF0000FF
  15. #define COLOUR_YELLOW 0xFFFF00AA
  16. #define COLOUR_WHITE 0xFFFFFFAA
  17. #define COLOUR_PINK 0xFF00B9FF
  18. #define COLOUR_BLUE 0x1E00FFFF
  19. #define COLOUR_LIGHTBLUE 0x0000FF91
  20.  
  21. #define PocketMoney 10000 // Amount player recieves on spawn.
  22. #define INACTIVE_PLAYER_ID 255
  23. #define GIVECASH_DELAY 5000 // Time in ms between /givecash commands.
  24. #define NUMVALUES 4
  25.  
  26. #define TEAM_GROVE 1
  27. #define TEAM_POLICE 2
  28. #define TEAM_BALAS 3
  29. #define TEAM_TRIADS 4
  30.  
  31. #define DIALOG_REGISTER 990
  32. #define DIALOG_LOGIN 991
  33. #define DIALOG_SUCCESS_1 992
  34. #define DIALOG_SUCCESS_2 993
  35.  
  36. #define WEAPONSHOP_DIALOG 0
  37. #define TELEPORT_DIALOG 1
  38.  
  39. #define PATH "/Users/%s.ini"
  40.  
  41. forward MoneyGrubScoreUpdate();
  42. forward Givecashdelaytimer(playerid);
  43. forward SetPlayerRandomSpawn(playerid);
  44. forward SetupPlayerForClassSelection(playerid);
  45. forward GameModeExitFunc();
  46. forward SendPlayerFormattedText(playerid, const str[], define);
  47. forward public SendAllFormattedText(playerid, const str[], define);
  48. forward LoadUser_data(playerid,name[],value[]);
  49.  
  50. enum pInfo
  51. {
  52.     pPassword,
  53.     pCash,
  54.     pAdmin,
  55.     pKills,
  56.     pDeaths,
  57.     pVIP,
  58.     pBanned
  59. }
  60.  
  61. //------------------------------------------------------------------------------------------------------
  62. //new gActivePlayers[MAX_PLAYERS];
  63. new gTeam[MAX_PLAYERS];
  64. new CashScoreOld;
  65. new gLastGaveCash[MAX_PLAYERS];
  66. new PlayerInfo[MAX_PLAYERS][pInfo];
  67. //------------------------------------------------------------------------------------------------------
  68.  
  69. main()
  70. {
  71.         print("\n----------------------------------");
  72.         print("  Running LVDM ~MoneyGrub\n");
  73.         print("         Edited by Goldenfox!");
  74.         print("-----------------------------------\n");
  75. }
  76. //------------------------------------------------------------------------------------------------------
  77. public LoadUser_data(playerid,name[],value[])
  78. {
  79.     INI_Int("Password",PlayerInfo[playerid][pPassword]);
  80.     INI_Int("Cash",PlayerInfo[playerid][pCash]);
  81.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  82.     INI_Int("Kills",PlayerInfo[playerid][pKills]);
  83.     INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  84.     INI_Int("VIP",PlayerInfo[playerid][pVIP]);
  85.     INI_Int("Banned",PlayerInfo[playerid][pBanned]);
  86.     return 1;
  87. }
  88. //------------------------------------------------------------------------------------------------------
  89.  
  90. public OnPlayerRequestSpawn(playerid)
  91. {
  92.     //printf("OnPlayerRequestSpawn(%d)",playerid);
  93.     return 1;
  94. }
  95.  
  96. //------------------------------------------------------------------------------------------------------
  97.  
  98. public OnPlayerPickUpPickup(playerid, pickupid)
  99. {
  100.     //new s[256];
  101.     //format(s,256,"Picked up %d",pickupid);
  102.     //SendClientMessage(playerid,0xFFFFFFFF,s);
  103. }
  104.  
  105. //------------------------------------------------------------------------------------------------------
  106.  
  107. public MoneyGrubScoreUpdate()
  108. {
  109.     new CashScore;
  110.     new name[MAX_PLAYER_NAME];
  111.     //new string[256];
  112.     for(new i=0; i<MAX_PLAYERS; i++)
  113.     {
  114.         if (IsPlayerConnected(i))
  115.         {
  116.             GetPlayerName(i, name, sizeof(name));
  117.             CashScore = GetPlayerMoney(i);
  118.             SetPlayerScore(i, CashScore);
  119.             if (CashScore > CashScoreOld)
  120.             {
  121.                 CashScoreOld = CashScore;
  122.             }
  123.         }
  124.     }
  125. }
  126.  
  127. //------------------------------------------------------------------------------------------------------
  128.     SetPlayerTeamFromClass(playerid, classid)
  129.     {
  130.         if(classid == 0)
  131.         {
  132.             gTeam[playerid] = TEAM_GROVE;
  133.         }
  134.         else
  135.         {
  136.             gTeam[playerid] = TEAM_POLICE;
  137.             gTeam[playerid] = TEAM_BALAS;
  138.             gTeam[playerid] = TEAM_TRIADS;
  139.         }
  140.     }
  141.  
  142.     SetPlayerToTeamColour(playerid)
  143.     {
  144.         if(gTeam[playerid] == TEAM_GROVE)
  145.         {
  146.             SetPlayerColor(playerid, COLOUR_GREEN);
  147.         }
  148.         else if (gTeam[playerid] == TEAM_POLICE)
  149.         {
  150.             SetPlayerColor(playerid, COLOUR_BLUE);
  151.         }
  152.         else if (gTeam[playerid] == TEAM_BALAS)
  153.         {
  154.             SetPlayerColor(playerid, COLOUR_PINK);
  155.         }
  156.         else if (gTeam[playerid] == TEAM_TRIADS)
  157.         {
  158.             SetPlayerColor(playerid, COLOUR_WHITE);
  159.         }
  160.     }
  161.  
  162. //------------------------------------------------------------------------------------------------------
  163.  
  164. public OnPlayerConnect(playerid)
  165. {
  166.     GameTextForPlayer(playerid,"~w~LS:DM: ~r~Goldenfox's TDM ~g~1.0",5000,5);
  167.     SendClientMessage(playerid, COLOUR_RED, "Welcome to Goldenfox's TDM 1.0, for help please type /help.");
  168.     SendClientMessage(playerid, COLOUR_RED, "Once you're logged in you can select a team!");
  169.     //gActivePlayers[playerid]++;
  170.     gLastGaveCash[playerid] = GetTickCount();
  171.  
  172.     if(fexist(UserPath(playerid)))
  173.     {
  174.         INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  175.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login","Type your password below to login.","Login","Quit");
  176.     }
  177.     else
  178.     {
  179.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registering...","Type your password below to register a new account.","Register","Quit");
  180.     }
  181.     return 1;
  182. }
  183.  
  184. //------------------------------------------------------------------------------------------------------
  185. public OnPlayerDisconnect(playerid, reason)
  186. {
  187.     new INI:File = INI_Open(UserPath(playerid));
  188.     INI_SetTag(File,"Account Data");
  189.     INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  190.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  191.     INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  192.     INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  193.     INI_WriteInt(File,"VIP",PlayerInfo[playerid][pVIP]);
  194.     INI_WriteInt(File,"Banned",PlayerInfo[playerid][pBanned]);
  195.     INI_Close(File);
  196.  
  197.     return 1;
  198. }
  199. //------------------------------------------------------------------------------------------------------
  200.  
  201. public OnPlayerCommandText(playerid, cmdtext[])
  202. {
  203.     return 1;
  204. }
  205. //------------------------------------------------------------------------------------------------------
  206.  
  207. public OnPlayerSpawn(playerid)
  208. {
  209.     GivePlayerMoney(playerid, PocketMoney);
  210.     SetPlayerInterior(playerid,0);
  211.     TogglePlayerClock(playerid,0);
  212.     SetPlayerToTeamColour(playerid);
  213.     if(PlayerInfo[playerid][pVIP] >= 1)
  214.     {
  215.     SetPlayerArmour(playerid, 25.0);
  216.     }
  217.     SendClientMessageToAll(COLOUR_YELLOW, "Welcome to Goldenfox's TDM server! Enjoy your stay and please read /rules!");
  218.     return 1;
  219. }
  220. //------------------------------------------------------------------------------------------------------
  221.  
  222. public OnPlayerDeath(playerid, killerid, reason)
  223. {
  224.  
  225.      new playercash;
  226.     if(killerid == INVALID_PLAYER_ID) {
  227.         SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
  228.         ResetPlayerMoney(playerid);
  229.     } else {
  230.             SendDeathMessage(killerid,playerid,reason);
  231.             SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
  232.             playercash = GetPlayerMoney(playerid);
  233.             if (playercash > 0)  {
  234.                 GivePlayerMoney(killerid, playercash);
  235.                 ResetPlayerMoney(playerid);
  236.             }
  237.             else
  238.             {
  239.             }
  240.         }
  241.     PlayerInfo[killerid][pKills]++;
  242.     PlayerInfo[playerid][pDeaths]++;
  243.    
  244.     return 1;
  245. }
  246. //------------------------------------------------------------------------------------------------------
  247.  
  248. public OnPlayerRequestClass(playerid, classid)
  249. {
  250.     SetPlayerPos(playerid,1517.9806,-1660.4321,13.5392);
  251.     SetPlayerFacingAngle(playerid, 270.0);
  252.     SetPlayerCameraPos(playerid,1525.0239,-1659.6924,13.3828);
  253.     SetPlayerCameraLookAt(playerid,1517.9806,-1660.4321,13.5392);
  254.     SetPlayerTeamFromClass(playerid, classid);
  255.    
  256.     switch(classid)
  257.     {
  258.         case 0 .. 3:
  259.         {
  260.             gTeam[playerid] = TEAM_GROVE;
  261.             GameTextForPlayer(playerid,"~g~Grove Street",5000,5);
  262.             SetPlayerColor(playerid, COLOUR_GREEN);
  263.             SetPlayerTeam(playerid, TEAM_GROVE);
  264.         }
  265.         case 4 .. 6:
  266.         {
  267.             gTeam[playerid] = TEAM_POLICE;
  268.             GameTextForPlayer(playerid,"~b~Police",5000,5);
  269.             SetPlayerColor(playerid, COLOUR_BLUE);
  270.             SetPlayerTeam(playerid, TEAM_POLICE);
  271.         }
  272.         case 7 .. 9:
  273.         {
  274.             gTeam[playerid] = TEAM_BALAS;
  275.             GameTextForPlayer(playerid,"~p~Balas",5000,5);
  276.             SetPlayerColor(playerid, COLOUR_PINK);
  277.             SetPlayerTeam(playerid, TEAM_BALAS);
  278.         }
  279.         case 10 .. 12:
  280.         {
  281.             gTeam[playerid] = TEAM_TRIADS;
  282.             GameTextForPlayer(playerid,"~w~Triads",5000,5);
  283.             SetPlayerColor(playerid, COLOUR_WHITE);
  284.             SetPlayerTeam(playerid, TEAM_TRIADS);
  285.         }
  286.        
  287.    }
  288.     return 1;
  289.    
  290. }
  291.  
  292. public SetupPlayerForClassSelection(playerid)
  293. {
  294.     SetPlayerInterior(playerid,14);
  295.     SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
  296.     SetPlayerFacingAngle(playerid, 270.0);
  297.     SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
  298.     SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
  299. }
  300.  
  301. public GameModeExitFunc()
  302. {
  303.     GameModeExit();
  304. }
  305.  
  306. public OnGameModeInit()
  307. {
  308.     SetGameModeText("LS:TDM V1.0");
  309.  
  310.     ShowPlayerMarkers(1);
  311.     ShowNameTags(1);
  312.     EnableStuntBonusForAll(0);
  313.  
  314.     // Player Class's
  315.    
  316.     //grove
  317.     AddPlayerClass(105,2510.7615,-1666.7789,13.5677,23.6501,24,300,27,150,18,15); //Grove Street Gang Member SKIN 105
  318.     AddPlayerClass(106,2510.7615,-1666.7789,13.5677,23.6501,24,300,27,150,18,15);
  319.     AddPlayerClass(107,2510.7615,-1666.7789,13.5677,23.6501,24,300,27,150,18,15);
  320.     AddPlayerClass(271,2510.7615,-1666.7789,13.5677,23.6501,24,300,27,150,18,15);
  321.     //police
  322.     AddPlayerClass(280,1544.0514,-1675.7766,13.5577,98.0974,24,300,27,200,31,300); // Police Officer (3)
  323.     AddPlayerClass(281,1544.0514,-1675.7766,13.5577,98.0974,24,300,27,200,31,300);
  324.     AddPlayerClass(282,1544.0514,-1675.7766,13.5577,98.0974,24,300,27,200,31,300);
  325.     //balas
  326.     AddPlayerClass(102,2172.4150,-1674.8645,15.0859,23.6501,24,300,27,150,30,300); // Balas 1
  327.     AddPlayerClass(103,2172.4150,-1674.8645,15.0859,23.6501,24,300,27,150,30,300);
  328.     AddPlayerClass(104,2172.4150,-1674.8645,15.0859,23.6501,24,300,27,150,30,300);
  329.     //triads
  330.     AddPlayerClass(117,1567.6597,-1879.2745,13.5469,23.6501,24,300,34,50,8,1); // Triads 3
  331.     AddPlayerClass(120,1567.6597,-1879.2745,13.5469,23.6501,24,300,34,50,8,1);
  332.     AddPlayerClass(123,1567.6597,-1879.2745,13.5469,23.6501,24,300,34,50,8,1);
  333.  
  334.     // Car Spawns
  335.     AddStaticVehicle(402,1535.7793,-1677.7141,13.2141,179.7584,0,0); // spawncar1
  336.     AddStaticVehicle(415,1535.9916,-1667.0475,13.1541,178.3528,0,0); // spawncar2
  337.    
  338.     AddStaticVehicle(596,1601.9584,-1611.3750,13.2088,92.2592,0,1); // lspd1
  339.     AddStaticVehicle(596,1601.5155,-1618.7351,13.2052,88.3787,0,1); // lspd2
  340.     AddStaticVehicle(596,1602.5436,-1627.6349,13.2156,88.7411,0,1); // lspd3
  341.     AddStaticVehicle(427,1574.8513,-1607.5507,13.5150,176.5882,0,1); // lspdenforcer
  342.    
  343.     AddStaticVehicle(566,2476.0149,-1653.5460,13.1784,93.1098,86,86); // grovecar1
  344.     AddStaticVehicle(566,2485.3513,-1653.8717,13.1721,87.1800,86,86); // grovecar2
  345.    
  346.     AddStaticVehicle(426,1584.5887,-1877.8715,13.2023,269.0845,1,1); // triadscar1
  347.     AddStaticVehicle(445,1575.0201,-1877.7765,13.3351,269.3398,1,1); // triadscar2
  348.    
  349.     AddStaticVehicle(412,2183.0142,-1679.0013,13.9161,347.8547,149,149); // ballascar1
  350.     AddStaticVehicle(475,2181.7012,-1688.3341,13.5406,356.0042,149,149); // ballascar2
  351.     AddStaticVehicle(492,2187.6338,-1659.5662,14.7717,343.9911,149,149); // ballascar3
  352.  
  353.  
  354.     // Objects.
  355.    
  356.     CreateObject(983,1544.59997559,-1620.59997559,13.00000000,0.00000000,0.00000000,0.00000000); //LSPD fence 1
  357.     CreateObject(983,1543.59997559,-1635.90002441,13.00000000,0.00000000,0.00000000,0.00000000); //LSPD fence 2
  358.  
  359.     SetTimer("MoneyGrubScoreUpdate", 1000, 1);
  360.     //SetTimer("GameModeExitFunc", gRoundTime, 0);
  361.    
  362.     return 1;
  363.  
  364. }
  365.  
  366. public SendPlayerFormattedText(playerid, const str[], define)
  367. {
  368.     new tmpbuf[256];
  369.     format(tmpbuf, sizeof(tmpbuf), str, define);
  370.     SendClientMessage(playerid, 0xFF004040, tmpbuf);
  371. }
  372.  
  373. public SendAllFormattedText(playerid, const str[], define)
  374. {
  375.     new tmpbuf[256];
  376.     format(tmpbuf, sizeof(tmpbuf), str, define);
  377.     SendClientMessageToAll(0xFFFF00AA, tmpbuf);
  378. }
  379.  
  380. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  381. {
  382.     if(dialogid == WEAPONSHOP_DIALOG)
  383.     {
  384.         if(!response)
  385.         {
  386.             return SendClientMessage(playerid, COLOUR_RED, "You've left the shop.");
  387.         }
  388.                switch(listitem)
  389.                 {
  390.                
  391.                 case 0://Deagle
  392.                 {
  393.                     if(GetPlayerMoney(playerid) >= 500)
  394.                     {
  395.                         GivePlayerMoney(playerid, - 500);
  396.                         GivePlayerWeapon(playerid, 24, 125);
  397.                         SendClientMessage(playerid, COLOUR_YELLOW, "You've successfully purchased a Deagle.");
  398.                         return 1;
  399.                     }
  400.                     else
  401.                     {
  402.                         SendClientMessage(playerid, COLOUR_RED, "You don't have enough money to purchase this weapon.");
  403.                         return 1;
  404.                     }
  405.                
  406.                 }
  407.                 case 1://M4
  408.                 {
  409.                     if(GetPlayerMoney(playerid) >= 2500)
  410.                     {
  411.                         GivePlayerMoney(playerid, - 2500);
  412.                         GivePlayerWeapon(playerid, 31, 300);
  413.                         SendClientMessage(playerid, COLOUR_YELLOW, "You've successfully purchased a M4.");
  414.                         return 1;
  415.                      }
  416.                      else
  417.                      {
  418.                         SendClientMessage(playerid, COLOUR_RED, "You don't have enough money to purchase this weapon.");
  419.                         return 1;
  420.                      }
  421.                  }
  422.                  case 2://AK47
  423.                  {
  424.                     if(GetPlayerMoney(playerid) >= 3000)
  425.                     {
  426.                         GivePlayerMoney(playerid, - 3000);
  427.                         GivePlayerWeapon(playerid, 30, 300);
  428.                         SendClientMessage(playerid, COLOUR_YELLOW, "You've successfully purchased an AK47.");
  429.                         return 1;
  430.                     }
  431.                     else
  432.                     {
  433.                         SendClientMessage(playerid, COLOUR_RED, "You don't have enough money to purchase this weapon.");
  434.                         return 1;
  435.                     }
  436.                 }
  437.                 case 3://spas12
  438.                 {
  439.                     if(GetPlayerMoney(playerid) >= 5000)
  440.                     {
  441.                         GivePlayerMoney(playerid, -5000);
  442.                         GivePlayerWeapon(playerid, 27, 250);
  443.                         SendClientMessage(playerid, COLOUR_YELLOW, "You've successfully purchased a Combat Shotgun.");
  444.                         return 1;
  445.                     }
  446.                     else
  447.                     {
  448.                         SendClientMessage(playerid, COLOUR_RED, "You don't have enough money to purchase this weapon.");
  449.                         return 1;
  450.                     }
  451.  
  452.                   }
  453.                 case 4://sniper
  454.                 {
  455.                     if(GetPlayerMoney(playerid) >= 4500)
  456.                     {
  457.                         GivePlayerMoney(playerid, -4500);
  458.                         GivePlayerWeapon(playerid, 34, 100);
  459.                         SendClientMessage(playerid, COLOUR_YELLOW, "You've successfully purchased a Sniper Rifle.");
  460.                         return 1;
  461.                     }
  462.                     else
  463.                     {
  464.                         SendClientMessage(playerid, COLOUR_RED, "You don't have enough money to purchase this weapon.");
  465.                         return 1;
  466.                     }
  467.                  }
  468.                 case 5://Knife VIP
  469.                 {
  470.                     if(GetPlayerMoney(playerid) >= 5000 && PlayerInfo[playerid][pVIP] >= 1)
  471.                     {
  472.                         GivePlayerMoney(playerid, -5000);
  473.                         GivePlayerWeapon(playerid, 4, 1);
  474.                         SendClientMessage(playerid, COLOUR_PINK, "You've successfully purchased a Knife.");
  475.                         return 1;
  476.                     }
  477.                     else
  478.                     {
  479.                         SendClientMessage(playerid, COLOUR_RED, "You don't have enough money to purchase this weapon or you're not a VIP.");
  480.                         return 1;
  481.                     }
  482.                 }
  483.                
  484.                 }
  485.  
  486.              }
  487.              if(dialogid == TELEPORT_DIALOG)
  488.              {
  489.                 if(!response) return SendClientMessage(playerid, COLOUR_RED, "You've prevented yourself from teleporting.");
  490.  
  491.                 switch(listitem)
  492.                 {
  493.                     case 0://Grove str.
  494.                     {
  495.                         SetPlayerPos(playerid, 2510.7615,-1666.7789,13.5677);
  496.                         SetPlayerInterior(playerid, 0);
  497.                         SendClientMessage(playerid, COLOUR_LIME, "You've teleported yourself to the spawn location of Grove.");
  498.                         return 1;
  499.                     }
  500.                     case 1://Police
  501.                     {
  502.                         SetPlayerPos(playerid, 1544.0514,-1675.7766,13.5577);
  503.                         SetPlayerInterior(playerid, 0);
  504.                         SendClientMessage(playerid, COLOUR_LIME, "You've teleported yourself to the spawn location of Police.");
  505.                         return 1;
  506.                     }
  507.                     case 2://Balas
  508.                     {
  509.                         SetPlayerPos(playerid, 2172.4150,-1674.8645,15.0859);
  510.                         SetPlayerInterior(playerid, 0);
  511.                         SendClientMessage(playerid, COLOUR_LIME, "You've teleported yourself to the spawn location of Balas.");
  512.                         return 1;
  513.                     }
  514.                     case 3://Triads
  515.                     {
  516.                         SetPlayerPos(playerid, 1567.6597,-1879.2745,13.5469);
  517.                         SetPlayerInterior(playerid, 0);
  518.                         SendClientMessage(playerid, COLOUR_LIME, "You've teleported yourself to the spawn location of Triads.");
  519.                         return 1;
  520.                     }
  521.                
  522.                 }
  523.              
  524.              }
  525.       if(dialogid == DIALOG_REGISTER)
  526.         {
  527.             if (!response) return Kick(playerid);
  528.             if(response)
  529.             {
  530.                 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registering...","You have entered an invalid password.\nType your password below to register a new account.","Register","Quit");
  531.                 new INI:File = INI_Open(UserPath(playerid));
  532.                 INI_SetTag(File,"Account Data");
  533.                 INI_WriteInt(File,"Password",udb_hash(inputtext));
  534.                 INI_WriteInt(File,"Cash",0);
  535.                 INI_WriteInt(File,"Admin",0);
  536.                 INI_WriteInt(File,"Kills",0);
  537.                 INI_WriteInt(File,"Deaths",0);
  538.                 INI_WriteInt(File,"VIP",0);
  539.                 INI_WriteInt(File,"Banned",0);
  540.                 INI_Close(File);
  541.  
  542.                 //SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  543.                 SpawnPlayer(playerid);
  544.                 ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,"Success!","Your account has been successfully created!\nRelog to save your stats!","Ok","");
  545.             }
  546.         }
  547.        
  548.          if(dialogid == DIALOG_LOGIN)
  549.             {
  550.            
  551.             if (!response) return Kick(playerid);
  552.             if(response)
  553.             {
  554.                 if(udb_hash(inputtext) == PlayerInfo[playerid][pPassword])
  555.                 {
  556.                     INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  557.                     GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  558.                     ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,"Success!","You have successfully logged in!","Ok","");
  559.                     if(PlayerInfo[playerid][pVIP] >=1)
  560.                     {
  561.                         SendClientMessage(playerid, COLOUR_PINK, "You're logged in as a VIP.");
  562.                     }
  563.                     if(PlayerInfo[playerid][pAdmin] >= 1)
  564.                     {
  565.                         SendClientMessage(playerid, COLOUR_LIME, "You're logged in as an Administrator.");
  566.                     }
  567.                 }
  568.                 else
  569.                 {
  570.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,"Login","You have entered an incorrect password.\nType your password below to login.","Login","Quit");
  571.                 }
  572.                 return 1;
  573.             }
  574.         }
  575.         return 1;
  576.     }
  577.  
  578. /*------------------------------------------------------------------------------------------------------------
  579.                                                   ZCMD COMMANDS!
  580. -------------------------------------------------------------------------------------------------------------*/
  581. CMD:rules(playerid, params[])
  582. {
  583.         SendClientMessage(playerid, COLOUR_YELLOW, "---------------------------------------------------------");
  584.         SendClientMessage(playerid, COLOUR_YELLOW, "1.) Do not use any kind of hacks or modifications which give you an advantage over other players.");
  585.         SendClientMessage(playerid, COLOUR_YELLOW, "2.) Always respect players and staff members.");
  586.         SendClientMessage(playerid, COLOUR_YELLOW, "3.) Do not spawn kill.");
  587.         SendClientMessage(playerid, COLOUR_YELLOW, "4.) ALWAYS report bugs and glitches to the Administrators.");
  588.         SendClientMessage(playerid, COLOUR_PINK, "5.) Do not abuse your VIP features.");
  589.         SendClientMessage(playerid, COLOUR_YELLOW, "Failure to follow the rules will result in a punishment.");
  590.         SendClientMessage(playerid, COLOUR_YELLOW, "Also, any type of server advertising is not allowed and will result in a ban.");
  591.         SendClientMessage(playerid, COLOUR_YELLOW, "---------------------------------------------------------");
  592.   return 1;
  593. }
  594. CMD:help(playerid, params[])
  595. {
  596.     SendClientMessage(playerid, COLOUR_GREEN, "Welcome to Martin's TDM server, this server is still under full development.");
  597.     SendClientMessage(playerid, COLOUR_GREEN, "For a list of commands, please type /commands.");
  598.     SendClientMessage(playerid, COLOUR_GREEN, "Also, please read /rules and /updates to stay up-to-date about recent changes and the rules.");
  599.     return 1;
  600. }
  601. CMD:commands(playerid, params[])
  602. {
  603.     if(PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
  604.     {
  605.         SendClientMessage(playerid, COLOUR_LIGHTBLUE, "Admins: /kick /sethealth /setarmour /setcash /setskin /spawns");
  606.     }
  607.     if(PlayerInfo[playerid][pVIP] >= 1 || IsPlayerAdmin(playerid))
  608.     {
  609.         SendClientMessage(playerid, COLOUR_PINK, "VIP: /healme /ls /armour");
  610.     }
  611.    
  612.     SendClientMessage(playerid, COLOUR_YELLOW, "Players: /kill /updates /credits /rules /weapons");
  613.    
  614.     return 1;
  615. }
  616. CMD:kill(playerid, params[])
  617. {
  618.     SendClientMessage(playerid, COLOUR_YELLOW, "You've commited suicide!");
  619.     SetPlayerHealth(playerid, 0);
  620.     return 1;
  621. }
  622. CMD:updates(playerid, params[])
  623. {
  624.     SendClientMessage(playerid, COLOUR_YELLOW, "Converted some old commands into zcmd commands.");
  625.     SendClientMessage(playerid, COLOUR_YELLOW, "Classes have had a major overhaul, however there are some upcoming changes to them.");
  626.     SendClientMessage(playerid, COLOUR_YELLOW, "More vehicles have been added to spawn locations.");
  627.     SendClientMessage(playerid, COLOUR_YELLOW, "More commands have been added and updated.");
  628.     SendClientMessage(playerid, COLOUR_PINK, "VIP system has been added and lots of Admin commands have been created.");
  629.     return 1;
  630. }
  631. CMD:credits(playerid, params[])
  632. {
  633.     ShowPlayerDialog(playerid, 2, DIALOG_STYLE_MSGBOX, "Credits", "Kyle of the SAMP team for the gamemode.(LVDM Moneygrub)\nDevelopers of the plugins and includes such as zcmd.\nMartin for overhauling the gamemode and making it from scratch.\nDustin for helping me with scripting.", "Close","");
  634.     return 1;
  635. }
  636. CMD:weapons(playerid, params[])
  637. {
  638.     ShowPlayerDialog(playerid, WEAPONSHOP_DIALOG, DIALOG_STYLE_LIST, "Weapon shop", "Deagle: $500\nM4: $2500\nAK47: $3000\nCombat Shotgun: $5000\nSniper Rifle: $4500\nKnife: $5000 (VIP)", "Select", "Exit");
  639.     return true;
  640. }
  641. /*---------------------------------------------------------------------------------------------------------------------------------------------------
  642.                 VIP Commands
  643. ----------------------------------------------------------------------------------------------------------------------------------------------------*/
  644. CMD:healme(playerid, params[])
  645. {
  646.    
  647.     if(PlayerInfo[playerid][pVIP] >= 1)
  648.     {
  649.         SetPlayerHealth(playerid, 99.9);
  650.         GivePlayerMoney(playerid, -1000);
  651.         SendClientMessage(playerid, COLOUR_PINK, "You've just healed yourself and it costed you 1000$.");
  652.     }
  653.     else
  654.     {
  655.         SendClientMessage(playerid, COLOUR_RED, "You must be a VIP in order to do this.");
  656.     }
  657.         return 1;
  658. }
  659. CMD:armour(playerid, params[])
  660. {
  661.     if(PlayerInfo[playerid][pVIP] >= 1)
  662.     {
  663.         SetPlayerArmour(playerid, 99.9);
  664.         GivePlayerMoney(playerid, -2500);
  665.         SendClientMessage(playerid, COLOUR_PINK, "You've just given yourself full armour and it costed you 2500$.");
  666.     }
  667.     else
  668.     {
  669.         SendClientMessage(playerid, COLOUR_RED, "You must be a VIP in order to do this.");
  670.     }
  671.         return 1;
  672. }
  673. CMD:ls(playerid, params[])
  674. {
  675.     if(PlayerInfo[playerid][pVIP] >= 1)
  676.     {
  677.     SendClientMessage(playerid, COLOUR_YELLOW, "You've teleported to Los Santos!");
  678.     SetPlayerInterior(playerid, 0);
  679.     SetPlayerPos(playerid, 1544.0514,-1675.7766,13.5577);
  680.     }
  681.     else
  682.     {
  683.         SendClientMessage(playerid, COLOUR_RED, "You have to be a VIP in order to use this command.");
  684.     }
  685.     return 1;
  686. }
  687. //----------------------------------------------------------------------------------------------------------------------------------------------------
  688. CMD:setvip(playerid, params[])
  689. {
  690.     if(PlayerInfo[playerid][pAdmin] >= 3 || IsPlayerAdmin(playerid))
  691.     {
  692.     new target,level;
  693.     if(sscanf(params, "ud", target, level)) return SendClientMessage(playerid, COLOUR_LIME, "Usage: /setvip [Target name/id] [Level]");
  694.     if(!IsPlayerConnected(target)) return SendClientMessage(playerid, COLOUR_RED, "ERROR: Player is not connected.");
  695.     if(level < 0 || level >= 2) return SendClientMessage(playerid, COLOUR_RED, "Invalid VIP level specified.");
  696.     PlayerInfo[target][pVIP] = level;
  697.    
  698.     new string[64];
  699.     new name_variable[MAX_PLAYER_NAME];
  700.     GetPlayerName(target, name_variable, sizeof(name_variable));
  701.     format(string, sizeof(string), "You have set %s's VIP to level %d.", name_variable, level);
  702.     SendClientMessage(playerid, COLOUR_PINK, string);
  703.    
  704.     GetPlayerName(playerid, name_variable, sizeof(name_variable));
  705.     format(string, sizeof(string), "Your VIP level has been set to %d by Administrator %s.", level, name_variable);
  706.     SendClientMessage(target, COLOUR_LIME, string);
  707.  
  708.     }
  709.     else
  710.     {
  711.         SendClientMessage(playerid, COLOUR_RED, "You must be an Administrator to use this command.");
  712.     }
  713.     return 1;
  714. }
  715. CMD:setadmin(playerid, params[])
  716. {
  717.     if(PlayerInfo[playerid][pAdmin] == 5 || IsPlayerAdmin(playerid))
  718.     {
  719.     new target,level;
  720.     if(sscanf(params, "ud", target, level)) return SendClientMessage(playerid, COLOUR_LIME, "USAGE: /setadmin [Target name/id] [Level 0-5]");
  721.     if(!IsPlayerConnected(target)) return SendClientMessage(playerid, COLOUR_RED, "ERROR: Player is not connected.");
  722.     if(level >= 6) return SendClientMessage(playerid, COLOUR_RED, "Invalid Admin level.");
  723.    
  724.     new string[64];
  725.     new name_variable[MAX_PLAYER_NAME];
  726.     GetPlayerName(target, name_variable, sizeof(name_variable));
  727.     format(string, sizeof(string), "You have made %s a level %d Administrator.", name_variable, level);
  728.     SendClientMessage(playerid, COLOUR_PINK, string);
  729.    
  730.     GetPlayerName(playerid, name_variable, sizeof(name_variable));
  731.     format(string, sizeof(string), "Your Admin level has been set to %d by Administrator %s.", level, name_variable);
  732.     SendClientMessage(target, COLOUR_LIME, string);
  733.    
  734.     PlayerInfo[target][pAdmin] = level;
  735.     }
  736.     else
  737.     {
  738.         SendClientMessage(playerid, COLOUR_RED, "You must be an Administrator to use this command.");
  739.     }
  740.     return 1;
  741. }
  742. CMD:sethealth(playerid, params[])
  743. {
  744.     if(PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
  745.     {
  746.         new target,value;
  747.         if(sscanf(params, "ud", target, value)) return SendClientMessage(playerid, COLOUR_LIME, "USAGE: /sethealth [Target name/id] [Value 1-99]");
  748.         if(!IsPlayerConnected(target)) return SendClientMessage(playerid, COLOUR_RED, "ERROR: Player is not connected.");
  749.         if(value < 1 || value > 99) return SendClientMessage(playerid, COLOUR_RED, "Invalid value. The value has to be between 1 and 99.");
  750.        
  751.         new string[64];
  752.         new name_variable[MAX_PLAYER_NAME];
  753.         GetPlayerName(target, name_variable, sizeof(name_variable));
  754.  
  755.         format(string, sizeof(string), "You have set %s's health to %d.", name_variable, value);
  756.         SendClientMessage(playerid, COLOUR_LIME, string);
  757.        
  758.         GetPlayerName(playerid, name_variable, sizeof(name_variable));
  759.         format(string, sizeof(string), "Your health has been set to %d by Administrator %s.", value, name_variable);
  760.         SendClientMessage(target, COLOUR_LIME, string);
  761.  
  762.         return SetPlayerHealth(target, value);
  763.     }
  764.     else
  765.     {
  766.         SendClientMessage(playerid, COLOUR_RED, "You must be an Administrator to use this command.");
  767.     }
  768.     return 1;
  769. }
  770. CMD:setarmour(playerid, params[])
  771. {
  772.     if(PlayerInfo[playerid][pAdmin] >= 2 || IsPlayerAdmin(playerid))
  773.     {
  774.         new target,value;
  775.         if(sscanf(params, "ud", target, value)) return SendClientMessage(playerid, COLOUR_LIME, "USAGE: /setarmour [Target name/id] [Value 1-99]");
  776.         if(!IsPlayerConnected(target)) return SendClientMessage(playerid, COLOUR_RED, "ERROR: Player is not connected.");
  777.         if(value < 0 || value > 999) return SendClientMessage(playerid, COLOUR_RED, "Invalid value. The value has to be between 1 and 99.");
  778.        
  779.         new string[64];
  780.         new name_variable[MAX_PLAYER_NAME];
  781.         GetPlayerName(target, name_variable, sizeof(name_variable));
  782.        
  783.         format(string, sizeof(string), "You have set %s's armour to %d.", name_variable, value);
  784.         SendClientMessage(playerid, COLOUR_LIME, string);
  785.        
  786.         GetPlayerName(playerid, name_variable, sizeof(name_variable));
  787.         format(string, sizeof(string), "Your armour has been set to %d by Administrator %s.", value, name_variable);
  788.         SendClientMessage(target, COLOUR_LIME, string);
  789.        
  790.         return SetPlayerArmour(target, value);
  791.     }
  792.     else
  793.     {
  794.         SendClientMessage(playerid, COLOUR_RED, "You must be an Administrator to use this command.");
  795.     }
  796.     return 1;
  797. }
  798. CMD:setcash(playerid, params[])
  799. {
  800.     if(PlayerInfo[playerid][pAdmin] >= 3 || IsPlayerAdmin(playerid))
  801.     {
  802.         new target,value;
  803.         if(sscanf(params, "ud", target, value)) return SendClientMessage(playerid, COLOUR_LIME, "USAGE: /setcash [Target name/id] [Value]");
  804.         if(!IsPlayerConnected(target)) return SendClientMessage(playerid, COLOUR_RED, "ERROR: Player is not connected.");
  805.         if(value < 0 || value == 9999999999) return SendClientMessage(playerid, COLOUR_RED, "Invalid value. The value cannot be lower than zero.");
  806.        
  807.         new string[64];
  808.         new name_variable[MAX_PLAYER_NAME];
  809.         GetPlayerName(target, name_variable, sizeof(name_variable));
  810.  
  811.         format(string, sizeof(string), "You have given %d cash to %s.", value, name_variable);
  812.         SendClientMessage(playerid, COLOUR_LIME, string);
  813.        
  814.         GetPlayerName(playerid, name_variable, sizeof(name_variable));
  815.         format(string, sizeof(string), "Your cash has been set to %d by Administrator %s.", value, name_variable);
  816.         SendClientMessage(target, COLOUR_LIME, string);
  817.        
  818.         return GivePlayerMoney(target, value);
  819.        
  820.     }
  821.     else
  822.     {
  823.         SendClientMessage(playerid, COLOUR_RED, "You must be an Administrator to use this command.");
  824.     }
  825.     return 1;
  826. }
  827. CMD:setskin(playerid, params[])
  828. {
  829.     if(PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
  830.     {
  831.         new target,value;
  832.         if(sscanf(params, "ud", target, value)) return SendClientMessage(playerid, COLOUR_LIME, "USAGE: /setskin [Target name/id] [Skin ID]");
  833.         if(!IsPlayerConnected(target)) return SendClientMessage(playerid, COLOUR_RED, "ERROR: Player is not connected.");
  834.         if(value < 0 || value == 74 || value > 299) return SendClientMessage(playerid, COLOUR_RED, "Invalid skin ID. The value has to be between 0 and 299.");
  835.        
  836.         new string[64];
  837.         new name_variable[MAX_PLAYER_NAME];
  838.         GetPlayerName(target, name_variable, sizeof(name_variable));
  839.        
  840.         format(string, sizeof(string), "You have set %s's skin ID to %d.", name_variable, value);
  841.         SendClientMessage(playerid, COLOUR_LIME, string);
  842.        
  843.         GetPlayerName(playerid, name_variable, sizeof(name_variable));
  844.         format(string, sizeof(string), "Your skin ID has been set to %d by Administrator %s.", value, name_variable);
  845.         SendClientMessage(target, COLOUR_PINK, string);
  846.        
  847.         return SetPlayerSkin(target, value);
  848.     }
  849.     else
  850.     {
  851.         SendClientMessage(playerid, COLOUR_RED, "You must be an Administrator to use this command.");
  852.     }
  853.     return 1;
  854. }
  855. CMD:kick(playerid, params[])
  856. {
  857.     if(PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
  858.     {
  859.         new target,reason[64];
  860.         if(sscanf(params, "us[64]", target, reason)) return SendClientMessage(playerid, COLOUR_LIME, "USAGE: /kick [Target name/id] [Reason]");
  861.         if(!IsPlayerConnected(target)) return SendClientMessage(playerid, COLOUR_RED, "ERROR: Player is not connected.");
  862.        
  863.         new string[128];
  864.         new name_variable[MAX_PLAYER_NAME];
  865.         GetPlayerName(target, name_variable, sizeof(name_variable));
  866.        
  867.         new playername_variable[MAX_PLAYER_NAME];
  868.         GetPlayerName(playerid, playername_variable, sizeof(playername_variable));
  869.        
  870.         format(string, sizeof(string), "You have kicked %s | Reason: %s", name_variable, reason);
  871.         SendClientMessage(playerid, COLOUR_PINK, string);
  872.        
  873.         GetPlayerName(playerid, name_variable, sizeof(name_variable));
  874.         format(string, sizeof(string), "You have been kicked by: %s | Reason: %s", name_variable, reason);
  875.         SendClientMessage(target, COLOUR_RED, string);
  876.        
  877.         format(string, sizeof(string), "%s has been kicked by Administrator: %s | Reason: %s", name_variable, playername_variable, reason);
  878.         SendClientMessageToAll(COLOUR_RED, string);
  879.        
  880.         return Kick(target);
  881.     }
  882.     else
  883.     {
  884.         SendClientMessage(playerid, COLOUR_RED, "You have to be an Administrator in order to use this command.");
  885.     }
  886.     return 1;
  887. }
  888. CMD:ban(playerid, params[])
  889. {
  890.     if(PlayerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
  891.     {
  892.         new target,reason[64];
  893.         if(sscanf(params, "us[64]", target, reason)) return SendClientMessage(playerid, COLOUR_LIME, "USAGE: /ban [Target name/id] [Reason]");
  894.         if(!IsPlayerConnected(target)) return SendClientMessage(playerid, COLOUR_RED, "ERROR: Player is not connected.");
  895.        
  896.         new string[128];
  897.         new pname[MAX_PLAYER_NAME];
  898.         GetPlayerName(target, pname, sizeof(pname));
  899.        
  900.         format(string, sizeof(string), "You have banned %s | Reason: %s", pname, reason);
  901.         SendClientMessage(playerid, COLOUR_PINK, string);
  902.        
  903.         GetPlayerName(playerid, pname, sizeof(pname));
  904.         format(string, sizeof(string), "You have been banned by: %s | Reason: %s", pname, reason);
  905.         SendClientMessage(target, COLOUR_RED, string);
  906.        
  907.         new playername[MAX_PLAYER_NAME];
  908.         GetPlayerName(playerid, playername, sizeof(pname));
  909.         format(string, sizeof(string), "%s has been banned by Administrator: %s | Reason: %s",pname, playername, reason);
  910.         SendClientMessageToAll(COLOUR_RED, string);
  911.        
  912.         PlayerInfo[playerid][pBanned] = 1;
  913.        
  914.         return Ban(target);
  915.     }
  916.     else
  917.     {
  918.         SendClientMessage(playerid, COLOUR_RED, "You have to be an Administrator in order to use this command.");
  919.     }
  920.     return 1;
  921. }
  922. CMD:spawns(playerid, params[])
  923. {
  924.     if(PlayerInfo[playerid][pAdmin] >=1 || IsPlayerAdmin(playerid))
  925.     {
  926.         ShowPlayerDialog(playerid, TELEPORT_DIALOG, DIALOG_STYLE_LIST, "Spawn Teleports", "Grove\nPolice\nBalas\nTriads", "Teleport", "Cancel");
  927.         return 1;
  928.     }
  929.     else
  930.     {
  931.         SendClientMessage(playerid, COLOUR_RED, "You have to be an Administrator in order to use this command.");
  932.     }
  933.     return 1;
  934. }
  935. CMD:maintenance(playerid, params[])
  936. {
  937.     if(PlayerInfo[playerid][pAdmin] >=5 || IsPlayerAdmin(playerid))
  938.     {
  939.         new string[64];
  940.         format(string, sizeof(string), "~r~The server is going down for scheduled maintenance!");
  941.         GameTextForAll(string, 8000, 4);
  942.         SendClientMessageToAll(COLOUR_RED, "The server is going down for a couple of minutes in order to perform scheduled maintenance.");
  943.     }
  944.     return 1;
  945. }
  946. //-----------------------------------------------------------------------------------------------------------------------------
  947. stock UserPath(playerid)
  948. {
  949.     new string[128],playername[MAX_PLAYER_NAME];
  950.     GetPlayerName(playerid,playername,sizeof(playername));
  951.     format(string,sizeof(string),PATH,playername);
  952.     return string;
  953. }
  954. /*Credits to Dracoblue*/
  955. stock udb_hash(buf[]) {
  956.     new length=strlen(buf);
  957.     new s1 = 1;
  958.     new s2 = 0;
  959.     new n;
  960.     for (n=0; n<length; n++)
  961.     {
  962.        s1 = (s1 + buf[n]) % 65521;
  963.        s2 = (s2 + s1)     % 65521;
  964.     }
  965.     return (s2 << 16) + s1;
  966. }
  967. //-------------------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement