Advertisement
Guest User

example

a guest
Feb 26th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.69 KB | None | 0 0
  1. /*******************************************************************************
  2.  
  3. CODE DM
  4. 0.3.7-R2
  5. DEVELOPER - code
  6.  
  7. *******************************************************************************/
  8.  
  9. #include <a_samp>
  10. #include <zcmd>
  11. #include <sscanf2>
  12. #include <YSI\y_ini>
  13.  
  14. #define TEAM_HOBOS 0
  15. #define TEAM_PIZZA 1
  16. #define TEAM_POLICE 2
  17.  
  18. #define DIALOG_REGISTER 1
  19. #define DIALOG_LOGIN 2
  20. #define DIALOG_SUCCESS_1 3
  21. #define DIALOG_SUCCESS_2 4
  22. #define PATH "/Users/%s.ini"
  23.  
  24. #define COLOR_WHITE 0xFFFFFFAA
  25. #define COL_WHITE "{FFFFFF}"
  26. #define COL_RED "{F81414}"
  27. #define COL_GREEN "{00FF22}"
  28. #define COL_LIGHTBLUE "{00CED1}
  29. #define COLOR_ORANGE 0xFF9900AA
  30. #define COLOR_LIME 0x10F441AA
  31.  
  32. new Hobos;
  33. new Police;
  34. new Pizza;
  35. new Vehicle[MAX_PLAYERS];
  36. new Text:Welcome;
  37.  
  38.  
  39. enum pInfo
  40. {
  41. pPass,
  42. pCash,
  43. pAdmin,
  44. pKills,
  45. pDeaths,
  46. }
  47.  
  48.  
  49. new PlayerInfo[MAX_PLAYERS][pInfo];
  50.  
  51. forward LoadUser_data(playerid,name[],value[]);
  52. public LoadUser_data(playerid,name[],value[])
  53. {
  54. INI_Int("Password",PlayerInfo[playerid][pPass]);
  55. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  56. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  57. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  58. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  59. return 1;
  60. }
  61.  
  62. stock UserPath(playerid)
  63. {
  64. new string[128],playername[MAX_PLAYER_NAME];
  65. GetPlayerName(playerid,playername,sizeof(playername));
  66. format(string,sizeof(string),PATH,playername);
  67. return string;
  68. }
  69.  
  70. stock udb_hash(buf[]) {
  71. new length=strlen(buf);
  72. new s1 = 1;
  73. new s2 = 0;
  74. new n;
  75. for (n=0; n<length; n++)
  76. {
  77. s1 = (s1 + buf[n]) % 65521;
  78. s2 = (s2 + s1) % 65521;
  79. }
  80. return (s2 << 16) + s1;
  81. }
  82.  
  83. main()
  84. {
  85. print("CODE DEATMATCH Gamemode Successfully Launched");
  86. print("DEVELOPER: code");
  87. print("SPECIAL CREDITS: frozen");
  88. print("SA-MP VERSION: 0.3.7-R2");
  89. }
  90.  
  91.  
  92. public OnGameModeInit()
  93.  
  94. {
  95.  
  96. DisableInteriorEnterExits(); //Players Will NOT Be Able To Enter Interiors
  97.  
  98. SetGameModeText("CDM 0.1");
  99. //-------------------------[PLAYER CLASS SELECTION]-----------------------
  100. AddPlayerClass(137,1742.7032,-1862.0035,13.5768,358.8309,24,5000,31,5000,34,5000); // HOBOS >
  101. AddPlayerClass(155,2103.2817,-1806.9893,13.5547,88.4048,24,5000,31,5000,34,5000); // PIZZA > DGL + SNIP + M4
  102. AddPlayerClass(280,1552.5498,-1675.5930,16.1953,87.4697,24,5000,31,5000,34,5000); // POLICE >
  103. AddPlayerClass(8,2142.4905,-1478.5695,25.5391,86.7187,24,5000,31,5000,34,5000); // RATS >
  104. //-------------------------[SERVER VEHICLES]------------------------------
  105. AddStaticVehicle(448,2097.9333,-1801.2150,12.9841,89.5066,0,6); // PIZZA
  106. AddStaticVehicle(448,2097.8376,-1799.8982,12.9853,87.7980,0,6); // PIZZA
  107. AddStaticVehicle(448,2097.7236,-1797.5356,12.9877,89.0463,0,6); // PIZZA
  108. AddStaticVehicle(448,2097.7141,-1798.5912,12.9861,89.6381,0,6); // PIZZA
  109. AddStaticVehicle(596,1536.0334,-1670.0819,13.3828,359.3602,0,1); // POLICE
  110. AddStaticVehicle(599,1535.8279,-1679.5120,13.3828,359.6771,0,1); // POLICE
  111.  
  112. //-------------------------[3DTEXT LABELS]-------------------------------
  113. Create3DTextLabel("Hobo Headquarters",0xFFFF00FF,1742.7032,-1862.0035,13.5768,50.0,0);
  114. Create3DTextLabel("Police Headquarters",0x0000BBAA,1552.5498,-1675.5930,16.1953,50.0,0);
  115. Create3DTextLabel("Pizza Headquarters",0xB8860BAA,2102.9456,-1806.9800,13.5547,50.0,0);
  116. Create3DTextLabel("Rat Headquarters",0x10F441AA,2142.4905,-1478.5695,25.5391,86.7187,0,0);
  117.  
  118. //-------------------------GangZones-------------------------------------
  119. Hobos = GangZoneCreate(1695.218,-1871.354,1816.909,-1733.182);
  120. Police = GangZoneCreate(1444.231,-1733.182,1691.416,-1595.012);
  121. Pizza = GangZoneCreate(2083.108,-1895.04,2197.193,-1760.817);
  122.  
  123. }
  124.  
  125. public OnPlayerSpawn(playerid)
  126. {
  127. SendClientMessage(playerid, COLOR_WHITE, "Welcome you disgusting rat!");
  128.  
  129.  
  130. //------------------------Gangzone--------------------------------------
  131. GangZoneShowForAll(Hobos,0xFFFF00AF);
  132. GangZoneShowForAll(Police,0x0000FFD2);
  133. GangZoneShowForAll(Pizza,0xFF8000DB);
  134. return 1;
  135.  
  136. }
  137.  
  138. public OnPlayerDeath(playerid, killerid, reason)
  139. {
  140. SendDeathMessage(killerid, playerid, reason);
  141. return 1;
  142. }
  143.  
  144.  
  145. stock GetTeamZoneColor(teamid)
  146. {
  147. switch(teamid
  148. {
  149. case TEAM_HOBOS: return 0x00FF0088;
  150. case TEAM_PIZZA: return 0xFF00FF88;
  151. case TEAM_POLICE: return 0xFFFF0088;
  152. case TEAM_RAT: return 0x10F441AA;
  153. }
  154. return -1;
  155. }
  156.  
  157.  
  158. public OnPlayerRequestClass(playerid, classid)
  159. {
  160. SetPlayerPos(playerid, 1869.176269, -1362.816650, 19.140625);
  161. SetPlayerFacingAngle(playerid, 233.139862);
  162. SetPlayerCameraLookAt(playerid, 1869.176269, -1362.816650, 19.140625);
  163. SetPlayerCameraPos(playerid, 1869.176269 + (10 * floatsin(-233.139862, degrees)), -1362.816650 + (10 * floatcos(-233.139862, degrees)), 19.140625);
  164. switch(classid)
  165. {
  166. case 0:
  167. {
  168. GameTextForPlayer(playerid, "~y~Hobos", 1000, 4);
  169. SetPlayerHealth(playerid,100); // HP
  170. SetPlayerArmour(playerid,100); // ARMOR
  171. SetPlayerColor(playerid,0x00FF0088); // Color
  172.  
  173. }
  174. case 1:
  175. {
  176. GameTextForPlayer(playerid, "~g~Pizza", 1000, 4);
  177. SetPlayerHealth(playerid,100); // HP
  178. SetPlayerArmour(playerid,100); // ARMOR
  179. SetPlayerColor(playerid,0xFFFF0088);
  180. }
  181. case 2:
  182. {
  183. GameTextForPlayer(playerid, "~b~Police", 1000, 4);
  184. SetPlayerHealth(playerid,100); // HP
  185. SetPlayerArmour(playerid,100); // ARMOR
  186. SetPlayerColor(playerid,0xFF00FF88); // Color
  187.  
  188. }
  189. case 3:
  190. {
  191. GameTextForPlayer(playerid, "~r~Rat", 1000, 4);
  192. SetPlayerHealth(playerid,100); // HP
  193. SetPlayerArmour(playerid,100); // ARMOR
  194. SetPlayerColor(playerid,0x10F441AA); // Color
  195. }
  196. }
  197. return 1;
  198. }
  199.  
  200. public OnPlayerConnect(playerid)
  201. {
  202. if(fexist(UserPath(playerid)))
  203. {
  204. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  205. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
  206. }
  207. else
  208. {
  209. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
  210. }
  211.  
  212.  
  213.  
  214. new string[64], pName[MAX_PLAYER_NAME];
  215. GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  216. format(string,sizeof string,"%s has joined the server. Welcome!",pName);
  217. SendClientMessage(playerid, 0xFF99AADD, "Welcome to Code Deathmatch!");
  218. SendClientMessage(playerid, 0xFF99AADD, "If you require any assistance, do /help");
  219. SendClientMessage(playerid, 0x00EEADDF, "Have fun deatmatching with all the other rats!");
  220.  
  221. Welcome = TextDrawCreate(594.666503, 385.792724, "WELCOME~n~to~n~rat~n~deatmatch~n~");
  222. TextDrawLetterSize(Welcome, 0.400000, 1.600000);
  223. TextDrawAlignment(Welcome, 2);
  224. TextDrawColor(Welcome, -1);
  225. TextDrawSetShadow(Welcome, 0);
  226. TextDrawSetOutline(Welcome, 1);
  227. TextDrawBackgroundColor(Welcome, 255);
  228. TextDrawFont(Welcome, 3);
  229. TextDrawSetProportional(Welcome, 1);
  230. TextDrawSetShadow(Welcome, 0);
  231. TextDrawShowForPlayer(playerid, Welcome);
  232. return 1;
  233. }
  234.  
  235. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  236. {
  237. switch( dialogid )
  238. {
  239. case DIALOG_REGISTER:
  240. {
  241. if (!response) return Kick(playerid);
  242. if(response)
  243. {
  244. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
  245. new INI:File = INI_Open(UserPath(playerid));
  246. INI_SetTag(File,"data");
  247. INI_WriteInt(File,"Password",udb_hash(inputtext));
  248. INI_WriteInt(File,"Cash",0);
  249. INI_WriteInt(File,"Admin",0);
  250. INI_WriteInt(File,"Kills",0);
  251. INI_WriteInt(File,"Deaths",0);
  252. INI_Close(File);
  253.  
  254. SpawnPlayer(playerid);
  255. }
  256. }
  257.  
  258. case DIALOG_LOGIN:
  259. {
  260. if ( !response ) return Kick ( playerid );
  261. if( response )
  262. {
  263. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  264. {
  265. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  266. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  267. }
  268. else
  269. {
  270. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
  271. }
  272. return 1;
  273. }
  274. }
  275. }
  276. return 1;
  277. }
  278.  
  279. public OnPlayerDisconnect(playerid, reason)
  280. {
  281. new INI:File = INI_Open(UserPath(playerid));
  282. INI_SetTag(File,"data");
  283. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  284. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  285. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  286. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  287. INI_Close(File);
  288. return 1;
  289. }
  290.  
  291. public OnPlayerCommandPerformed(playerid, cmdtext[],success)
  292. {
  293. if(!success) SendClientMessage(playerid, COLOR_WHITE, "SERVER: You're not a wizard, you can't use commands that do not exist.");
  294. return 1;
  295. }
  296.  
  297. CMD:help(playerid)
  298. {
  299. {
  300. SendClientMessage(playerid,0xFFFFFF,"/stats - /helpme - /report - /admins"); // /help CMD
  301. }
  302. return 1;
  303. }
  304.  
  305. CMD:kill(playerid)
  306. {
  307. SetPlayerHealth(playerid, 0);
  308. SendClientMessage(playerid, 0xADFF2F, "You took the easy path scum!");
  309. return 1;
  310. }
  311. CMD:heal(playerid, params[])
  312. {
  313. SetPlayerHealth(playerid,100);
  314. SendClientMessage(playerid, 0x10F441AA, "You have been fully healed!");
  315. return 1;
  316. }
  317.  
  318. CMD:stats(playerid, params[])
  319. {
  320. new string[128];
  321. format(string, sizeof(string), "Kills: %i | Deaths: %i | Cash: %d | Admin: %d", PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pCash],PlayerInfo[playerid][pAdmin]);
  322. SendClientMessage(playerid, -1, string);
  323. return 1;
  324. }
  325.  
  326.  
  327. CMD:goto(playerid,params[]) // GOTO CMD
  328. {
  329. new ID;
  330. new Float:X;
  331. new Float:Y;
  332. new Float:Z;
  333. new Float:A;
  334. if(sscanf(params,"i", ID)) return SendClientMessage(playerid,-1,"{FF0000}AdmUsage: {15FF00}/Goto [PlayerID]");
  335. GetPlayerPos(ID, X,Y,Z);
  336. GetPlayerFacingAngle(ID, A);
  337. SetPlayerPos(playerid, X,Y,Z);
  338. SetPlayerFacingAngle(playerid, A);
  339. SendClientMessage(playerid, -1, "{FF0000}Cmd: {15FF00}You teleported to specified player !");
  340. return 1;
  341. }
  342.  
  343. CMD:get( playerid, params[ ] )
  344. {
  345. if( !IsPlayerAdmin( playerid ) ) return 1;
  346. new
  347. id
  348. ;
  349. if( sscanf( params, "r", id ) ) return SendClientMessage( playerid, -1, "Usage: /get <ID/Part Of Name>" );
  350. if( id == INVALID_PLAYER_ID ) return SendClientMessage( playerid, -1, "Offline player" );
  351.  
  352. new
  353. Float: xx,
  354. Float: yy,
  355. Float: zz
  356. ;
  357. GetPlayerPos( playerid, xx, yy, zz );
  358.  
  359. if( IsPlayerInAnyVehicle( id ) ) RemovePlayerFromVehicle( id );
  360. SetPlayerInterior( id, GetPlayerInterior( playerid ) );
  361. SetPlayerPos( id, xx, yy, zz );
  362. SetPlayerVirtualWorld( id, GetPlayerVirtualWorld( playerid ) );
  363. return 1;
  364. }
  365.  
  366. CMD:giveweapon(playerid,params[])
  367. {
  368. new pid, wid, amt;
  369. if(sscanf(params,"udd",pid,wid,amt))return SendClientMessage(playerid,0xff0000FF,"ERROR: Usage /giveweapon [playerid/name][weaponid][ammo]");
  370. if(wid < 0 || wid >40)return SendClientMessage(playerid,0xff0000FF,"ERROR: Invalid weaponid");
  371. if(pid != INVALID_PLAYER_ID && IsPlayerConnected(pid))
  372. {
  373. if(IsPlayerAdmin(playerid))
  374. {
  375. GivePlayerWeapon(pid,wid,amt);
  376. }
  377. else SendClientMessage(playerid,0xff0000FF,"ERROR: You don't have permission to use that command");
  378. }
  379. else SendClientMessage(playerid,0xff0000FF,"ERROR: Player not found");
  380. return 1;
  381. }
  382.  
  383. CMD:repair(playerid, params[])
  384. {
  385. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "You are not in a vehicle!");
  386. if(GetPlayerState(playerid) != 2) return SendClientMessage(playerid, -1, "You are not in the driver seat!");
  387. RepairVehicle(GetPlayerVehicleID(playerid));
  388. SendClientMessage(playerid, -1, "Your vehicle has been sucessfully repaired!");
  389. PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
  390. return 1;
  391. }
  392.  
  393. CMD:throw(playerid, params[])
  394. {
  395. if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Player is not in an vehicle!");
  396. RemovePlayerFromVehicle(playerid);
  397. SendClientMessage(playerid, -1, "Player has been thrown out of the vehicle!");
  398. return 1;
  399.  
  400. }
  401.  
  402. CMD:explode(playerid,params[])
  403. {
  404. new string[128], ID, Float:x, Float:y, Float:z;
  405. if(sscanf(params, "u", ID)) SendClientMessage(playerid, -1, "Correct usage: /explode <playerid/nickname>");
  406. else if(!IsPlayerConnected(ID)) SendClientMessage(playerid, -1, "That player is not online.");
  407. else
  408. {
  409. GetPlayerPos(ID, x, y, z);
  410. CreateExplosion(x, y, z, 12, 10.0);
  411. new name[20];
  412. format(string, sizeof(string), "You have exploded %s(%d).", GetPlayerName(ID, name, sizeof(name)), ID);
  413. SendClientMessage(playerid, -1, string);
  414. }
  415. }
  416.  
  417.  
  418. CMD:skin(playerid, params[])
  419. {
  420. new skin;
  421. if(sscanf(params, "i", skin)) return SendClientMessage(playerid, -1, "Usage: /skin [Skin ID]");
  422. if(skin < 299 || skin > 0)
  423. SetPlayerSkin(playerid, skin);
  424. else
  425. SendClientMessage(playerid, -1, "Invalid Skin ID!");
  426. return 1;
  427. }
  428.  
  429. CMD:armor(playerid,params[])
  430. {
  431. new armor;
  432. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000AA, "You do not have the permission to use this command!");
  433. if(sscanf(params, "i", armor)) return SendClientMessage(playerid, -1, "Usage: /armor <ID>");
  434. SetPlayerArmour(playerid,100.0);
  435. SendClientMessage(playerid,-1, "You have refilled your armour state");
  436. new
  437. id
  438. ;
  439. if( id == INVALID_PLAYER_ID ) return SendClientMessage( playerid, -1, "Player is not connected" );
  440. else
  441. SetPlayerArmour(playerid,0);
  442.  
  443.  
  444. return 1;
  445. }
  446.  
  447. CMD:setadmin(playerid, params[])
  448. {
  449. new id, level;
  450. if(sscanf(params, "ud", id, level)) return SendClientMessage(playerid, -1, "[USAGE]: /setadmin <playerid> <rank>");
  451. if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "[ERROR]: Player isn't online!");
  452. PlayerInfo[id][pAdmin] = level;
  453. return 1;
  454.  
  455. }
  456.  
  457. CMD:jetpack(playerid, params[])
  458. {
  459. new string[90],pname[MAX_PLAYER_NAME];
  460. GetPlayerName(playerid, pname, sizeof(pname));
  461. format(string, sizeof(string), "%s has spawned a jetpack!", pname);
  462. SendClientMessageToAll(-1, string);
  463. SetPlayerSpecialAction(playerid, 2);
  464. return 1;
  465. }
  466.  
  467. CMD:report(playerid, params[]) {
  468. new id;
  469. new reason[128];
  470. if(sscanf(params, "us[128]", id, reason)) return SendClientMessage(playerid, COLOR_ORANGE, "[SERVER] - USAGE: /report [ID] [REASON]");
  471. new string[150], sender[MAX_PLAYER_NAME], receiver[MAX_PLAYER_NAME];
  472. GetPlayerName(playerid, sender, sizeof(sender));
  473. GetPlayerName(id, receiver, sizeof(receiver));
  474. format(string, sizeof(string), "[ADMIN] - %s(%d) has reported %s(%d)", sender, playerid, receiver, id);
  475. SendMessageToAdmins(string);
  476. format(string, sizeof(string), "[ADMIN] - Reason: %s", reason);
  477. SendMessageToAdmins(string);
  478. SendClientMessage(playerid, COLOR_ORANGE, "Your report has been sent.");
  479. return 1;
  480. }
  481.  
  482. stock SendMessageToAdmins(text[])
  483. {
  484. for(new i = 0; i < MAX_PLAYERS; i++)
  485. {
  486. if(IsPlayerAdmin(i))
  487. {
  488. SendClientMessage(i, COLOR_LIME, text);
  489. }
  490. }
  491. }
  492.  
  493. CMD:veh(playerid, params[])
  494. {
  495. new car;
  496. new string[128];
  497. new Float:X, Float:Y, Float:Z;
  498. GetPlayerPos(playerid, Float:X, Float:Y, Float:Z);
  499. if(sscanf(params,"i", car)) return SendClientMessage(playerid, -1, "[USAGE]: /veh <Vehicle ID 400 - 611>");
  500. else if(car < 400 || car >611) return SendClientMessage(playerid, -1, "SERVER - Usage: You can't spawn vehicles under 400 and above 611");
  501. {
  502. if(Vehicle[playerid] != 0)
  503. {
  504. DestroyVehicle(Vehicle[playerid]);
  505. }
  506. Vehicle[playerid] = CreateVehicle(car, X, Y, Z + 2.0, 0, -1, -1, 1);
  507. format(string,sizeof(string),"You have spawned vehicle ID %i", car);
  508. SendClientMessage(playerid, 0xffffffff, string);
  509. PutPlayerInVehicle(playerid, Vehicle[playerid], 0);
  510. }
  511. return true;
  512. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement