Guest User

TRP v0.4

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