Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*******************************************************************************
- CODE DM
- 0.3.7-R2
- DEVELOPER - code
- *******************************************************************************/
- #include <a_samp>
- #include <zcmd>
- #include <sscanf2>
- #include <YSI\y_ini>
- #define TEAM_HOBOS 0
- #define TEAM_PIZZA 1
- #define TEAM_POLICE 2
- #define DIALOG_REGISTER 1
- #define DIALOG_LOGIN 2
- #define DIALOG_SUCCESS_1 3
- #define DIALOG_SUCCESS_2 4
- #define PATH "/Users/%s.ini"
- #define COLOR_WHITE 0xFFFFFFAA
- #define COL_WHITE "{FFFFFF}"
- #define COL_RED "{F81414}"
- #define COL_GREEN "{00FF22}"
- #define COL_LIGHTBLUE "{00CED1}
- #define COLOR_ORANGE 0xFF9900AA
- #define COLOR_LIME 0x10F441AA
- new Hobos;
- new Police;
- new Pizza;
- new Vehicle[MAX_PLAYERS];
- new Text:Welcome;
- enum pInfo
- {
- pPass,
- pCash,
- pAdmin,
- pKills,
- pDeaths,
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- forward LoadUser_data(playerid,name[],value[]);
- public LoadUser_data(playerid,name[],value[])
- {
- INI_Int("Password",PlayerInfo[playerid][pPass]);
- INI_Int("Cash",PlayerInfo[playerid][pCash]);
- INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
- INI_Int("Kills",PlayerInfo[playerid][pKills]);
- INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
- return 1;
- }
- stock UserPath(playerid)
- {
- new string[128],playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid,playername,sizeof(playername));
- format(string,sizeof(string),PATH,playername);
- return string;
- }
- stock udb_hash(buf[]) {
- new length=strlen(buf);
- new s1 = 1;
- new s2 = 0;
- new n;
- for (n=0; n<length; n++)
- {
- s1 = (s1 + buf[n]) % 65521;
- s2 = (s2 + s1) % 65521;
- }
- return (s2 << 16) + s1;
- }
- main()
- {
- print("CODE DEATMATCH Gamemode Successfully Launched");
- print("DEVELOPER: code");
- print("SPECIAL CREDITS: frozen");
- print("SA-MP VERSION: 0.3.7-R2");
- }
- public OnGameModeInit()
- {
- DisableInteriorEnterExits(); //Players Will NOT Be Able To Enter Interiors
- SetGameModeText("CDM 0.1");
- //-------------------------[PLAYER CLASS SELECTION]-----------------------
- AddPlayerClass(137,1742.7032,-1862.0035,13.5768,358.8309,24,5000,31,5000,34,5000); // HOBOS >
- AddPlayerClass(155,2103.2817,-1806.9893,13.5547,88.4048,24,5000,31,5000,34,5000); // PIZZA > DGL + SNIP + M4
- AddPlayerClass(280,1552.5498,-1675.5930,16.1953,87.4697,24,5000,31,5000,34,5000); // POLICE >
- AddPlayerClass(8,2142.4905,-1478.5695,25.5391,86.7187,24,5000,31,5000,34,5000); // RATS >
- //-------------------------[SERVER VEHICLES]------------------------------
- AddStaticVehicle(448,2097.9333,-1801.2150,12.9841,89.5066,0,6); // PIZZA
- AddStaticVehicle(448,2097.8376,-1799.8982,12.9853,87.7980,0,6); // PIZZA
- AddStaticVehicle(448,2097.7236,-1797.5356,12.9877,89.0463,0,6); // PIZZA
- AddStaticVehicle(448,2097.7141,-1798.5912,12.9861,89.6381,0,6); // PIZZA
- AddStaticVehicle(596,1536.0334,-1670.0819,13.3828,359.3602,0,1); // POLICE
- AddStaticVehicle(599,1535.8279,-1679.5120,13.3828,359.6771,0,1); // POLICE
- //-------------------------[3DTEXT LABELS]-------------------------------
- Create3DTextLabel("Hobo Headquarters",0xFFFF00FF,1742.7032,-1862.0035,13.5768,50.0,0);
- Create3DTextLabel("Police Headquarters",0x0000BBAA,1552.5498,-1675.5930,16.1953,50.0,0);
- Create3DTextLabel("Pizza Headquarters",0xB8860BAA,2102.9456,-1806.9800,13.5547,50.0,0);
- Create3DTextLabel("Rat Headquarters",0x10F441AA,2142.4905,-1478.5695,25.5391,86.7187,0,0);
- //-------------------------GangZones-------------------------------------
- Hobos = GangZoneCreate(1695.218,-1871.354,1816.909,-1733.182);
- Police = GangZoneCreate(1444.231,-1733.182,1691.416,-1595.012);
- Pizza = GangZoneCreate(2083.108,-1895.04,2197.193,-1760.817);
- }
- public OnPlayerSpawn(playerid)
- {
- SendClientMessage(playerid, COLOR_WHITE, "Welcome you disgusting rat!");
- //------------------------Gangzone--------------------------------------
- GangZoneShowForAll(Hobos,0xFFFF00AF);
- GangZoneShowForAll(Police,0x0000FFD2);
- GangZoneShowForAll(Pizza,0xFF8000DB);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- SendDeathMessage(killerid, playerid, reason);
- return 1;
- }
- stock GetTeamZoneColor(teamid)
- {
- switch(teamid
- {
- case TEAM_HOBOS: return 0x00FF0088;
- case TEAM_PIZZA: return 0xFF00FF88;
- case TEAM_POLICE: return 0xFFFF0088;
- case TEAM_RAT: return 0x10F441AA;
- }
- return -1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1869.176269, -1362.816650, 19.140625);
- SetPlayerFacingAngle(playerid, 233.139862);
- SetPlayerCameraLookAt(playerid, 1869.176269, -1362.816650, 19.140625);
- SetPlayerCameraPos(playerid, 1869.176269 + (10 * floatsin(-233.139862, degrees)), -1362.816650 + (10 * floatcos(-233.139862, degrees)), 19.140625);
- switch(classid)
- {
- case 0:
- {
- GameTextForPlayer(playerid, "~y~Hobos", 1000, 4);
- SetPlayerHealth(playerid,100); // HP
- SetPlayerArmour(playerid,100); // ARMOR
- SetPlayerColor(playerid,0x00FF0088); // Color
- }
- case 1:
- {
- GameTextForPlayer(playerid, "~g~Pizza", 1000, 4);
- SetPlayerHealth(playerid,100); // HP
- SetPlayerArmour(playerid,100); // ARMOR
- SetPlayerColor(playerid,0xFFFF0088);
- }
- case 2:
- {
- GameTextForPlayer(playerid, "~b~Police", 1000, 4);
- SetPlayerHealth(playerid,100); // HP
- SetPlayerArmour(playerid,100); // ARMOR
- SetPlayerColor(playerid,0xFF00FF88); // Color
- }
- case 3:
- {
- GameTextForPlayer(playerid, "~r~Rat", 1000, 4);
- SetPlayerHealth(playerid,100); // HP
- SetPlayerArmour(playerid,100); // ARMOR
- SetPlayerColor(playerid,0x10F441AA); // Color
- }
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if(fexist(UserPath(playerid)))
- {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
- }
- new string[64], pName[MAX_PLAYER_NAME];
- GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
- format(string,sizeof string,"%s has joined the server. Welcome!",pName);
- SendClientMessage(playerid, 0xFF99AADD, "Welcome to Code Deathmatch!");
- SendClientMessage(playerid, 0xFF99AADD, "If you require any assistance, do /help");
- SendClientMessage(playerid, 0x00EEADDF, "Have fun deatmatching with all the other rats!");
- Welcome = TextDrawCreate(594.666503, 385.792724, "WELCOME~n~to~n~rat~n~deatmatch~n~");
- TextDrawLetterSize(Welcome, 0.400000, 1.600000);
- TextDrawAlignment(Welcome, 2);
- TextDrawColor(Welcome, -1);
- TextDrawSetShadow(Welcome, 0);
- TextDrawSetOutline(Welcome, 1);
- TextDrawBackgroundColor(Welcome, 255);
- TextDrawFont(Welcome, 3);
- TextDrawSetProportional(Welcome, 1);
- TextDrawSetShadow(Welcome, 0);
- TextDrawShowForPlayer(playerid, Welcome);
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch( dialogid )
- {
- case DIALOG_REGISTER:
- {
- if (!response) return Kick(playerid);
- if(response)
- {
- 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");
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"data");
- INI_WriteInt(File,"Password",udb_hash(inputtext));
- INI_WriteInt(File,"Cash",0);
- INI_WriteInt(File,"Admin",0);
- INI_WriteInt(File,"Kills",0);
- INI_WriteInt(File,"Deaths",0);
- INI_Close(File);
- SpawnPlayer(playerid);
- }
- }
- case DIALOG_LOGIN:
- {
- if ( !response ) return Kick ( playerid );
- if( response )
- {
- if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
- {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
- }
- else
- {
- 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");
- }
- return 1;
- }
- }
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"data");
- INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
- INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
- INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
- INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
- INI_Close(File);
- return 1;
- }
- public OnPlayerCommandPerformed(playerid, cmdtext[],success)
- {
- if(!success) SendClientMessage(playerid, COLOR_WHITE, "SERVER: You're not a wizard, you can't use commands that do not exist.");
- return 1;
- }
- CMD:help(playerid)
- {
- {
- SendClientMessage(playerid,0xFFFFFF,"/stats - /helpme - /report - /admins"); // /help CMD
- }
- return 1;
- }
- CMD:kill(playerid)
- {
- SetPlayerHealth(playerid, 0);
- SendClientMessage(playerid, 0xADFF2F, "You took the easy path scum!");
- return 1;
- }
- CMD:heal(playerid, params[])
- {
- SetPlayerHealth(playerid,100);
- SendClientMessage(playerid, 0x10F441AA, "You have been fully healed!");
- return 1;
- }
- CMD:stats(playerid, params[])
- {
- new string[128];
- format(string, sizeof(string), "Kills: %i | Deaths: %i | Cash: %d | Admin: %d", PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pCash],PlayerInfo[playerid][pAdmin]);
- SendClientMessage(playerid, -1, string);
- return 1;
- }
- CMD:goto(playerid,params[]) // GOTO CMD
- {
- new ID;
- new Float:X;
- new Float:Y;
- new Float:Z;
- new Float:A;
- if(sscanf(params,"i", ID)) return SendClientMessage(playerid,-1,"{FF0000}AdmUsage: {15FF00}/Goto [PlayerID]");
- GetPlayerPos(ID, X,Y,Z);
- GetPlayerFacingAngle(ID, A);
- SetPlayerPos(playerid, X,Y,Z);
- SetPlayerFacingAngle(playerid, A);
- SendClientMessage(playerid, -1, "{FF0000}Cmd: {15FF00}You teleported to specified player !");
- return 1;
- }
- CMD:get( playerid, params[ ] )
- {
- if( !IsPlayerAdmin( playerid ) ) return 1;
- new
- id
- ;
- if( sscanf( params, "r", id ) ) return SendClientMessage( playerid, -1, "Usage: /get <ID/Part Of Name>" );
- if( id == INVALID_PLAYER_ID ) return SendClientMessage( playerid, -1, "Offline player" );
- new
- Float: xx,
- Float: yy,
- Float: zz
- ;
- GetPlayerPos( playerid, xx, yy, zz );
- if( IsPlayerInAnyVehicle( id ) ) RemovePlayerFromVehicle( id );
- SetPlayerInterior( id, GetPlayerInterior( playerid ) );
- SetPlayerPos( id, xx, yy, zz );
- SetPlayerVirtualWorld( id, GetPlayerVirtualWorld( playerid ) );
- return 1;
- }
- CMD:giveweapon(playerid,params[])
- {
- new pid, wid, amt;
- if(sscanf(params,"udd",pid,wid,amt))return SendClientMessage(playerid,0xff0000FF,"ERROR: Usage /giveweapon [playerid/name][weaponid][ammo]");
- if(wid < 0 || wid >40)return SendClientMessage(playerid,0xff0000FF,"ERROR: Invalid weaponid");
- if(pid != INVALID_PLAYER_ID && IsPlayerConnected(pid))
- {
- if(IsPlayerAdmin(playerid))
- {
- GivePlayerWeapon(pid,wid,amt);
- }
- else SendClientMessage(playerid,0xff0000FF,"ERROR: You don't have permission to use that command");
- }
- else SendClientMessage(playerid,0xff0000FF,"ERROR: Player not found");
- return 1;
- }
- CMD:repair(playerid, params[])
- {
- if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "You are not in a vehicle!");
- if(GetPlayerState(playerid) != 2) return SendClientMessage(playerid, -1, "You are not in the driver seat!");
- RepairVehicle(GetPlayerVehicleID(playerid));
- SendClientMessage(playerid, -1, "Your vehicle has been sucessfully repaired!");
- PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
- return 1;
- }
- CMD:throw(playerid, params[])
- {
- if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "Player is not in an vehicle!");
- RemovePlayerFromVehicle(playerid);
- SendClientMessage(playerid, -1, "Player has been thrown out of the vehicle!");
- return 1;
- }
- CMD:explode(playerid,params[])
- {
- new string[128], ID, Float:x, Float:y, Float:z;
- if(sscanf(params, "u", ID)) SendClientMessage(playerid, -1, "Correct usage: /explode <playerid/nickname>");
- else if(!IsPlayerConnected(ID)) SendClientMessage(playerid, -1, "That player is not online.");
- else
- {
- GetPlayerPos(ID, x, y, z);
- CreateExplosion(x, y, z, 12, 10.0);
- new name[20];
- format(string, sizeof(string), "You have exploded %s(%d).", GetPlayerName(ID, name, sizeof(name)), ID);
- SendClientMessage(playerid, -1, string);
- }
- }
- CMD:skin(playerid, params[])
- {
- new skin;
- if(sscanf(params, "i", skin)) return SendClientMessage(playerid, -1, "Usage: /skin [Skin ID]");
- if(skin < 299 || skin > 0)
- SetPlayerSkin(playerid, skin);
- else
- SendClientMessage(playerid, -1, "Invalid Skin ID!");
- return 1;
- }
- CMD:armor(playerid,params[])
- {
- new armor;
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000AA, "You do not have the permission to use this command!");
- if(sscanf(params, "i", armor)) return SendClientMessage(playerid, -1, "Usage: /armor <ID>");
- SetPlayerArmour(playerid,100.0);
- SendClientMessage(playerid,-1, "You have refilled your armour state");
- new
- id
- ;
- if( id == INVALID_PLAYER_ID ) return SendClientMessage( playerid, -1, "Player is not connected" );
- else
- SetPlayerArmour(playerid,0);
- return 1;
- }
- CMD:setadmin(playerid, params[])
- {
- new id, level;
- if(sscanf(params, "ud", id, level)) return SendClientMessage(playerid, -1, "[USAGE]: /setadmin <playerid> <rank>");
- if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "[ERROR]: Player isn't online!");
- PlayerInfo[id][pAdmin] = level;
- return 1;
- }
- CMD:jetpack(playerid, params[])
- {
- new string[90],pname[MAX_PLAYER_NAME];
- GetPlayerName(playerid, pname, sizeof(pname));
- format(string, sizeof(string), "%s has spawned a jetpack!", pname);
- SendClientMessageToAll(-1, string);
- SetPlayerSpecialAction(playerid, 2);
- return 1;
- }
- CMD:report(playerid, params[]) {
- new id;
- new reason[128];
- if(sscanf(params, "us[128]", id, reason)) return SendClientMessage(playerid, COLOR_ORANGE, "[SERVER] - USAGE: /report [ID] [REASON]");
- new string[150], sender[MAX_PLAYER_NAME], receiver[MAX_PLAYER_NAME];
- GetPlayerName(playerid, sender, sizeof(sender));
- GetPlayerName(id, receiver, sizeof(receiver));
- format(string, sizeof(string), "[ADMIN] - %s(%d) has reported %s(%d)", sender, playerid, receiver, id);
- SendMessageToAdmins(string);
- format(string, sizeof(string), "[ADMIN] - Reason: %s", reason);
- SendMessageToAdmins(string);
- SendClientMessage(playerid, COLOR_ORANGE, "Your report has been sent.");
- return 1;
- }
- stock SendMessageToAdmins(text[])
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerAdmin(i))
- {
- SendClientMessage(i, COLOR_LIME, text);
- }
- }
- }
- CMD:veh(playerid, params[])
- {
- new car;
- new string[128];
- new Float:X, Float:Y, Float:Z;
- GetPlayerPos(playerid, Float:X, Float:Y, Float:Z);
- if(sscanf(params,"i", car)) return SendClientMessage(playerid, -1, "[USAGE]: /veh <Vehicle ID 400 - 611>");
- else if(car < 400 || car >611) return SendClientMessage(playerid, -1, "SERVER - Usage: You can't spawn vehicles under 400 and above 611");
- {
- if(Vehicle[playerid] != 0)
- {
- DestroyVehicle(Vehicle[playerid]);
- }
- Vehicle[playerid] = CreateVehicle(car, X, Y, Z + 2.0, 0, -1, -1, 1);
- format(string,sizeof(string),"You have spawned vehicle ID %i", car);
- SendClientMessage(playerid, 0xffffffff, string);
- PutPlayerInVehicle(playerid, Vehicle[playerid], 0);
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement