#include #include #include #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #define COLOR_SYSTEM 0xEFEFF7AA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_GREEN 0x33AA33FF #define COLOR_ORANGE 0xFF9900FF #define COLOR_YELLOW 0xFFFF00AA #define PocketMoney 500 new Menu:Weapons; new gLastGaveCash[MAX_PLAYERS]; new gActivePlayers[MAX_PLAYERS]; new PLAYERLIST_authed[MAX_PLAYERS]; forward PlayerLevel(playerid); forward SetPlayerRandomSpawn(playerid); forward SetupPlayerForClassSelection(playerid); new playerColors[100] = { 0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEE82EEFF, 0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0x534081FF,0x0495CDFF, 0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF, 0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF, 0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF, 0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF, 0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF, 0x42ACF5FF,0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF, 0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF, 0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,0x3FE65CFF }; new Float:gRandomPlayerSpawns[16][4] = { {-1545.1586,-439.9543,6.0000,45.4920}, {-2079.7693,-404.9095,38.7383,1.9336}, {-2027.0382,-98.7583,35.1641,357.3331}, {-2031.4103,161.4674,28.8359,270.3328}, {-1749.8622,904.2634,24.8906,358.9509}, {-2104.1238,901.8049,76.7109,358.7615}, {-2688.7839,200.6062,5.7576,3.0566}, {-2721.0662,-318.0374,7.8438,12.2956}, {-2521.2673,-623.5247,132.7727,358.3646}, {-2198.5403,-2510.8560,31.1056,318.5848}, {-1438.6898,-1541.5283,101.7578,0.8850}, {-1439.3928,-963.2994,201.0889,356.0029}, {-1743.0195,35.9076,3.5547,4.7037}, {-1347.8800,497.5840,18.2344,0.0985}, {-1605.4989,712.9856,13.7334,2.2990}, {-2898.2720,1026.1722,36.8281,4.8691} }; stock SystemMsg(playerid,msg[]) { if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) { SendClientMessage(playerid,COLOR_SYSTEM,msg); } return 1; } stock PlayerName(playerid) { new name[255]; GetPlayerName(playerid, name, 255); return name; } dcmd_register(playerid,params[]) { if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Already authed."); if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account already exists, please use '/login password'."); if (strlen(params)==0) return SystemMsg(playerid,"Correct usage: '/register password'"); if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Account successfully created. Login with '/login password' now."); return true; } dcmd_login(playerid,params[]) { if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Already authed."); if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account doesn't exist, please use '/register password'."); if (strlen(params)==0) return SystemMsg(playerid,"Correct usage: '/login password'"); if (udb_CheckLogin(PlayerName(playerid),params)) { GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid)); PLAYERLIST_authed[playerid]=true; return SystemMsg(playerid,"Successfully authed!"); } return SystemMsg(playerid,"Login failed!"); } main() { print("\n----------------------------------"); print(" Blank Gamemode by your name here"); print("----------------------------------\n"); } public OnGameModeInit() { SetGameModeText("DM Machine"); // EnableTyrePop(1); AllowInteriorWeapons(1); AllowAdminTeleport(1); EnableZoneNames(1); UsePlayerPedAnims(); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); AddStaticVehicle(538,-1943.2979,158.3730,27.0006,357.3329,-1,-1); // train1 AddStaticPickup(372,2,-2664.8376,1448.8052,7.1016); AddStaticPickup(372,2,-2097.8689,1141.1003,52.6753); AddStaticPickup(352,2,-1667.5295,1401.8842,9.8047); AddStaticPickup(352,2,-2027.8195,-2551.9875,30.6250); AddStaticPickup(325,2,-2807.5823,1187.7839,20.6526); AddStaticPickup(325,2,-2687.8142,722.2857,32.2508); AddStaticPickup(325,2,-2431.2141,993.0415,45.3016); AddStaticPickup(325,2,-1793.3477,510.0178,27.3283); AddStaticPickup(325,2,-2579.0012,-16.9129,8.0781); AddStaticPickup(325,2,-1954.7710,-749.8298,35.8909); AddStaticPickup(325,2,-2180.2034,-2425.0066,30.6250); AddStaticPickup(348,2,-1870.0856,-1608.0374,21.7641); AddStaticPickup(346,2,-2214.8301,-40.7038,35.3203); AddStaticPickup(348,2,-2213.5242,113.0263,35.3203); AddStaticPickup(371,2,-2237.7300,-1711.5620,480.8730); AddStaticPickup(366,2,-1624.3873,-2693.4438,48.7427); AddStaticPickup(1242,2,-2082.9619,-2339.0798,30.6250); AddStaticPickup(1242,2,-2291.7400,-1589.7646,479.3270); AddStaticPickup(1242,2,-1389.8468,-360.2007,6.0000); AddStaticPickup(1242,2,-2625.2793,-191.1426,7.2031); AddStaticPickup(1242,2,-2284.9148,-24.1857,35.3125); AddStaticPickup(1242,2,-1864.6273,111.4731,15.1172); AddStaticPickup(1242,2,-2512.9956,761.0992,35.1719); AddStaticPickup(1242,2,-2919.9424,980.5508,5.9741); AddStaticPickup(1242,2,-1495.4761,1278.3402,7.1797); AddStaticPickup(326,2,-1692.7509,946.9938,24.8906); AddStaticPickup(338,2,-2187.4907,695.7482,53.8906); AddStaticPickup(326,2,-2769.5830,388.3887,4.4631); AddStaticPickup(326,2,-2681.2168,638.6490,14.4531); AddStaticPickup(341,2,-2088.1055,297.6211,40.8801); AddStaticPickup(338,2,-2134.3752,196.5095,35.3437); AddStaticPickup(336,2,-2305.7061,92.4093,35.3516); AddStaticPickup(341,2,-2359.6340,-82.5416,35.3203); AddStaticPickup(338,2,-2535.8926,54.1011,8.6172); AddStaticPickup(337,2,-2791.8672,143.0012,10.0547); AddStaticPickup(338,2,-2791.8052,72.5414,7.8516); AddStaticPickup(326,2,-2789.3306,-52.2111,10.0625); AddStaticPickup(326,2,-2525.4858,-59.4659,21.3382); AddStaticPickup(326,2,-2614.9333,-81.7343,4.3359); AddStaticPickup(326,2,-2695.5859,-199.2012,4.3359); AddStaticPickup(341,2,-2776.4685,-272.7702,7.1875); AddStaticPickup(337,2,-1806.3268,-1627.3392,23.0215); AddStaticPickup(333,2,-2224.8083,-2401.6924,31.9844); AddStaticPickup(355,2,-2905.2925,776.0422,34.8906); AddStaticPickup(354,2,-1663.8708,716.6768,24.8976); AddStaticPickup(354,2,-1954.6929,-958.6012,35.8909); AddStaticPickup(352,2,-2694.1794,-131.0829,4.3359); AddStaticPickup(349,2,-1842.8140,-72.1497,15.1094); AddStaticPickup(361,2,-1579.1855,25.5192,17.3281); AddStaticPickup(261,2,-2133.2236,173.9616,42.2500); AddStaticPickup(366,2,-1714.86,398.95,7.18); SetTimer("PlayerLevel",100,1); return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { SetupPlayerForClassSelection(playerid); return 1; } public SetupPlayerForClassSelection(playerid) { SetPlayerInterior(playerid,14); SetPlayerPos(playerid,258.4893,-41.4008,1002.0234); SetPlayerFacingAngle(playerid, 270.0); SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234); SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234); } public OnPlayerRequestSpawn(playerid) { return 1; } public OnPlayerConnect(playerid) { PLAYERLIST_authed[playerid]=false; new string[256]; new playername[MAX_PLAYER_NAME]; // SetPlayerWantedLevel(playerid,1); new randcol = random(sizeof(playerColors)); SetPlayerColor(playerid, playerColors[randcol]); GetPlayerName(playerid,playername,sizeof(playername)); format(string,sizeof(string), "*** Bem Vindo %s ao DM Machine feito por diogo44.",playername); SendClientMessage(playerid,COLOR_WHITE,string); gActivePlayers[playerid]++; gLastGaveCash[playerid] = GetTickCount(); new Playername[30], str[256]; GetPlayerName(playerid, Playername, 30); // format(str, 256, "%s has joined the server!", Playername); format(str, 256, "*** %s entrou no servidor!", Playername); SendClientMessageToAll(0xFF9900AA, str); return false; } public OnPlayerDisconnect(playerid, reason) { gActivePlayers[playerid]--; new playername[30], str[256]; switch (reason) { case 0: { GetPlayerName(playerid, playername, 30); //format(str, 256, "%s has left the server! (Timeout)", playername); format(str, 256, "*** %s desconectou-se do servidor! (Timeout)", playername); SendClientMessageToAll(0xFF9900AA, str); } case 1: { GetPlayerName(playerid, playername, 30); //format(str, 256, "%s has left the server! (Leaving)", playername); format(str, 256, "*** %s saiu do servidor! (Leaving)", playername); SendClientMessageToAll(0xFF9900AA, str); } case 2: { GetPlayerName(playerid, playername, 30); //format(str, 256, "%s has left the server! (Kicked)", playername); format(str, 256, "*** %s foi kickado do servidor! (Kicked)", playername); SendClientMessageToAll(0xFF9900AA, str); } } if (PLAYERLIST_authed[playerid]) { // Was loggedin, so save the data! dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid)); } PLAYERLIST_authed[playerid]=false; return false; } public OnPlayerSpawn(playerid) { GivePlayerMoney(playerid, PocketMoney); SetPlayerInterior(playerid,0); SetPlayerRandomSpawn(playerid); return 1; } public SetPlayerRandomSpawn(playerid) { new rand = random(sizeof(gRandomPlayerSpawns)); SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player SetPlayerFacingAngle(playerid, gRandomPlayerSpawns[rand][3]); return 1; } public OnPlayerDeath(playerid, killerid, reason) { new playercash; PlayerLevel(playerid); dUserSetINT(PlayerName(playerid)).("deaths", (dUserINT(PlayerName(playerid)).("deaths")) + 1); if(killerid == INVALID_PLAYER_ID) { dUserSetINT(PlayerName(killerid)).("kills", (dUserINT(PlayerName(playerid)).("kills")) + 1); SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); ResetPlayerMoney(playerid); } else { SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); playercash = GetPlayerMoney(playerid); if (playercash > 0) { GivePlayerMoney(killerid, playercash); ResetPlayerMoney(playerid); } else { } } return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerPrivmsg(playerid, recieverid, text[]) { new string[256]; new playername[MAX_PLAYER_NAME]; new recievername[MAX_PLAYER_NAME]; GetPlayerName(recieverid, recievername, sizeof(recievername)); GetPlayerName(playerid, playername, sizeof(playername)); for (new a = 0; a < MAX_PLAYERS; a++) { if (IsPlayerConnected(a) && a == playerid && a == recieverid) { format(string, sizeof(string), "%s to %s: %s", playername, recievername, text); SendClientMessage(a, 0xFFFF00AA, string); } } return 1; } public PlayerLevel(playerid) { new score; score = GetPlayerScore(playerid); if(score <= 20) { SetPlayerWantedLevel(playerid,1); } if(score >= 21 && score <= 35) { SetPlayerWantedLevel(playerid,2); } if(score >= 36 && score <= 55) { SetPlayerWantedLevel(playerid,3); } if(score >= 56 && score <= 90) { SetPlayerWantedLevel(playerid,4); } if(score >= 91 && score <= 120) { SetPlayerWantedLevel(playerid,5); } if(score >= 121) { SetPlayerWantedLevel(playerid,6); } return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(login,5,cmdtext); dcmd(register,8,cmdtext); if (strcmp(cmdtext, "/buyweapon", true)==0){ TogglePlayerControllable(playerid, false); if(GetPlayerWantedLevel(playerid) == 1) { Weapons = CreateMenu("Weapons",1,125,150,300); SetMenuColumnHeader(Weapons, 0, "Armas Disponiveis para o teu nivel:"); AddMenuItem(Weapons,0,"Teargas"); } if(GetPlayerWantedLevel(playerid) == 2) { Weapons = CreateMenu("Weapons",1,125,150,300); SetMenuColumnHeader(Weapons, 0, "Armas Disponiveis para o teu nivel:"); AddMenuItem(Weapons,0,"Teargas"); AddMenuItem(Weapons,0,"Grenade"); } if(GetPlayerWantedLevel(playerid) == 3) { Weapons = CreateMenu("Weapons",1,125,150,300); SetMenuColumnHeader(Weapons, 0, "Armas Disponiveis para o teu nivel:"); AddMenuItem(Weapons,0,"Teargas"); AddMenuItem(Weapons,0,"Grenade"); AddMenuItem(Weapons,0,"Sawnoff Shotgun"); } if(GetPlayerWantedLevel(playerid) == 4) { Weapons = CreateMenu("Weapons",1,125,150,300); SetMenuColumnHeader(Weapons, 0, "Armas Disponiveis para o teu nivel:"); AddMenuItem(Weapons,0,"Teargas"); AddMenuItem(Weapons,0,"Grenade"); AddMenuItem(Weapons,0,"Sawnoff Shotgun"); AddMenuItem(Weapons,0,"Flamethrower"); } if(GetPlayerWantedLevel(playerid) == 5) { Weapons = CreateMenu("Weapons",1,125,150,300); SetMenuColumnHeader(Weapons, 0, "Armas Disponiveis para o teu nivel:"); AddMenuItem(Weapons,0,"Teargas"); AddMenuItem(Weapons,0,"Grenade"); AddMenuItem(Weapons,0,"Sawnoff Shotgun"); AddMenuItem(Weapons,0,"Flamethrower"); AddMenuItem(Weapons,0,"Rocket Launcher"); } if(GetPlayerWantedLevel(playerid) == 6) { Weapons = CreateMenu("Weapons",1,125,150,300); SetMenuColumnHeader(Weapons, 0, "Armas Disponiveis para o teu nivel:"); AddMenuItem(Weapons,0,"Teargas"); AddMenuItem(Weapons,0,"Grenade"); AddMenuItem(Weapons,0,"Sawnoff Shotgun"); AddMenuItem(Weapons,0,"Flamethrower"); AddMenuItem(Weapons,0,"Rocket Launcher"); AddMenuItem(Weapons,0,"Minigun"); } ShowMenuForPlayer(Weapons, playerid); return 1; } if (strcmp(cmdtext, "/score",true)==0){ PlayerLevel(playerid); SetPlayerScore(playerid,33); return 1; } return false; } public OnPlayerInfoChange(playerid) { return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnPlayerSelectedMenuRow(playerid,row) { new Menu:Current = GetPlayerMenu(playerid); if(Current == Weapons) { switch(row){ case 0: { // Teargas GivePlayerWeapon(playerid, 17, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 1: { // Teargas GivePlayerWeapon(playerid, 17, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 2: { // Grenade GivePlayerWeapon(playerid, 16, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 3: { // Teargas GivePlayerWeapon(playerid, 17, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 4: { // Grenade GivePlayerWeapon(playerid, 16, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 5: { // Sawnoff Shotgun GivePlayerWeapon(playerid, 26, 100); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 6: { // Teargas GivePlayerWeapon(playerid, 17, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 7: { // Grenade GivePlayerWeapon(playerid, 16, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 8: { // Sawnoff Shotgun GivePlayerWeapon(playerid, 26, 100); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 9: { // Flamethrower GivePlayerWeapon(playerid, 37, 100); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 10: { // Teargas GivePlayerWeapon(playerid, 17, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 11: { // Grenade GivePlayerWeapon(playerid, 16, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 12: { // Sawnoff Shotgun GivePlayerWeapon(playerid, 26, 100); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 13: { // Flamethrower GivePlayerWeapon(playerid, 37, 100); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 14: { // Rocket Launcher GivePlayerWeapon(playerid, 35, 100); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 15: { // Teargas GivePlayerWeapon(playerid, 17, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 16: { // Grenade GivePlayerWeapon(playerid, 16, 50); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 17: { // Sawnoff Shotgun GivePlayerWeapon(playerid, 26, 100); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 18: { // Flamethrower GivePlayerWeapon(playerid, 37, 100); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 19: { // Rocket Launcher GivePlayerWeapon(playerid, 35, 100); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} case 20: { // Minigun GivePlayerWeapon(playerid, 38, 1000); DestroyMenu(Weapons); TogglePlayerControllable(playerid, true);} } } return 1; } public OnPlayerExitedMenu(playerid) { SendClientMessage(playerid,COLOR_GREEN,"Aqui está a tua arma"); return 1; }