rendered paste body#include <a_samp>
#include <dutils>
#include <DUDB>
#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;
}