дуэльки...недописанные, но надо тестировать. Закинул сюда, т.к. хоть что-то могут сделать только адм > 1000 лвл.

This commit is contained in:
BlaST
2010-07-03 17:04:24 +00:00
parent 0c5b760ffe
commit 18114854d0

View File

@@ -24,6 +24,7 @@ new gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player
#define CHECKPOINT_CARDROP 11 #define CHECKPOINT_CARDROP 11
#define CHECKPOINT_HOME 12 #define CHECKPOINT_HOME 12
#define CHECKPOINT_DM 13 #define CHECKPOINT_DM 13
#define CHECKPOINT_DUEL 14
#define COLOR_GRAD1 0xB4B5B7FF #define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF #define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCBCCCEFF #define COLOR_GRAD3 0xCBCCCEFF
@@ -337,7 +338,10 @@ forward SetCamBack(playerid);
forward AddsOn(); forward AddsOn();
forward SetVehicleParamsForPlayerEx(vehicleid, playerid, para1, para2); forward SetVehicleParamsForPlayerEx(vehicleid, playerid, para1, para2);
forward SetPlayerCheckpointFixed(playerid, Float:px, Float:py, Float:pz, Float:radius); forward SetPlayerCheckpointFixed(playerid, Float:px, Float:py, Float:pz, Float:radius);
forward LoadDuel(playerid,tid,gun1,gun2,gun3,stage);
forward FindDuelCP(playerid);
//------------------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------------------
new dgun[MAX_PLAYERS][3], frozen[MAX_PLAYERS], dcp[MAX_PLAYERS];
new vParams[MAX_VEHICLES+1][MAX_PLAYERS]; new vParams[MAX_VEHICLES+1][MAX_PLAYERS];
new allowedchars[MAX_ALLOWED_CHARS] = { new allowedchars[MAX_ALLOWED_CHARS] = {
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', //26 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', //26
@@ -495,6 +499,7 @@ new cchargetime = 10;
new txtcost = 1; new txtcost = 1;
new offhook; new offhook;
new pickups; new pickups;
new duel[MAX_PLAYERS];
new randomrace = 0; new randomrace = 0;
new nocarcash = 0; new nocarcash = 0;
new skydivecount = 60; new skydivecount = 60;
@@ -630,6 +635,16 @@ new Float:gRandomPlayerSpawns[1][3] = {
}; };
*/ */
new Float:DuelSpawns[6][4] =
{
{1820.1898,-1099.0941,24.0781,358.5028},//1
{1820.1943,-1134.3278,24.0781,179.4428},
{990.3517,-1350.3186,13.3708,91.6436},//2
{1025.4862,-1351.2198,13.7266,269.3053},
{1888.8384,-2290.7144,13.5469,85.0781},//3
{1942.4803,-2289.0803,13.5469,271.1999}
};
new Float:gRandomDMSpawns[21][3] = { new Float:gRandomDMSpawns[21][3] = {
{-2414.0,1551.8,2.1}, // 1 {-2414.0,1551.8,2.1}, // 1
{-2406.9,1555.2,2.1}, // 2 {-2406.9,1555.2,2.1}, // 2
@@ -2219,6 +2234,8 @@ public OnPlayerConnect(playerid)
Mobile[playerid] = -1; Mobile[playerid] = -1;
Spectate[playerid] = -1; Spectate[playerid] = -1;
Unspec[playerid][sLocal] = -1; Unspec[playerid][sLocal] = -1;
dcp[playerid] = 0;
duel[playerid] = -1;
gSkyDive[playerid] = 0; gSkyDive[playerid] = 0;
TVMode[playerid] = 0; TVMode[playerid] = 0;
gLastCar[playerid] = 0; gLastCar[playerid] = 0;
@@ -2544,7 +2561,16 @@ public OnPlayerDeath(playerid, killerid, reason)
PlayerInfo[playerid][pLocal] = -1; PlayerInfo[playerid][pLocal] = -1;
GetPlayerPos(playerid, px, py, pz); GetPlayerPos(playerid, px, py, pz);
new sgun, sammo; new sgun, sammo;
if(duel[playerid] > -1)
{
ResetPlayerWeapons(killerid);
GivePlayerWeapon(killerid, 32, 100);
GivePlayerWeapon(killerid, 24, 30);
dcp[playerid] = 0;
dcp[killerid] = 0;
duel[playerid] = -1;
duel[killerid] = -1;
}
if(killerid != INVALID_PLAYER_ID) if(killerid != INVALID_PLAYER_ID)
{ {
if(GetPlayerState(killerid) == 2 && playerid != gPublicEnemy) if(GetPlayerState(killerid) == 2 && playerid != gPublicEnemy)
@@ -3882,6 +3908,18 @@ public OnPlayerEnterCheckpoint(playerid)
new name[MAX_PLAYER_NAME]; new name[MAX_PLAYER_NAME];
switch (gPlayerCheckpointStatus[playerid]) switch (gPlayerCheckpointStatus[playerid])
{ {
case CHECKPOINT_DUEL:
{
SetPlayerPos(playerid, DuelSpawns[dcp[playerid]][0], DuelSpawns[dcp[playerid]][1], DuelSpawns[dcp[playerid]][2]);
SetPlayerFacingAngle(playerid, DuelSpawns[dcp[playerid]][3]);
TogglePlayerControllable(playerid,0);
dcp[playerid] = 1;
new tid = duel[playerid] - 3000;
if(dcp[tid] == 1) return LoadDuel(playerid, tid, dgun[playerid][0], dgun[playerid][1], dgun[playerid][2], 3);
tid-=1000;
if(dcp[tid] == 1) return LoadDuel(playerid, tid, dgun[tid][0], dgun[tid][1], dgun[tid][2], 3);
return SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
case CHECKPOINT_PICKUP: case CHECKPOINT_PICKUP:
{ {
if(GetPlayerState(playerid) != 1) if(GetPlayerState(playerid) != 1)
@@ -9739,6 +9777,109 @@ public OnPlayerCommandText(playerid, cmdtext[])
PayLog(string); PayLog(string);
return 1; return 1;
} }
if (strcmp(cmd, "/duel", true) == 0 && PlayerInfo[playerid][pAdmin] > 1000)
{
if(GetPlayerInterior(playerid)!=0)
{
SendClientMessageRus(playerid, COLOR_WHITE,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>.");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
format(string, sizeof(string), "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: /duel [id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] [id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1] [id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2] [id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3]");
SendClientMessageRus(playerid, COLOR_GRAD2,string);
SendClientMessageRus(playerid, COLOR_GREEN,"_______________________________________");
SendClientMessageRus(playerid, COLOR_WHITE,"*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***");
SendClientMessageRus(playerid, COLOR_WHITE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: parachute (46), golfclub (2), nightstick (3), knife (4), baseballbat (5), shovel (6), poolcue (7),");
SendClientMessageRus(playerid, COLOR_WHITE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: purpledildo (10), whitedildo (11), longwhitedildo (12), whitedildo2 (13), flowers (14), cane (15),");
SendClientMessageRus(playerid, COLOR_WHITE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: sdpistol (23), colt45 (22), deagle (24), tec9 (32), uzi (28), mp5 (29),");
SendClientMessageRus(playerid, COLOR_WHITE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: shotgun (27), spas12 (25), sawnoff (26), ak47 (30), m4 (31), rifle (33),");
SendClientMessageRus(playerid, COLOR_GREEN,"_______________________________________");
return 1;
}
new tid=strval(tmp);
if(!IsPlayerConnected(tid) || gPlayerLogged[tid] == 0) return SendClientMessageRus(playerid, COLOR_RED, "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
format(string, sizeof(string), "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: /duel [id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>] [id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1] [id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)] [id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 (<28><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)]");
SendClientMessageRus(playerid, COLOR_GRAD2,string);
SendClientMessageRus(playerid, COLOR_GREEN,"_______________________________________");
SendClientMessageRus(playerid, COLOR_WHITE,"*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ***");
SendClientMessageRus(playerid, COLOR_WHITE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: parachute (46), golfclub (2), nightstick (3), knife (4), baseballbat (5), shovel (6), poolcue (7),");
SendClientMessageRus(playerid, COLOR_WHITE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: purpledildo (10), whitedildo (11), longwhitedildo (12), whitedildo2 (13), flowers (14), cane (15),");
SendClientMessageRus(playerid, COLOR_WHITE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: sdpistol (23), colt45 (22), deagle (24), tec9 (32), uzi (28), mp5 (29),");
SendClientMessageRus(playerid, COLOR_WHITE, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: shotgun (27), spas12 (25), sawnoff (26), ak47 (30), m4 (31), rifle (33),");
SendClientMessageRus(playerid, COLOR_GREEN,"_______________________________________");
return 1;
}
dgun[playerid][0] = strval(tmp);
if(!((dgun[playerid][0] > 1 && dgun[playerid][0] < 8) || (dgun[playerid][0] > 9 && dgun[playerid][0] < 16) || (dgun[playerid][0] > 21 && dgun[playerid][0] < 34))) return SendClientMessageRus(playerid,COLOR_RED,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
tmp = strtok(cmdtext, idx);
if(strlen(tmp)>0)
{
dgun[playerid][1] = strval(tmp);
if(!((dgun[playerid][1] > 1 && dgun[playerid][1] < 8) || (dgun[playerid][1] > 9 && dgun[playerid][1] < 16) || (dgun[playerid][1] > 21 && dgun[playerid][1] < 34))) return SendClientMessageRus(playerid,COLOR_RED,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
else
{
dgun[playerid][1] = -1;
}
tmp = strtok(cmdtext, idx);
if(strlen(tmp)>0)
{
dgun[playerid][2] = strval(tmp);
if(!((dgun[playerid][2] > 1 && dgun[playerid][2] < 8) || (dgun[playerid][2] > 9 && dgun[playerid][2] < 16) || (dgun[playerid][2] > 21 && dgun[playerid][2] < 34))) return SendClientMessageRus(playerid,COLOR_RED,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> id <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
else
{
dgun[playerid][2] = -1;
}
return LoadDuel(playerid,tid,0,0,0,0);
}
if (strcmp(cmd, "/cancel", true) == 0)
{
if(frozen[playerid] == 0) TogglePlayerControllable(playerid,1);
if(duel[playerid] > 999 && duel[playerid] < 2001)
{
duel[duel[playerid]-1000] = -1;
duel[playerid] = -1;
SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
return SendClientMessageRus(duel[playerid-1000], COLOR_YELLOW, "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
if(duel[playerid] > 1999 && duel[playerid] < 3001)
{
duel[duel[playerid]-2000] = -1;
duel[playerid] = -1;
SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
return SendClientMessageRus(duel[playerid-2000], COLOR_YELLOW, "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
if(duel[playerid] > 2999 && duel[playerid] < 4001)
{
duel[duel[playerid]-3000] = -1;
duel[playerid] = -1;
SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
return SendClientMessageRus(duel[playerid-3000], COLOR_YELLOW, "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
if(duel[playerid] > 3999 && duel[playerid] < 5001)
{
duel[duel[playerid]-4000] = -1;
duel[playerid] = -1;
SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
return SendClientMessageRus(duel[playerid-4000], COLOR_YELLOW, "<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
return SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
if (strcmp(cmd, "/accept", true) == 0)
{
if(duel[playerid] > 1999 && duel[playerid] < 3001)
{
return LoadDuel(duel[playerid]-2000, playerid, 0, 0, 0, 1);
}
return SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
if (strcmp(cmd, "/upgrade", true) == 0) if (strcmp(cmd, "/upgrade", true) == 0)
{ {
new gunid[16]; new gunid[16];
@@ -14728,7 +14869,7 @@ public OnPlayerCommandText(playerid, cmdtext[])
GetPlayerHealth(Spectate[playerid], health); GetPlayerHealth(Spectate[playerid], health);
new sstring[256]; new sstring[256];
GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer)); GetPlayerName(Spectate[playerid], giveplayer, sizeof(giveplayer));
new cash = PlayerInfo[Spectate[playerid]][pCash]); new cash = PlayerInfo[Spectate[playerid]][pCash];
if (PlayerInfo[playerid][pAdmin] >= 1) if (PlayerInfo[playerid][pAdmin] >= 1)
{ {
format(sstring, sizeof(sstring), "Recon: (%d) %s $%d H:%.0f",Spectate[playerid],giveplayer,cash,health); format(sstring, sizeof(sstring), "Recon: (%d) %s $%d H:%.0f",Spectate[playerid],giveplayer,cash,health);
@@ -16713,6 +16854,14 @@ public OnPlayerCommandText(playerid, cmdtext[])
} }
return 1; return 1;
} }
if(strcmp(cmd, "/findduelcp", true) == 0 && PlayerInfo[playerid][pAdmin] == 1338)
{
new cpp[4];
new cp = FindDuelCP(playerid)*2;
SetPlayerCheckpointFixed(playerid, DuelSpawns[cp][0], DuelSpawns[cp][1], DuelSpawns[cp][2], 1);
format(cpp, 4 , "%d", cp);
return SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
//----------------------------------[Freeze]------------------------------------------------ //----------------------------------[Freeze]------------------------------------------------
if(strcmp(cmd, "/freeze", true) == 0) if(strcmp(cmd, "/freeze", true) == 0)
{ {
@@ -16741,10 +16890,11 @@ public OnPlayerCommandText(playerid, cmdtext[])
if (PlayerInfo[playerid][pAdmin] >= 2) if (PlayerInfo[playerid][pAdmin] >= 2)
{ {
TogglePlayerControllable(playa, 0); TogglePlayerControllable(playa, 0);
format(string, sizeof(string), "AdmCmd: %s Freezes %s",sendername, giveplayer); format(string, sizeof(string), "AdmCmd: %s <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s",sendername, giveplayer);
printf("%s",string); printf("%s",string);
format(string, sizeof(string), "AdmCmd: %s was Frozen by %s",giveplayer ,sendername); format(string, sizeof(string), "AdmCmd: %s <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s",giveplayer ,sendername);
SendClientMessageToAllRus(COLOR_RED, string); SendClientMessageToAllRus(COLOR_RED, string);
frozen[playa] = 1;
} }
else else
{ {
@@ -16780,6 +16930,7 @@ public OnPlayerCommandText(playerid, cmdtext[])
printf("%s",string); printf("%s",string);
format(string, sizeof(string), "AdmCmd: %s was SFrozen",giveplayer); format(string, sizeof(string), "AdmCmd: %s was SFrozen",giveplayer);
SendClientMessageRus(playerid, COLOR_GRAD1, string); SendClientMessageRus(playerid, COLOR_GRAD1, string);
frozen[playa] = 1;
} }
else else
{ {
@@ -16788,7 +16939,7 @@ public OnPlayerCommandText(playerid, cmdtext[])
return 1; return 1;
} }
//----------------------------------[Thaw]------------------------------------------------ //----------------------------------[Thaw]------------------------------------------------
if(strcmp(cmd, "/thaw", true) == 0) if(strcmp(cmd, "/thaw", true) == 0 || strcmp(cmd, "/unfreeze", true) == 0)
{ {
tmp = strtok(cmdtext, idx); tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) if(!strlen(tmp))
@@ -16810,10 +16961,11 @@ public OnPlayerCommandText(playerid, cmdtext[])
if (PlayerInfo[playerid][pAdmin] >= 1) if (PlayerInfo[playerid][pAdmin] >= 1)
{ {
TogglePlayerControllable(playa, 1); TogglePlayerControllable(playa, 1);
format(string, sizeof(string), "AdmCmd: %s Thaw %s",sendername, giveplayer); format(string, sizeof(string), "AdmCmd: %s <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s",sendername, giveplayer);
printf("%s",string); printf("%s",string);
format(string, sizeof(string), "AdmCmd: %s was Thawed by %s",giveplayer ,sendername); format(string, sizeof(string), "AdmCmd: %s <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s",giveplayer ,sendername);
SendClientMessageToAllRus(COLOR_RED, string); SendClientMessageToAllRus(COLOR_RED, string);
frozen[playa] = 0;
} }
else else
{ {
@@ -19355,3 +19507,73 @@ public SetPlayerCheckpointFixed(playerid, Float:px, Float:py, Float:pz, Float:ra
DisablePlayerCheckpoint(playerid); DisablePlayerCheckpoint(playerid);
return SetPlayerCheckpoint(playerid, Float:px, Float:py, Float:pz, Float:radius); return SetPlayerCheckpoint(playerid, Float:px, Float:py, Float:pz, Float:radius);
} }
public LoadDuel(playerid,tid,gun1,gun2,gun3,stage)
{
if(duel[playerid] > -1) return SendClientMessageRus(playerid, COLOR_RED, "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>");
if(duel[tid] > -1) return SendClientMessageRus(playerid, COLOR_RED, "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>");
new hmsg[128], pname[64];
switch(stage)
{
case 0:
{
format(hmsg,128,"<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (/cancel - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>).", GetPlayerName(tid, pname, 64));
SendClientMessageRus(playerid, COLOR_YELLOW, hmsg);
duel[playerid] = 1000+tid;
duel[tid] = 2000+playerid;
format(hmsg,128,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! %s (%d) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (/accept) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (/candel)", GetPlayerName(playerid, pname, 64), playerid);
SendClientMessageRus(playerid, COLOR_YELLOW, hmsg);
}
case 1:
{
format(hmsg,128,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! %s <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.", GetPlayerName(tid, pname, 64));
SendClientMessageRus(playerid, COLOR_YELLOW, hmsg);
SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
duel[playerid]+=2000;
duel[tid]+=2000;
new cp = FindDuelCP(playerid);
SetPlayerCheckpointFixed(playerid, DuelSpawns[cp][0], DuelSpawns[cp][1], DuelSpawns[cp][2], 1);
SetPlayerCheckpointFixed(tid, DuelSpawns[cp+1][0], DuelSpawns[cp+1][1], DuelSpawns[cp+1][2], 1);
gPlayerCheckpointStatus[playerid] = CHECKPOINT_DUEL;
gPlayerCheckpointStatus[tid] = CHECKPOINT_DUEL;
dcp[playerid] = cp;
dcp[tid] = cp+1;
}
case 2:
{
SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!");
SendClientMessageRus(tid, COLOR_YELLOW, "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!");
TogglePlayerControllable(playerid, 1);
TogglePlayerControllable(tid, 1);
}
case 3:
{
GivePlayerWeapon(playerid, gun1, 10000);
GivePlayerWeapon(playerid, gun2, 10000);
GivePlayerWeapon(playerid, gun3, 10000);
GivePlayerWeapon(tid, gun1, 10000);
GivePlayerWeapon(tid, gun2, 10000);
GivePlayerWeapon(tid, gun3, 10000);
SendClientMessageRus(playerid, COLOR_YELLOW, "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
SendClientMessageRus(tid, COLOR_YELLOW, "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
SetTimerEx("LoadDuel", 3000, 0, "dddddd", playerid, tid, 0,0,0,2);
}
}
return stage;
}
public FindDuelCP(playerid)
{
new Float:x, Float:y, Float:z, choise, Float:mind=99999999, Float:distance;
GetPlayerPos(playerid, x, y, z);
for(new circle=0; circle<3; circle++)
{
distance = ((DuelSpawns[circle*2][0]-x)*(DuelSpawns[circle*2][0]-x))+((DuelSpawns[circle*2][1]-y)*(DuelSpawns[circle*2][1]-y));
if(mind > distance)
{
mind = distance;
choise = circle;
}
}
return choise;
}