10.03.2015, 19:29
The reason is because you always use DuelPlayer1 and DuelPlayer2. Avoid code duplication, and don't use variables with number after them when you can use arrays instead. This is not complete as I don't have your code:
pawn Код:
#define MAX_DUEL_ROOMS (5)
;
new
bool:DuelRoomsTaken[MAX_DUEL_ROOMS],
DuelRoomBet[MAX_DUEL_ROOMS],
Float:DuelRoomPlace[MAX_DUEL_ROOMS][3],
DuelPlayer[MAX_DUEL_ROOMS][2]
;
/*
* In your command for starting a duel set DuelOffer to duel room id. Also use DuelRoomsTaken to indicate which rooms are already taken
*/
COMMAND:acceptduel(playerid, params[])
{
new
string[256],
room = DuelOffer[playerid] - 1
;
if(!PlayerInfo[playerid][pSpawned]) return SendClientMessage(playerid,COLOR_ERROR,"You Cannot Accept Duel, while you're not spawned");
if(room == -1) return SendClientMessage(playerid, COLOR_ERROR, "You Cannot Use This Command if there is no duel offser"); ;
if(InDuel[playerid]) return SendClientMessage(playerid,COLOR_ERROR,"You Are Already in Duel Challenge.");
format(string, sizeof(string), "[DUEL] The Duel Between %s (%d) and %s (%d) Has Started. (Bet: $%d)", PlayerInfo[DuelPlayer[room][0]][pName], DuelPlayer[room][0], PlayerInfo[DuelPlayer[room][0]][pName], DuelPlayer[1], DuelRoomBet[room]);
SendClientMessageToAll(COLOR_SERVER_HELP_MSG, string);
for (new i = 0; i != 2; ++i) {
new player = DuelPlayer[room][i];
SetPlayerVirtualWorld(player, 22);
SetPlayerPos(player, DuelPlace[room][0], DuelPlace[room][1], DuelPlace[room][2]);
SetPlayerInterior(player, 16);
SetPlayerFacingAngle(DuelPlayer[room][0], 199.2980);
SetPlayerHealth(player, 100);
SetPlayerArmour(player, 100);
format(string, sizeof(string), "In Duel Challenge");
strcat(string, PlayerInfo[player][pInteriorName], 256);
strcat(string, PlayerInfo[player][pLocation], 256);
GiveCash(player, DuelRoomBet1);
TogglePlayerControllable(player, false);
SetCameraBehindPlayer(player);
InDuel[player] = 1;
PlayerInfo[player][pDrugsTime] = 0;
ON_DRUGS[player] = 0;
DrugsTaken[player] = 0;
}
Progress = 2;
GiveDuelWeapons(DuelType);
CD = 6;
CDTimer = SetTimer("CountDown", 1000, 1);
KillTimer(declinedueltimer);
DUEL_TIMER = SetTimer("TIMEUP", 60000*3, 0);
return 1;
}