and if player die, he cant move 5 seconds and watching on camera, and after that he respawn again and can play
Код:
/*******************************
* *
* Minigun Madness *
* By Mike *
*******************************/
#include <a_samp>
#define LIGHTBLUE 0x0BBF6AA
//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
#define COLOR_RED 0xFF0000AA
#define GREEN_COLOR 0x33AA33AA
//Killing ranks
new First[MAX_PLAYERS];
new Double[MAX_PLAYERS];
new Spree[MAX_PLAYERS];
new Four[MAX_PLAYERS];
new Dominat[MAX_PLAYERS];
new Rampage[MAX_PLAYERS];
new Monster[MAX_PLAYERS];
new Six[MAX_PLAYERS];
new GameMinutes =4;
new GameSeconds =59;
new GameTimer;
new Text:Textdraw0;
forward GameModeExitFunc(playerid);forward GameTime(playerid);
enum PlayerSpawnInfo {
Float:PlayerX,
Float:PlayerY,
Float:PlayerZ,
Float:PlayerAngle
}
new
Text: text_Top5[2]
;
enum rankingEnum
{
player_Score,
player_ID
}
forward GameModeExitFunc();
new Float:gRandomSpawns[][PlayerSpawnInfo] =
{
{2438.1831,-2081.0149,15.1404, 257.5800},
{2445.3403,-2135.0852,17.2712, 1.9000},
{2536.3120,-2106.9167,16.9806, 256.6609},
{2628.6028,-2107.5850,16.9531, 102.2487},
{2644.1399,-2073.1821,26.5938,290.8389},
{2702.0427,-2137.7957,13.5469,351.2893},
{2631.6548,-2136.7273,13.5469,337.1892},
{2591.0518,-2076.9182,10.4889,254.4919},
{2609.1064,-2018.6389,3.8594,186.8112}
};
//////////////////////////////
// BEGIN THE ACTUAL CODE! //
//////////////////////////////
main()
{
print("\n----------------------------------");
print(" Survivor \n GM NO: 25");
print("----------------------------------\n");
}
public OnPlayerConnect(playerid)
{
GameTextForPlayer(playerid,"~r~Survivor!",3000,1);
SetPlayerWeather(playerid,20);
return 1;
}
public OnGameModeInit()
{
SetTimer("BlueTeam",297000,0);
for(new i;i<15;++i)
{
SendClientMessageToAll(GREEN_COLOR," ");
}
SetGameModeText("Survivor");
EnableStuntBonusForAll(0);
AllowInteriorWeapons(0);
DisableInteriorEnterExits();
text_Top5[0] = TextDrawCreate(79.000000, 135.000000, "Top 5");
TextDrawAlignment(text_Top5[0], 2);
TextDrawBackgroundColor(text_Top5[0], 255);
TextDrawFont(text_Top5[0], 1);
TextDrawLetterSize(text_Top5[0], 0.280000, 1.499999);
TextDrawColor(text_Top5[0], -1);
TextDrawSetOutline(text_Top5[0], 0);
TextDrawSetProportional(text_Top5[0], 1);
TextDrawSetShadow(text_Top5[0], 0);
text_Top5[1] = TextDrawCreate(16.000000, 135.000000, " ");
TextDrawBackgroundColor(text_Top5[1], 255);
TextDrawFont(text_Top5[1], 1);
TextDrawLetterSize(text_Top5[1], 0.200000, 0.999999);
TextDrawColor(text_Top5[1], -1);
TextDrawSetOutline(text_Top5[1], 0);
TextDrawSetProportional(text_Top5[1], 1);
TextDrawSetShadow(text_Top5[1], 0);
TextDrawUseBox(text_Top5[1], 1);
TextDrawBoxColor(text_Top5[1], 150);
TextDrawTextSize(text_Top5[1], 143.000000, 20.000000);
UsePlayerPedAnims();
UsePlayerPedAnims();
GameTimer = SetTimer("GameTime",1000,1);
Textdraw0 = TextDrawCreate(586.000000, 43.000000,"5:00");
TextDrawAlignment(Textdraw0,2);
TextDrawBackgroundColor(Textdraw0,0x000000ff);
TextDrawFont(Textdraw0,3);
TextDrawLetterSize(Textdraw0,0.499999,2.000000);
TextDrawColor(Textdraw0,0xffffffff);
TextDrawSetOutline(Textdraw0,1);
TextDrawSetProportional(Textdraw0,1);
TextDrawSetShadow(Textdraw0,1);
AddPlayerClass(128, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
CreateObject(3095, 1573.8614501953, -3670.4621582031, 0, 0, 0, 0);
CreateObject(3095, 1564.9597167969, -3670.4118652344, 0, 0, 0, 0);
CreateObject(3095, 1556.1469726563, -3670.3837890625, 0, 0, 0, 0);
CreateObject(3095, 1547.2318115234, -3670.3298339844, 0, 0, 0, 0);
CreateObject(3095, 1538.2629394531, -3670.3269042969, 0, 0, 0, 0);
CreateObject(3095, 1538.2224121094, -3679.2045898438, 0, 0, 0, 0);
CreateObject(3095, 1538.1817626953, -3688.0661621094, 0, 0, 0, 0);
CreateObject(3095, 1538.1108398438, -3696.9802246094, 0, 0, 0, 0);
CreateObject(3095, 1538.0952148438, -3705.7548828125, 0, 0, 0, 0);
CreateObject(3095, 1547.060546875, -3705.7641601563, 0, 0, 0, 0);
CreateObject(3095, 1556.0493164063, -3705.8046875, 0, 0, 0, 0);
CreateObject(3095, 1564.9997558594, -3705.8186035156, 0, 0, 0, 0);
CreateObject(3095, 1573.9145507813, -3705.8500976563, 0, 0, 0, 0);
CreateObject(3095, 1573.8656005859, -3679.4013671875, 0, 0, 0, 0);
CreateObject(3095, 1573.8671875, -3688.3984375, 0, 0, 0, 0);
CreateObject(3095, 1573.8911132813, -3697.0224609375, 0, 0, 0, 0);
CreateObject(3095, 1547.1561279297, -3696.7563476563, 0, 0, 0, 0);
CreateObject(3095, 1556.1551513672, -3696.8210449219, 0, 0, 0, 0);
CreateObject(3095, 1565.1307373047, -3696.8684082031, 0, 0, 0, 0);
CreateObject(3095, 1564.8587646484, -3687.9702148438, 0, 0, 0, 0);
CreateObject(3095, 1564.8753662109, -3678.9968261719, 0, 0, 0, 0);
CreateObject(3095, 1555.9946289063, -3679.3671875, 0, 0, 0, 0);
CreateObject(3095, 1547.1447753906, -3679.34375, 0, 0, 0, 0);
CreateObject(3095, 1555.9664306641, -3688.0859375, 0, 0, 0, 0);
CreateObject(3095, 1547.1535644531, -3687.9665527344, 0, 0, 0, 0);
CreateObject(974, 1574.6573486328, -3674.4321289063, 3.3331060409546, 0, 0, 357.5);
CreateObject(974, 1571.2325439453, -3671.0458984375, 3.3331060409546, 0, 359.75, 91);
CreateObject(629, 1546.3612060547, -3677.4936523438, 0.55536550283432, 0, 0, 0);
CreateObject(617, 1553.23046875, -3684.302734375, 0.55536550283432, 0, 0, 0);
CreateObject(629, 1548.9611816406, -3689.9587402344, 0.55536550283432, 0, 0, 0);
CreateObject(821, 1570.7553710938, -3666.7045898438, 2.5975437164307, 0, 0, 0);
CreateObject(821, 1567.4537353516, -3682.4387207031, 2.5975437164307, 0, 0, 0);
CreateObject(821, 1557.3806152344, -3674.7487792969, 2.5975437164307, 0, 0, 0);
CreateObject(821, 1540.5306396484, -3671.7551269531, 2.5975437164307, 0, 0, 0);
CreateObject(821, 1539.4581298828, -3701.806640625, 2.5975437164307, 0, 0, 0);
CreateObject(821, 1555.8796386719, -3700.3610839844, 2.5975437164307, 0, 0, 0);
CreateObject(822, 1547.9951171875, -3699.3720703125, 2.8073163032532, 0, 0, 0);
CreateObject(3279, 1539.1228027344, -3699.8234863281, 0.55536550283432, 0, 0, 0);
CreateObject(13367, 1550.0197753906, -3699.669921875, 12.549252510071, 0, 0, 0);
CreateObject(1225, 1566.0502929688, -3701.0366210938, 0.96112048625946, 0, 0, 0);
CreateObject(1225, 1572.5584716797, -3667.4594726563, 0.96112048625946, 0, 0, 0);
CreateObject(1225, 1539.0710449219, -3702.5217285156, 2.3118205070496, 0, 0, 0);
CreateObject(1225, 1538.9652099609, -3703.6892089844, 2.382577419281, 0, 0, 0);
CreateObject(1225, 1536.3642578125, -3696.9985351563, 6.1329956054688, 0, 0, 0);
CreateObject(1225, 1539.4073486328, -3699.396484375, 8.6393165588379, 0, 0, 0);
CreateObject(1225, 1538.9951171875, -3697.2465820313, 14.113077163696, 0, 0, 0);
CreateObject(1225, 1549.9996337891, -3699.568359375, 23.917491912842, 0, 0, 0);
CreateObject(1225, 1537.8815917969, -3698.2766113281, 17.03924369812, 0, 0, 0);
CreateObject(1225, 1540.8511962891, -3701.5871582031, 17.03924369812, 0, 0, 0);
CreateObject(1225, 1540.2385253906, -3671.0234375, 0.96112048625946, 0, 0, 0);
CreateObject(3374, 1565.4838867188, -3701.1125488281, 2.0493421554565, 0, 0, 0);
CreateObject(982, 1548.1173095703, -3680.4809570313, 1.238920211792, 0, 0, 0);
CreateObject(3095, 2289.2727050781, -3528.6022949219, 0, 0, 0, 0);
CreateObject(974, 2288.1306152344, -3524.3259277344, 3.3331060409546, 0, 0, 0);
CreateObject(974, 2290.7282714844, -3524.3095703125, 3.3331060409546, 0, 0, 359);
CreateObject(974, 2288.0627441406, -3532.9799804688, 3.3331060409546, 0, 0, 0);
CreateObject(974, 2290.5500488281, -3533.0212402344, 3.3331060409546, 0, 0, 0);
CreateObject(974, 2284.9533691406, -3527.5744628906, 3.3331060409546, 0, 1, 91.25);
CreateObject(974, 2284.9892578125, -3529.8132324219, 3.3331060409546, 0, 0, 92);
CreateObject(974, 2293.6850585938, -3527.6271972656, 3.3331060409546, 0, 0, 89.5);
CreateObject(974, 2293.6706542969, -3530.0649414063, 3.3331060409546, 0, 0, 88);
CreateObject(10558, 2291.6967773438, -3528.7136230469, 5.9578542709351, 0, 90, 0);
CreateObject(10558, 2287.8559570313, -3528.6081542969, 6.0361156463623, 0, 270.25024414063, 359.75024414063);
CreateObject(10558, 2285.2856445313, -3528.4445800781, 5.6251163482666, 0, 274.50012207031, 1);
CreateObject(3524, 2288.7507324219, -3528.9235839844, 8.9175434112549, 0, 0, 0);
CreateObject(3525, 2292.5715332031, -3524.333984375, 2.870236158371, 0, 0, 0);
CreateObject(3525, 2286.7160644531, -3524.3181152344, 3.149676322937, 0, 0, 0);
CreateObject(3528, 2284.9692382813, -3528.6645507813, 3.4445490837097, 0, 0, 0);
CreateObject(1225, 2289.5451660156, -3526.7863769531, 0.96112048625946, 0, 0, 0);
CreateObject(1225, 2288.6352539063, -3530.828125, 0.96112048625946, 0, 0, 0);
CreateObject(1225, 2292.4360351563, -3531.5476074219, 0.96112048625946, 0, 0, 0);
CreateObject(3524, 1588.0869140625, -3644.5173339844, 43.045677185059, 0, 0, 146);
// Loop through the pickups
SetTimer("GameModeExitFunc", gRoundTime, 0);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerInterior(playerid,11);
SetPlayerPos(playerid,508.7362,-87.4335,998.9609);
SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
SetPlayerFacingAngle(playerid,0.0);
return 1;
}
forward BlueTeam();
public BlueTeam( )
{
GameTextForAll("~g~Map Time ~r~Has Passed!!",3000,3);
SetTimer("GameModeExitFunc",3000,0);
}
public OnPlayerRequestSpawn(playerid)
{
ResetSpawnInfo(playerid);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/shop", true))
{
SendClientMessage(playerid,0xff0010ff,"***Shop Disabled in This Mission***");
return 1;
}
return SendClientMessage(playerid,COLOR_RED,"Unknown Command Use /help For All Commands");
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerWantedLevel(playerid, 0);
SendDeathMessage(killerid, playerid, reason);
SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
GivePlayerMoney(killerid,1000);
GivePlayerMoney(playerid,-500);
TextDrawHideForPlayer(playerid, text_Top5[0]);
TextDrawHideForPlayer(playerid, text_Top5[1]);
SetPlayerCameraPos(playerid,1592.4226,-3637.0891,49.1796);
SetPlayerCameraLookAt(playerid,1559.1970,-3682.4658,1.5554);
SendClientMessage(playerid, COLOR_RED, "You are on the sky...");
//Killing ranks
First[killerid] ++;
First[playerid] = 0;
Spree[killerid] ++;
Spree[playerid] = 0;
Double[killerid] ++;
Double[playerid] = 0;
Dominat[killerid] ++;
Dominat[playerid] = 0;
Rampage[killerid] ++;
Rampage[playerid] = 0;
Monster[killerid] ++;
Monster[playerid] = 0;
Six[killerid] ++;
Six[playerid] = 0;
Four[killerid] ++;
Four[playerid] = 0;
if(First[killerid] == 1)
{
SetPlayerWantedLevel(killerid, 1);
}
if(Double[killerid] == 2)
{
new str2[128];
new kname[MAX_PLAYER_NAME];
GetPlayerName(killerid,kname,sizeof(kname));
format(str2,sizeof(str2), " %s(%d) Double Killing",kname,killerid);
GameTextForAll(str2,4000,3);
SendClientMessageToAll(LIGHTBLUE,str2);
SetPlayerWantedLevel(killerid, 2);
}
if(Spree[killerid] == 3)
{
new str2[128];
new kname[MAX_PLAYER_NAME];
GetPlayerName(killerid,kname,sizeof(kname));
format(str2,sizeof(str2), " %s(%d) Killing Spree",kname,killerid);
GameTextForAll(str2,4000,3);
SendClientMessageToAll(LIGHTBLUE,str2);
SetPlayerWantedLevel(killerid, 3);
GivePlayerMoney(killerid,3000);
}
if(Four[killerid] == 4)
{
SetPlayerWantedLevel(killerid, 4);
}
if(Dominat[killerid] == 5)
{
new str2[128];
new kname[MAX_PLAYER_NAME];
GetPlayerName(killerid,kname,sizeof(kname));
format(str2,sizeof(str2), " %s(%d) Dominating",kname,killerid);
GameTextForAll(str2,4000,3);
SendClientMessageToAll(LIGHTBLUE,str2);
SetPlayerWantedLevel(killerid, 5);
GivePlayerMoney(killerid,5000);
}
if(Six[killerid] == 6)
{
SetPlayerWantedLevel(killerid, 6);
}
if(Rampage[killerid] == 8)
{
new str2[128];
new kname[MAX_PLAYER_NAME];
GetPlayerName(killerid,kname,sizeof(kname));
format(str2,sizeof(str2), " %s(%d) Rampage Killing",kname,killerid);
GameTextForAll(str2,4000,3);
SendClientMessageToAll(LIGHTBLUE,str2);
SetPlayerWantedLevel(killerid, 6);
GivePlayerMoney(killerid,8000);
}
if(Monster[killerid] == 12)
{
new str2[128];
new kname[MAX_PLAYER_NAME];
GetPlayerName(killerid,kname,sizeof(kname));
format(str2,sizeof(str2), " %s(%d) Monster Killing",kname,killerid);
GameTextForAll(str2,4000,3);
SendClientMessageToAll(LIGHTBLUE,str2);
SetPlayerWantedLevel(killerid, 6);
GivePlayerMoney(killerid,12000);
}
return 1;
}
public GameTime()
{
if(GameSeconds || GameMinutes)
{
GameSeconds--;
if(GameSeconds <= -1)
{
GameMinutes--;
GameSeconds=59;
}
new TimeString[256];
format(TimeString,sizeof(TimeString),"~b~%02d~y~:~r~%02d",GameMinutes,GameSeconds);
TextDrawSetString(Textdraw0,TimeString);
}
return 1;
}
ResetSpawnInfo(playerid)
{
new rand = random(sizeof(gRandomSpawns));
SetSpawnInfo(playerid, 255, 128,
gRandomSpawns[rand][PlayerX],
gRandomSpawns[rand][PlayerY],
gRandomSpawns[rand][PlayerZ],
gRandomSpawns[rand][PlayerAngle],
24, 500, 31, 500, 27, 500);
}
public OnPlayerUpdate(playerid)
{ new
playerScores[MAX_PLAYERS][rankingEnum],
index
;
for(new i; i != MAX_PLAYERS; ++i)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
playerScores[index][player_Score] = GetPlayerScore(i);
playerScores[index++][player_ID] = i;
}
}
GetPlayerHighestScores(playerScores, 0, index);
new
score_Text[256] = "~n~",
player_Name[20]
;
for(new i; i < 5; ++i)
{
if(i < index)
{
GetPlayerName(playerScores[i][player_ID], player_Name, sizeof(player_Name));
format(score_Text, sizeof(score_Text), "%s~n~~b~%d. ~w~%s - ~r~%d", score_Text, i + 1, player_Name, playerScores[i][player_Score]);
}
else
format(score_Text, sizeof(score_Text), "%s~n~~b~%d. ~r~N/A", score_Text, i + 1);
}
TextDrawSetString(text_Top5[1], score_Text);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid,0);
SetPlayerColor(playerid,GREEN_COLOR);
SetCameraBehindPlayer(playerid);
TextDrawShowForPlayer(playerid,Textdraw0);
// TextDrawShowForPlayer(playerid, text_Top5[0]);
//TextDrawShowForPlayer(playerid, text_Top5[1]);
return 1;
}
stock IsPlayerInWater(playerid)
{
new Float:x,Float:y,Float:pz;
GetPlayerPos(playerid,x,y,pz);
if ((IsPlayerInArea(playerid, 2032.1371, 1841.2656, 1703.1653, 1467.1099) && pz <= 9.0484)
|| (IsPlayerInArea(playerid, 2109.0725, 2065.8232, 1962.5355, 10.8547) && pz <= 10.0792)
|| (IsPlayerInArea(playerid, -492.5810, -1424.7122, 2836.8284, 2001.8235) && pz <= 41.06)
|| (IsPlayerInArea(playerid, -2675.1492, -2762.1792, -413.3973, -514.3894) && pz <= 4.24)
|| (IsPlayerInArea(playerid, -453.9256, -825.7167, -1869.9600, -2072.8215) && pz <= 5.72)
|| (IsPlayerInArea(playerid, 1281.0251, 1202.2368, -2346.7451, -2414.4492) && pz <= 9.3145)
|| (IsPlayerInArea(playerid, 2012.6154, 1928.9028, -1178.6207, -1221.4043) && pz <= 18.45)
|| (IsPlayerInArea(playerid, 2326.4858, 2295.7471, -1400.2797, -1431.1266) && pz <= 22.615)
|| (IsPlayerInArea(playerid, 2550.0454, 2513.7588, 1583.3751, 1553.0753) && pz <= 9.4171)
|| (IsPlayerInArea(playerid, 1102.3634, 1087.3705, -663.1653, -682.5446) && pz <= 112.45)
|| (IsPlayerInArea(playerid, 1287.7906, 1270.4369, -801.3882, -810.0527) && pz <= 87.123)
|| (pz < 1.5)
)
SendClientMessage(playerid, COLOR_RED, "Water is poisonous, you're dead!!!");
SetPlayerHealth(playerid, 0)
SetPlayerArmour(playerid, 0)
{
return 1;
}
return 0;
}
stock GetPlayerHighestScores(array[][rankingEnum], left, right)
{
new
tempLeft = left,
tempRight = right,
pivot = array[(left + right) / 2][player_Score],
tempVar
;
while(tempLeft <= tempRight)
{
while(array[tempLeft][player_Score] > pivot) tempLeft++;
while(array[tempRight][player_Score] < pivot) tempRight--;
if(tempLeft <= tempRight)
{
tempVar = array[tempLeft][player_Score], array[tempLeft][player_Score] = array[tempRight][player_Score], array[tempRight][player_Score] = tempVar;
tempVar = array[tempLeft][player_ID], array[tempLeft][player_ID] = array[tempRight][player_ID], array[tempRight][player_ID] = tempVar;
tempLeft++, tempRight--;
}
}
if(left < tempRight) GetPlayerHighestScores(array, left, tempRight);
if(tempLeft < right) GetPlayerHighestScores(array, tempLeft, right);
}
public GameModeExitFunc(playerid) {
SendRconCommand("changemode GM1");
GameTextForAll("~y~Changing Game ~n~ ~w~Please Wait....",5500,1);
for(new i;i<15;++i)
{
SendClientMessageToAll(GREEN_COLOR," ");
}
KillTimer(GameTimer);
TextDrawHideForPlayer(playerid,Textdraw0);
}