Guest User

Test RP

a guest
Nov 2nd, 2014
907
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 12.88 KB | None | 0 0
  1.                                             /* =========================== CREDITS ========================== */
  2.                                             /*                             Sparke                             */
  3.  
  4. native WP_Hash(buffer[], len, const str[]);
  5.  
  6. #include <a_samp>
  7. #include <YSI\y_ini>
  8. #include sscanf2
  9. #include zcmd
  10. #include foreach
  11.  
  12. /* Defines */
  13.  
  14. #define DIALOG_REGISTER 1
  15. #define DIALOG_LOGIN 2
  16. #define DIALOG_SUCCESS_1 3
  17. #define DIALOG_SUCCESS_2 4
  18.  
  19. #define PATH "/Users/%s.ini"
  20.  
  21. /* Colors */
  22.  
  23. #define COL_WHITE "{FFFFFF}"
  24. #define COL_RED "{F81414}"
  25. #define COL_GREEN "{00FF22}"
  26. #define COL_LIGHTBLUE "{00CED1}
  27. #define COL_PURPLE 0xC2A2DAAA
  28.  
  29. /* News */
  30.  
  31. new DropLimit = 4;
  32. new DeleteTime = 5;
  33.  
  34. /* Enum's */
  35.  
  36. enum pInfo
  37. {
  38.     pPass[129],
  39.     pCash,
  40.     pAdmin,
  41.     pKills,
  42.     pDeaths
  43. }
  44. new PlayerInfo[MAX_PLAYERS][pInfo];
  45.  
  46. forward LoadUser_data(playerid,name[],value[]);
  47. public LoadUser_data(playerid,name[],value[])
  48. {
  49.     INI_String("Password",PlayerInfo[playerid][pPass], 129);
  50.     INI_Int("Cash",PlayerInfo[playerid][pCash]);
  51.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  52.     INI_Int("Kills",PlayerInfo[playerid][pKills]);
  53.     INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  54.     return 1;
  55. }
  56.  
  57. // Stocks
  58.  
  59. stock GetName(playerid)
  60. {
  61.     new
  62.         name[24];
  63.     GetPlayerName(playerid, name, sizeof(name));
  64.     strreplace(name, '_', ' ');
  65.     return name;
  66. }
  67.  
  68. stock UserPath(playerid)
  69. {
  70.     new string[128],playername[MAX_PLAYER_NAME];
  71.     GetPlayerName(playerid,playername,sizeof(playername));
  72.     format(string,sizeof(string),PATH,playername);
  73.     return string;
  74. }
  75.  
  76. stock strreplace(string[], find, replace)
  77. {
  78.     for(new i=0; string[i]; i++)
  79.     {
  80.         if(string[i] == find)
  81.         {
  82.             string[i] = replace;
  83.         }
  84.     }
  85. }
  86.  
  87. stock ProxDetector(Float:radi, playerid, string[],color)
  88. {
  89.     new Float:x,Float:y,Float:z;
  90.     GetPlayerPos(playerid,x,y,z);
  91.     foreach(Player,i)
  92.     {
  93.         if(IsPlayerInRangeOfPoint(i,radi,x,y,z))
  94.         {
  95.             SendClientMessage(i,color,string);
  96.         }
  97.     }
  98. }
  99.  
  100. main()
  101. {
  102.     print("\n----------------------------------");
  103.     print("       LB-RP || Script || v1.0      ");
  104.     print("----------------------------------\n");
  105. }
  106.  
  107. public OnGameModeInit()
  108. {
  109.  
  110.     // Vehicles
  111.    
  112.     AddStaticVehicle(475,2818.0098,-1442.0446,20.0225,93.1894,21,1); // Sabre
  113.     AddStaticVehicle(466,2787.8457,-1876.5206,9.5740,180.4946,16,76); // Glendal
  114.     AddStaticVehicle(529,2757.6841,-1846.6147,9.3426,199.4390,53,53); // Vincent
  115.     AddStaticVehicle(605,2213.6399,-2289.6472,14.5835,136.0814,43,8); //  Shit Sadler
  116.  
  117.  
  118.     SetGameModeText("Long Beach Role Play");
  119.     AddPlayerClass(0,2865.7468,-1399.5010,10.9633,276.8210,0,0,0,0,0,0); // Spawn
  120.     return 1;
  121. }
  122.  
  123. forward DropPlayerWeapons(playerid);
  124. public DropPlayerWeapons(playerid)
  125. {
  126.     new playerweapons[13][2];
  127.     new Float:x,Float:y,Float:z;
  128.     GetPlayerPos(playerid, x, y, z);
  129.  
  130.     for(new i=0; i<13; i++)
  131.     {
  132.         GetPlayerWeaponData(playerid, i, playerweapons[i][0], playerweapons[i][1]);
  133.         new model = GetWeaponType(playerweapons[i][0]);
  134.         new times = floatround(playerweapons[i][1]/10.0001);
  135.         new Float:X = x + (random(3) - random(3));
  136.         new Float:Y = y + (random(3) - random(3));
  137.         if(playerweapons[i][1] != 0 && model != -1)
  138.         {
  139.             if(times > DropLimit) times = DropLimit;
  140.             for(new a=0; a<times; a++)
  141.             {
  142.                 new pickupid = CreatePickup(model, 3, X, Y, z);
  143.                 SetTimerEx("DeletePickup", DeleteTime*1000, false, "d", pickupid);
  144.             }
  145.         }
  146.     }
  147.     return 1;
  148. }
  149.  
  150. forward DeletePickup(pickupid);
  151. public DeletePickup(pickupid)
  152. {
  153.     DestroyPickup(pickupid);
  154.     return 1;
  155. }
  156.  
  157. public OnGameModeExit()
  158. {
  159.     return 1;
  160. }
  161.  
  162. public OnPlayerRequestClass(playerid, classid)
  163. {
  164.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  165.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  166.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  167.     return 1;
  168. }
  169.  
  170. public OnPlayerConnect(playerid)
  171. {
  172.     if(fexist(UserPath(playerid)))
  173.     {
  174.         INI_ParseFile(UserPath(playerid), "LoadUser_data", .bExtra = true, .extra = playerid);
  175.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
  176.     }
  177.     else
  178.     {
  179.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
  180.     }
  181.     return 1;
  182. }
  183.  
  184. public OnPlayerDisconnect(playerid, reason)
  185. {
  186.     new INI:File = INI_Open(UserPath(playerid));
  187.     INI_SetTag(File,"PlayerData");
  188.     INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  189.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  190.     INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  191.     INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  192.     INI_Close(File);
  193.     return 1;
  194. }
  195.  
  196. public OnPlayerSpawn(playerid)
  197. {
  198.     return 1;
  199. }
  200.  
  201. public OnPlayerDeath(playerid, killerid, reason)
  202. {
  203.     DropPlayerWeapons(playerid);
  204.     PlayerInfo[killerid][pKills]++;
  205.     PlayerInfo[playerid][pDeaths]++;
  206.     return 1;
  207. }
  208. public OnVehicleSpawn(vehicleid)
  209. {
  210.     return 1;
  211. }
  212.  
  213. public OnVehicleDeath(vehicleid, killerid)
  214. {
  215.     return 1;
  216. }
  217.  
  218. public OnPlayerText(playerid, text[])
  219. {
  220.     new
  221.         message[128];
  222.     format(message, sizeof(message), "%s says: %s", GetName(playerid), text);
  223.     ProxDetector(30.0, playerid, message, -1);
  224.     return 0;
  225. }
  226.  
  227. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  228. {
  229.     if(success)
  230.     {
  231.         return 1;
  232.     }
  233.  
  234.     if(strcmp(cmdtext, "/help", true) == 0)
  235.     {
  236.         SendClientMessage(playerid, -1, "Available commands: /me - /do - /(s)hout  ");
  237.         return 1;
  238.     }
  239.  
  240.     if(strcmp(cmdtext, "/kill", true) == 0)
  241.     {
  242.         SetPlayerHealth(playerid, 0);
  243.         return 1;
  244.     }
  245.     if(!strcmp(cmdtext, "/drinks", true))
  246.     {
  247.         ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "What is it that you want?", "Sprunk ($1)\nBeer ($2)\nWine ($3)", "Purchase", "Cancel");
  248.         return 1;
  249.     }
  250.  
  251.     return 0;
  252. }
  253.  
  254. public OnPlayerCommandText(playerid, cmdtext[])
  255. {
  256.     if(!strcmp(cmdtext, "/drinks", true))
  257.     {
  258.         ShowPlayerDialog(playerid, 1, DIALOG_STYLE_LIST, "What is it that you want?", "Sprunk ($1)\nBeer ($2)\nWine ($3)", "Purchase", "Cancel");
  259.         return 1;
  260.     }
  261.     return 0;
  262. }
  263.  
  264. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  265. {
  266.     return 1;
  267. }
  268.  
  269. public OnPlayerExitVehicle(playerid, vehicleid)
  270. {
  271.     return 1;
  272. }
  273.  
  274. public OnPlayerStateChange(playerid, newstate, oldstate)
  275. {
  276.     return 1;
  277. }
  278.  
  279. public OnPlayerEnterCheckpoint(playerid)
  280. {
  281.     return 1;
  282. }
  283.  
  284. public OnPlayerLeaveCheckpoint(playerid)
  285. {
  286.     return 1;
  287. }
  288.  
  289. public OnPlayerEnterRaceCheckpoint(playerid)
  290. {
  291.     return 1;
  292. }
  293.  
  294. public OnPlayerLeaveRaceCheckpoint(playerid)
  295. {
  296.     return 1;
  297. }
  298.  
  299. public OnRconCommand(cmd[])
  300. {
  301.     return 1;
  302. }
  303.  
  304. public OnPlayerRequestSpawn(playerid)
  305. {
  306.     return 1;
  307. }
  308.  
  309. public OnObjectMoved(objectid)
  310. {
  311.     return 1;
  312. }
  313.  
  314. public OnPlayerObjectMoved(playerid, objectid)
  315. {
  316.     return 1;
  317. }
  318.  
  319. public OnPlayerPickUpPickup(playerid, pickupid)
  320. {
  321.     return 1;
  322. }
  323.  
  324. public OnVehicleMod(playerid, vehicleid, componentid)
  325. {
  326.     return 1;
  327. }
  328.  
  329. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  330. {
  331.     return 1;
  332. }
  333.  
  334. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  335. {
  336.     return 1;
  337. }
  338.  
  339. public OnPlayerSelectedMenuRow(playerid, row)
  340. {
  341.     return 1;
  342. }
  343.  
  344. public OnPlayerExitedMenu(playerid)
  345. {
  346.     return 1;
  347. }
  348.  
  349. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  350. {
  351.     return 1;
  352. }
  353.  
  354. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  355. {
  356.     if ((oldkeys & KEY_FIRE) && (newkeys & KEY_CROUCH))
  357.     {
  358.         new weapon = GetPlayerWeapon(playerid);
  359.         if(weapon == 24)
  360.         {
  361.             ApplyAnimation(playerid,"GYMNASIUM","gym_tread_falloff",1.0,0,0,0,0,0);
  362.             GameTextForPlayer(playerid, "For C-Bugging your weapon has been removed!", 5000, 1);
  363.         }
  364.     }
  365.     return 1;
  366. }
  367. public OnRconLoginAttempt(ip[], password[], success)
  368. {
  369.     return 1;
  370. }
  371.  
  372. public OnPlayerUpdate(playerid)
  373. {
  374.     return 1;
  375. }
  376.  
  377. public OnPlayerStreamIn(playerid, forplayerid)
  378. {
  379.     return 1;
  380. }
  381.  
  382. public OnPlayerStreamOut(playerid, forplayerid)
  383. {
  384.     return 1;
  385. }
  386.  
  387. public OnVehicleStreamIn(vehicleid, forplayerid)
  388. {
  389.     return 1;
  390. }
  391.  
  392. public OnVehicleStreamOut(vehicleid, forplayerid)
  393. {
  394.     return 1;
  395. }
  396.  
  397. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  398. {
  399.     switch( dialogid )
  400.     {
  401.         case DIALOG_REGISTER:
  402.         {
  403.             if (!response) return Kick(playerid);
  404.             if(response)
  405.             {
  406.                 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""COL_WHITE"Making your account ..",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
  407.                 new INI:File = INI_Open(UserPath(playerid));
  408.                 INI_SetTag(File,"PlayerData");
  409.                 new HashPass[129];
  410.                 WP_Hash(HashPass, sizeof(HashPass), inputtext);
  411.                 INI_WriteString(File, "Password", HashPass);
  412.                 INI_WriteInt(File,"Cash",0);
  413.                 INI_WriteInt(File,"Admin",-1);
  414.                 INI_WriteInt(File,"Kills",0);
  415.                 INI_WriteInt(File,"Deaths",0);
  416.                 INI_Close(File);
  417.  
  418.                 SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  419.             }
  420.         }
  421.  
  422.         case DIALOG_LOGIN:
  423.         {
  424.             if ( !response ) return Kick ( playerid );
  425.             if( response )
  426.             {
  427.                 new HashPass[129];
  428.                 WP_Hash(HashPass, sizeof(HashPass), inputtext);
  429.                 if(strcmp(HashPass, PlayerInfo[playerid][pPass]) == 0)
  430.                 {
  431.                     INI_ParseFile(UserPath(playerid), "LoadUser_data", .bExtra = true, .extra = playerid);
  432.                     GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  433.                     ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
  434.                 }
  435.                 else
  436.                 {
  437.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
  438.                 }
  439.                 return 1;
  440.             }
  441.         }
  442.     }
  443.     return 1;
  444. }
  445.  
  446. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  447. {
  448.     return 1;
  449. }
  450.  
  451. // Player Commands
  452.  
  453. CMD:me(playerid, params[])
  454. {
  455.     new
  456.         string[128],
  457.         action[100];
  458.     if(sscanf(params, "s[100]", action))
  459.     {
  460.         SendClientMessage(playerid, -1, "USAGE: /me [action]");
  461.         return 1;
  462.     }
  463.     else
  464.     {
  465.         format(string, sizeof(string), "* %s %s", GetName(playerid), action);
  466.         ProxDetector(30, playerid, string, COL_PURPLE);
  467.     }
  468.     return 1;
  469. }
  470.  
  471. CMD:do(playerid, params[])
  472. {
  473.     new
  474.         string[128],
  475.         action[100];
  476.     if(sscanf(params, "s[100]", action))
  477.     {
  478.         SendClientMessage(playerid, -1, "USAGE: /do [action]");
  479.         return 1;
  480.     }
  481.     else
  482.     {
  483.         format(string, sizeof(string), "* %s (( %s ))", action, GetName(playerid));
  484.         ProxDetector(30, playerid, string, COL_PURPLE);
  485.     }
  486.     return 1;
  487. }
  488.  
  489.  
  490. CMD:shout(playerid, params[])
  491. {
  492.     new
  493.         string[128],
  494.         shout[100];
  495.     if(sscanf(params, "s[100]", shout))
  496.     {
  497.         SendClientMessage(playerid, -1, "USAGE: /(s)hout [message]");
  498.         return 1;
  499.     }
  500.     else
  501.     {
  502.         format(string, sizeof(string), "%s shouts: %s!",GetName(playerid),shout);
  503.         ProxDetector(50.0, playerid, string, -1);
  504.     }
  505.     return 1;
  506. }
  507.  
  508. // Admin Commands
  509.  
  510. // Extras
  511.  
  512. GetWeaponType(weaponid)
  513. {
  514.     switch(weaponid)
  515.     {
  516.         case 1: return 331; case 2: return 333; case 3: return 334;
  517.         case 4: return 335; case 5: return 336; case 6: return 337;
  518.         case 7: return 338; case 8: return 339; case 9: return 341;
  519.         case 10: return 321; case 11: return 322; case 12: return 323;
  520.         case 13: return 324; case 14: return 325; case 15: return 326;
  521.         case 16: return 342; case 17: return 343; case 18: return 344;
  522.         case 22: return 346; case 23: return 347; case 24: return 348;
  523.         case 25: return 349; case 26: return 350; case 27: return 351;
  524.         case 28: return 352; case 29: return 353; case 30: return 355;
  525.         case 31: return 356; case 32: return 372; case 33: return 357;
  526.         case 34: return 358; case 35: return 359; case 36: return 360;
  527.         case 37: return 361; case 38: return 362; case 39: return 363;
  528.         case 41: return 365; case 42: return 366; case 46: return 371;
  529.     }
  530.     return -1;
  531. }
Advertisement
Add Comment
Please, Sign In to add comment