rendered paste body//KILLER SOURCE EDITED BY NEWANGELUS
//LIBRERIE
#include <a_samp>
#include "dini"
#include "dudb"
#include "dutils"
#include "dutils2"
#define COLOR_SYSTEM 0xF5FF9FAA
#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
//Save
new PLAYERLIST_authed[MAX_PLAYERS];
//SCORE
new killer[2][MAX_PLAYERS];
//TIME
new gRoundTime = 1200000; // Round time - 20 mins
//new gRoundTime = 900000; // Round time - 15 mins
//new gRoundTime = 600000; // Round time - 10 mins
//new gRoundTime = 300000; // Round time - 5 mins
//new gRoundTime = 120000; // Round time - 2 mins
//new gRoundTime = 60000; // Round time - 1 min
//INFO POSPLAYER
enum PlayerSpawnInfo {
Float:PlayerX,
Float:PlayerY,
Float:PlayerZ,
Float:PlayerAngle
}
//RANDOM SPAWN
new Float:gRandomSpawns[][PlayerSpawnInfo] =
{
{2544.5032, 2805.8840, 19.9922, 257.5800},
{2556.2554, 2832.5313, 19.9922, 1.9000},
{2561.9175, 2848.5532, 19.9922, 256.6609},
{2613.9866, 2848.4475, 19.9922, 102.2487},
{2611.5500, 2845.7542, 16.7020, 87.5428},
{2545.9243, 2839.1824, 10.8203, 176.2378},
{2647.6553, 2805.0278, 10.8203, 285.1536},
{2672.9387, 2800.3374, 10.8203, 60.4288},
{2672.8306, 2792.1057, 10.8203, 121.8451},
{2647.7834, 2697.5884, 19.3222, 353.1684},
{2654.5427, 2720.3474, 19.3222, 303.5359},
{2653.2063, 2738.2432, 19.3222, 342.1389},
{2641.1350, 2703.2019, 25.8222, 191.6982},
{2599.1304, 2700.7249, 25.8222, 76.3487},
{2606.1384, 2721.5237, 25.8222, 261.2564},
{2597.3745, 2748.0884, 23.8222, 273.2050},
{2595.0657, 2776.6729, 23.8222, 254.3630},
{2601.3640, 2777.8101, 23.8222, 253.4439},
{2584.3940, 2825.1748, 27.8203, 244.5475},
{2631.8110, 2834.2593, 40.3281, 213.2975},
{2632.2852, 2834.9390, 122.9219, 197.6725},
{2646.1997, 2817.7070, 36.3222, 182.0474},
{2685.8875, 2816.6575, 36.3222, 129.9525},
{2691.1233, 2787.7883, 59.0212, 208.0777},
{2717.8071, 2771.3464, 74.8281, 72.3429},
{2695.2622, 2699.5488, 22.9472, 66.3686},
{2688.8206, 2689.0039, 28.1563, 14.8979},
{2655.0229, 2650.6807, 36.9154, 341.8097},
{2570.4668, 2701.2876, 22.9507, 204.0154},
{2498.9915, 2704.6204, 10.9844, 168.9241},
{2524.1584, 2743.3735, 10.9917, 150.3771},
{2498.3167, 2782.3357, 10.8203, 251.7015},
{2504.5142, 2805.9763, 14.8222, 108.6137},
{2522.2144, 2814.7087, 24.9536, 265.9478},
{2510.6292, 2849.6384, 14.8222, 191.4991},
{2618.2646, 2720.8005, 36.5386, 346.6828},
{2690.9980, 2741.9060, 19.0722, 91.6099}
};
//INFO POS PICKUP
enum PickupSpawnInfo {
Float:PickupX,
Float:PickupY,
Float:PickupZ
}
new Float:gSniperPickups[][PickupSpawnInfo] =
{
{2629.6345, 2732.8936, 36.5386},
{2635.4575, 2767.9346, 25.8222},
{2685.5012, 2746.6240, 20.3222},
{2668.6201, 2767.9753, 17.6896},
{2553.7502, 2754.9238, 10.8203},
{2524.9805, 2817.3428, 10.8203},
{2564.5159, 2823.4812, 12.7568},
{2594.1836, 2821.1226, 12.7647},
{2601.4983, 2769.2195, 25.8222}
};
new Float:gParachutePickups[][PickupSpawnInfo] =
{
{2632.7573, 2829.8999, 64.3359},
{2632.3562, 2829.9094, 94.0156},
{2632.3701, 2829.7065, 122.9219},
{2719.7905, 2775.7646, 74.8281},
{2695.8926,2785.2014,59.0212}
};
new Float: gM4Pickups[][PickupSpawnInfo]=
{
{2591.3149,2636.0310,14.6222},
{2608.3135,2840.6492,19.9922}
};
new Float: gArmourPickups[][PickupSpawnInfo]=
{
{2609.6646,2714.7361,36.5386},
{2543.2439,2847.8376,10.8203},
{2541.5081,2734.3760,10.8130},
{2705.2588,2688.5215,12.8222}
};
new Float: gLifePickups[][PickupSpawnInfo]=
{
{2671.3335,2797.2939,17.6896},
{2592.3718,2754.3201,10.9844},
{2554.3894,2838.5964,10.8203},
{2590.6318,2800.9578,10.8203}
};
forward GameModeExitFunc();
forward IsNumeric(const string[]);
dcmd_reg(playerid, params[])
{
if(PLAYERLIST_authed[playerid]) return SystemMessage(playerid, "SEI GIA' LOGGATO.");
if(udb_Exists(PlayerName(playerid))) return SystemMessage(playerid, "Esiste gi un account con questo nome, digita '/log password'.");
if(strlen(params) == 0) return SystemMessage(playerid, "[DIGITA]: '/reg password'");
if(udb_Create(PlayerName(playerid), params)) return SystemMessage(playerid, "Account creato con successo! ATTENZIONE NON DIMENTICARE LA PASSWORD! DIGITA '/log password' adesso!");
return true;
}
dcmd_log(playerid, params[])
{
if(PLAYERLIST_authed[playerid]) return SystemMessage(playerid, "SEI GIA' LOGGATO.");
if(!udb_Exists(PlayerName(playerid))) return SystemMessage(playerid, "L'account non esite, si prega di regisrarsi con '/reg password'.");
if(strlen(params) == 0) return SystemMessage(playerid, "[DIGITA]: '/log password'");
if(udb_CheckLogin(PlayerName(playerid), params))
{
PLAYERLIST_authed[playerid] = true;
return SystemMessage(playerid, "SEI LOGGATO CON SUCCESSO! (PREMI -> PER SELEZIONARE IL PERSONAGGIO)");
}
return SystemMessage(playerid, "LOGIN FALLITO!");
}
stock SystemMessage(playerid, message[])
{
if((IsPlayerConnected(playerid)) && (strlen(message) > 0))
{
SendClientMessage(playerid, COLOR_SYSTEM, message);
}
return 1;
}
stock PlayerName(playerid)
{
new name[255];
GetPlayerName(playerid, name, 255);
return name;
}
main()
{
print("\n----------------------------------");
print(" KILLER SCORE! By Newangelus");
print("----------------------------------\n");
}
public OnPlayerConnect(playerid){
SendClientMessage(playerid, 0xFFFFFFAA, "=============================");
SendClientMessage(playerid, 0xFFFFFFAA, " WELCOME TO KILLER BETA");
SendClientMessage(playerid, 0xFFFFFFAA, "=============================");
SendClientMessage(playerid, 0xFFFFFFAA, ".:GM realizzata da Newangelus:.");
GameTextForPlayer(playerid, "WELCOME TO KILLER", 5000, 1);
return 1;
}
public OnGameModeInit()
{
SetGameModeText("KILLER SCORE!");
ShowPlayerMarkers(1);
ShowNameTags(1);
SetWorldTime(0);
if(!dini_Exists("scoreboard.ini"))dini_Create("scoreboard.ini");
AddPlayerClass(162, 0.0, 0.0, 0.0, 0.0, 34, 500, 24, 10000, 26, 10000);
AddPlayerClass(255, 0.0, 0.0, 0.0, 0.0, 34, 500, 24, 10000, 26, 10000);
AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 34, 500, 24, 10000, 26, 10000);
AddPlayerClass(106, 0.0, 0.0, 0.0, 0.0, 34, 500, 24, 10000, 26, 10000);
AddPlayerClass(178, 0.0, 0.0, 0.0, 0.0, 34, 500, 24, 10000, 26, 10000);
AddPlayerClass(285, 0.0, 0.0, 0.0, 0.0, 34, 500, 24, 10000, 26, 10000);
AddPlayerClass(281, 0.0, 0.0, 0.0, 0.0, 34, 500, 24, 10000, 26, 10000);
// Loop through the pickups
new i, j;
for (i = 0, j = sizeof(gSniperPickups); i < j; i++)
{
AddStaticPickup(358, 15,
gSniperPickups[i][PickupX],
gSniperPickups[i][PickupY],
gSniperPickups[i][PickupZ]);
}
for (i = 0, j = sizeof(gParachutePickups); i < j; i++)
{
AddStaticPickup(371, 15,
gParachutePickups[i][PickupX],
gParachutePickups[i][PickupY],
gParachutePickups[i][PickupZ]);
}
for (i = 0, j = sizeof(gArmourPickups); i < j; i++)
{
AddStaticPickup(1242,15,
gArmourPickups[i][PickupX],
gArmourPickups[i][PickupY],
gArmourPickups[i][PickupZ]);
}
for (i = 0, j = sizeof(gLifePickups); i < j; i++)
{
AddStaticPickup(1240,15,
gLifePickups[i][PickupX],
gLifePickups[i][PickupY],
gLifePickups[i][PickupZ]);
}
for (i = 0, j = sizeof(gM4Pickups); i < j; i++)
{
AddStaticPickup(356,15,
gM4Pickups[i][PickupX],
gM4Pickups[i][PickupY],
gM4Pickups[i][PickupZ]);
}
SetTimer("GameModeExitFunc", gRoundTime, 0);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
if(PLAYERLIST_authed[playerid] == false){
SystemMessage(playerid, "Non verrai spawnato fino a che non avrai fatto login! '/log password'");
}else{
SetPlayerPos(playerid, 2495.0449, 2773.0566, 10.8158);
SetPlayerFacingAngle(playerid, 88.0);
SetPlayerCameraPos(playerid, 2490.9556, 2773.1326, 10.7968);
SetPlayerCameraLookAt(playerid, 2495.0449, 2773.0566, 10.8158);
}
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
ResetSpawnInfo(playerid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
new string[256];
killer[0][killerid]++;
killer[1][playerid]++;
new name[MAX_PLAYER_NAME];
format(name,sizeof(name),"<%s>",PlayerName(playerid)),
dini_Set("scoreboard.ini",name,"<%d> - <%d>",killer[0][playerid]++,killer[1][playerid]),
format(name,sizeof(name),"<%s>",PlayerName(killerid)),
dini_Set("scoreboard.ini",name,"<%d> - <%d>",killer[0][killerid],killer[1][playerid]++);
SendDeathMessage(killerid, playerid, reason);
SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
ResetSpawnInfo(playerid);
return 1;
}
ResetSpawnInfo(playerid)
{
new rand = random(sizeof(gRandomSpawns));
new skin;
skin=GetPlayerSkin(playerid);
SetSpawnInfo(playerid, 0,skin,
gRandomSpawns[rand][PlayerX],
gRandomSpawns[rand][PlayerY],
gRandomSpawns[rand][PlayerZ],
gRandomSpawns[rand][PlayerAngle],
34, 500, 24, 10000, 26, 10000);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(log, 3, cmdtext);
dcmd(reg, 3, cmdtext);
return false;
}
public OnPlayerDisconnect(playerid)
{
return 1;
}
public IsNumeric(const string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
if (string[i] > '9' || string[i] < '0')
return 0;
return 1;
}
public GameModeExitFunc() { GameModeExit(); }