[HELP] Virtual World Not Changing!
#4

pawn Код:
#define dueldialog 242

#define DuelPlace1 -1401.5426,1267.2721,1039.8672
#define DuelPlace2 -1388.0773,1225.5911,1039.8672


new DuelOffer[MAX_PLAYERS];
new counttime[MAX_PLAYERS] = -1;
new DuelType, Bet, InDuel[MAX_PLAYERS], declinedueltimer, DuelPlayer1, DuelPlayer2, Progress, DUEL_TIMER;
new vWorld = 0;

new DuelWeaponName[128];

public OnPlayerDisconnect(playerid, reason)
{
    if(InDuel[playerid] == 1)
    {
        new msg[128];
        format(msg, sizeof(msg), "Duel Between %s (%d) and %s (%d) Has Ended. Reason: {ff0000}Disconnected!", PlayerInfo[DuelPlayer1][pName], DuelPlayer1, PlayerInfo[DuelPlayer2][pName], DuelPlayer2);
        SendClientMessageToAll(COLOR_SERVER_HELP_MSG, msg);
        Progress = 0;
        InDuel[DuelPlayer1] = 0;
        InDuel[DuelPlayer2] = 0;
        KillTimer(DUEL_TIMER);
        vWorld--;
        SpawnPlayer(DuelPlayer1);
        SetPlayerVirtualWorld(DuelPlayer1, 0);
        SetPlayerVirtualWorld(DuelPlayer1, 0);
        SpawnPlayer(DuelPlayer2);
        SetPlayerVirtualWorld(DuelPlayer2, 0);
        SetPlayerVirtualWorld(DuelPlayer2, 0);
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(InDuel[playerid] == 1 && InDuel[killerid] != 1)
    {
        new msg[128];
        format(msg, sizeof(msg), "Duel Between %s (%d) and %s (%d) Has Ended. Reason: {ff0000}Player Died!", PlayerInfo[DuelPlayer1][pName], DuelPlayer1, PlayerInfo[DuelPlayer2][pName], DuelPlayer2);
        SendClientMessageToAll(COLOR_SERVER_HELP_MSG, msg);
        Progress = 0;
        InDuel[DuelPlayer1] = 0;
        InDuel[DuelPlayer2] = 0;
        KillTimer(DUEL_TIMER);
        vWorld--;
        SpawnPlayer(DuelPlayer1);
        SetPlayerVirtualWorld(DuelPlayer1, 0);
        SpawnPlayer(DuelPlayer2);
        SetPlayerVirtualWorld(DuelPlayer2, 0);
    }
    if(InDuel[playerid] == 1 && InDuel[killerid] == 1)
    {
        GiveCash(killerid, 2*Bet);
        new Float:Health, Float:Armour1, string1[128];
    GetPlayerArmour(killerid, Armour1);
    GetPlayerHealth(killerid, Health);
    format(string1, sizeof(string1), "[DUEL] %s (%d) Has Won The Duel From %s (%d) And Still Has %.2f {ff0000}Health Left.", PlayerInfo[killerid][pName], killerid, PlayerInfo[playerid][pName], playerid, Health);
    SendClientMessageToOthers(killerid,COLOR_SERVER_HELP_MSG, string1);
    new str[128];
    format(str, sizeof(str), "[DUEL]: You Have Won The Duel Against %s (%d) And Gained {ff0000}$%d.", PlayerInfo[playerid][pName], playerid, Bet);
    SendClientMessage(killerid, COLOR_SERVER_HELP_MSG, str);
    PlayerInfo[killerid][pDuelsWon] ++;
    PlayerInfo[playerid][pDuelsLost] ++;
        vWorld--;
    SpawnPlayer(killerid);
        SetPlayerVirtualWorld(playerid, 0);
        SetPlayerVirtualWorld(killerid, 0);
    Progress = 0;
    InDuel[playerid] = 0;
    InDuel[killerid] = 0;
    SetPlayerVirtualWorld(playerid, 0);
        SetPlayerVirtualWorld(killerid, 0);
    KillTimer(DUEL_TIMER);
    return 1;
   }
   return 1;
}

COMMAND:acduel(playerid, params[]) return cmd_acceptduel(playerid, params);

COMMAND:deduel(playerid, params[]) return cmd_deduel(playerid, params);

COMMAND:duel(playerid, params[])
{
    new TargetID, DuelBet;
    if(sscanf(params, "ui", TargetID, DuelBet)) return SendClientMessage(playerid, COLOR_ERROR,"USAGE: /duel [PlayerID] [Bet]");
    if(!IsPlayerConnected(TargetID) || TargetID == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ERROR, "That Player Is Not Connected.");
    if(InSniper[playerid] == 1) return SendClientMessage(playerid,COLOR_ERROR,"You Cannot Use This Command In Sniper DM.");
    if(DuelAllowed[playerid] == 0) return SendClientMessage(playerid, COLOR_ERROR, "You Must Have to Allow Duels In Order To Invite Some 1 For Duel.");
    if(DuelAllowed[TargetID] == 0) return SendClientMessage(playerid, COLOR_ERROR, "That Player Has His Duel Invitations OFF.");
    if(Progress == 2) return SendClientMessage(playerid, COLOR_ERROR, "Another Duel Is In Progress");
    if(GetPlayerCash(playerid) < DuelBet && DuelBet != 0) return
    SendClientMessage(playerid, COLOR_ERROR, "You Don't Have That Much Money.");
    if(GetPlayerCash(TargetID) < DuelBet && DuelBet != 0) return SendClientMessage(playerid, COLOR_ERROR, "That Player Doesn't Have That Much Amount of Money!");
    if(DuelBet < 1000 || DuelBet > 250000) return SendClientMessage(playerid, COLOR_ERROR, "Bet Range: $1000 - 250000.");
    if(TargetID == playerid) return SendClientMessage(playerid, COLOR_ERROR, "You Cannot Duel Yourself.");
    DuelPlayer2 = TargetID;
    DuelPlayer1 = playerid;
    Bet = DuelBet;
    Progress = 1;
    ShowPlayerDialog(playerid, dueldialog + 1 , DIALOG_STYLE_LIST, "{00ff2a}Duel Weapons:", "{FFFFFF}Sawn-off ShotgunnDesert EaglenTEC-9nM4nAk47nColt-45 / 9mmnSawn-off Shotgun + TEC-9 + DeaglenM4 + DeaglenSniper + M4", "Choose", "Cancel");
    return 1;
}

COMMAND:acceptduel(playerid, params[])
{
   new string[256];
   if(PlayerInfo[playerid][pSpawned] != 1) return SendClientMessage(playerid, COLOR_ERROR, "You Cannot Use This Command While You're Dead.");
   if(InDuel[playerid] == 1) return SendClientMessage(playerid,COLOR_ERROR,"You Are Already in Duel Challenge.");
   if(DuelOffer[playerid] != 1) return SendClientMessage(playerid,COLOR_ERROR,"You Cannot Accept Duel, No One Sent You Duel Challenge.");
   format(string, sizeof(string), "[DUEL] The Duel Between %s (%d) and %s (%d) Has Started. (Bet: $%d)", PlayerInfo[DuelPlayer1][pName], DuelPlayer1, PlayerInfo[DuelPlayer2][pName], DuelPlayer2, Bet);
   SendClientMessageToAll(COLOR_SERVER_HELP_MSG, string);
   SetPlayerPosEx(DuelPlayer1,DuelPlace1,199.2980,16,0);
   SetPlayerPosEx(DuelPlayer2,DuelPlace2,23.5397, 16,0);
   SetPlayerHealth(DuelPlayer1, 100);
   SetPlayerHealth(DuelPlayer2, 100);
   SetPlayerArmour(DuelPlayer1, 100);
   SetPlayerArmour(DuelPlayer2, 100);
   format(string, sizeof(string), "In Duel Challenge");
   strmid(PlayerInfo[DuelPlayer1][pInteriorName], string, 0, strlen(string), 256);
   strmid(PlayerInfo[DuelPlayer1][pLocation], string, 0, strlen(string), 256);
   format(string, sizeof(string), "In Duel Challenge");
   strmid(PlayerInfo[DuelPlayer2][pInteriorName], string, 0, strlen(string), 256);
   strmid(PlayerInfo[DuelPlayer2][pLocation], string, 0, strlen(string), 256);
   GiveCash(DuelPlayer1, -Bet);
   GiveCash(DuelPlayer2, -Bet);
   vWorld++;
   SetPlayerVirtualWorld(DuelPlayer1, vWorld);
   SetPlayerVirtualWorld(DuelPlayer2, vWorld);
   TogglePlayerControllable(DuelPlayer1, false);
   TogglePlayerControllable(DuelPlayer2, false);
   SetCameraBehindPlayer(DuelPlayer1);
   SetCameraBehindPlayer(DuelPlayer2);
   InDuel[DuelPlayer1] = 1;
   InDuel[DuelPlayer2] = 1;
   Progress = 2;
   GiveDuelWeapons(DuelType);
   PlayerInfo[DuelPlayer1][pDrugsTime] = 0;
   PlayerInfo[DuelPlayer2][pDrugsTime] = 0;
   ON_DRUGS[DuelPlayer1] = 0;
   ON_DRUGS[DuelPlayer2] = 0;
   DrugsTaken[DuelPlayer1] = 0;
   DrugsTaken[DuelPlayer2] = 0;
   CD = 6;
   CDTimer = SetTimer("CountDown", 1000, 1);
   KillTimer(declinedueltimer);
   DUEL_TIMER = SetTimer("TIMEUP", 60000*3, 0);
   return 1;
}

COMMAND:refuseduel(playerid, params[])
{
   if(PlayerInfo[playerid][pSpawned] != 1) return SendClientMessage(playerid, COLOR_ERROR, "You Cannot Use This Command While You're Dead.");
   if(DuelOffer[playerid] != 1) return SendClientMessage(playerid,COLOR_ERROR,"You Cannot Refuse Duel, No One Sent You Duel Challenge.");
   DuelDeclined();
   return 1;
}


stock GiveDuelWeapons(Type)
{
    if(Type == 0)
    {
        ResetPlayerWeapons(DuelPlayer1);
        ResetPlayerWeapons(DuelPlayer2);
        GivePlayerWeapon(DuelPlayer1, 26, 5000);
        GivePlayerWeapon(DuelPlayer2, 26, 5000);
    }
    if(Type == 1)
    {
        ResetPlayerWeapons(DuelPlayer1);
        ResetPlayerWeapons(DuelPlayer2);
        GivePlayerWeapon(DuelPlayer1, 24, 5000);
        GivePlayerWeapon(DuelPlayer2, 24, 5000);
    }
    if(Type == 2)
    {
        ResetPlayerWeapons(DuelPlayer1);
        ResetPlayerWeapons(DuelPlayer2);
        GivePlayerWeapon(DuelPlayer1, 32, 5000);
        GivePlayerWeapon(DuelPlayer2, 32, 5000);
    }
    if(Type == 3)
    {
        ResetPlayerWeapons(DuelPlayer1);
        ResetPlayerWeapons(DuelPlayer2);
        GivePlayerWeapon(DuelPlayer1, 31, 5000);
        GivePlayerWeapon(DuelPlayer2, 31, 5000);
    }
    if(Type == 4)
    {
        ResetPlayerWeapons(DuelPlayer1);
        ResetPlayerWeapons(DuelPlayer2);
        GivePlayerWeapon(DuelPlayer1, 30, 5000);
        GivePlayerWeapon(DuelPlayer2, 30, 5000);
    }
    if(Type == 5)
    {
        ResetPlayerWeapons(DuelPlayer1);
        ResetPlayerWeapons(DuelPlayer2);
        GivePlayerWeapon(DuelPlayer1, 22, 5000);
        GivePlayerWeapon(DuelPlayer2, 22, 5000);
    }
    if(Type == 6)
    {
        ResetPlayerWeapons(DuelPlayer1);
        ResetPlayerWeapons(DuelPlayer2);
        GivePlayerWeapon(DuelPlayer1, 32, 5000);
        GivePlayerWeapon(DuelPlayer1, 26, 5000);
        GivePlayerWeapon(DuelPlayer1, 24, 5000);
        GivePlayerWeapon(DuelPlayer2, 32, 5000);
        GivePlayerWeapon(DuelPlayer2, 26, 5000);
        GivePlayerWeapon(DuelPlayer2, 24, 5000);
    }
    if(Type == 7)
    {
        ResetPlayerWeapons(DuelPlayer1);
        ResetPlayerWeapons(DuelPlayer2);
        GivePlayerWeapon(DuelPlayer1, 31, 5000);
        GivePlayerWeapon(DuelPlayer1, 24, 5000);
        GivePlayerWeapon(DuelPlayer2, 24, 5000);
        GivePlayerWeapon(DuelPlayer2, 31, 5000);
    }
    if(Type == 8)
    {
        ResetPlayerWeapons(DuelPlayer1);
        ResetPlayerWeapons(DuelPlayer2);
        GivePlayerWeapon(DuelPlayer1, 34, 5000);
        GivePlayerWeapon(DuelPlayer1, 31, 5000);
        GivePlayerWeapon(DuelPlayer2, 31, 5000);
        GivePlayerWeapon(DuelPlayer2, 34, 5000);
    }
    return 1;
}
forward DuelOffered();
public DuelOffered()
{
    new str[256];

    if(DuelPlayer2 > -10)
    {
        format(str, sizeof(str), "You Have Been Challenged for 1v1 Duel By %s. This Invite will be Cancelled in 30 Seconds.", PlayerInfo[DuelPlayer1][pName]);
        SendClientMessage(DuelPlayer2, COLOR_SERVER_HELP_MSG,str);
        format(str, sizeof(str), "Duel Weapons: "YELLOW"%s, "LIGHTBLUE"Bet: "YELLOW"$%d.", DuelWeaponName, Bet);
        SendClientMessage(DuelPlayer2, COLOR_SERVER_HELP_MSG,str);
        SendClientMessage(DuelPlayer2, COLOR_SERVER_HELP_MSG,"Type "YELLOW"/acduel"LIGHTBLUE" to Accept or "YELLOW"/refuseduel"LIGHTBLUE" to Refuse Duel Challenge.");
    }
    DuelOffer[DuelPlayer2] = 1;

    declinedueltimer = SetTimer("DuelDeclined", 30*1000, 0);
    return 1;
}

forward TIMEUP();
public TIMEUP()
{
   if(Progress > 0)
   {
      new msg[128];
      format(msg, sizeof(msg), "Duel Between %s (%d) and %s (%d) Has Ended. Reason: Time UP!", PlayerInfo[DuelPlayer1][pName], DuelPlayer1, PlayerInfo[DuelPlayer2][pName], DuelPlayer2);
      SendClientMessageToAll(COLOR_SERVER_HELP_MSG, msg);
      Progress =0;
      InDuel[DuelPlayer1] = 0;
      InDuel[DuelPlayer2] = 0;
      SpawnPlayer(DuelPlayer1);
      SpawnPlayer(DuelPlayer2);
      DuelOffer[DuelPlayer1] = 0;
      DuelOffer[DuelPlayer2] = 0;
      ResetPlayerWeapons(DuelPlayer1);
      ResetPlayerWeapons(DuelPlayer2);
   }
   return 1;
}

forward DuelDeclined();
public DuelDeclined()
{
   new string[128];
   format(string, sizeof(string), "%s (%d) Has Refused Your Duel Challenge.", PlayerInfo[DuelPlayer2][pName], DuelPlayer2);
   SendClientMessage(DuelPlayer1, COLOR_SERVER_HELP_MSG, string);
   SendClientMessage(DuelPlayer2, COLOR_SERVER_HELP_MSG, "You Have Refused The Duel Challenge.");
   DuelOffer[DuelPlayer1] = 0;
   DuelOffer[DuelPlayer2] = 0;
   Progress = 0;
   InDuel[DuelPlayer1] = 0;
   InDuel[DuelPlayer2] = 0;
   KillTimer(declinedueltimer);
   return 1;
}
Reply


Messages In This Thread
[HELP] Virtual World Not Changing! - by Airman123 - 10.03.2015, 16:55
Re: [HELP] Virtual World Not Changing! - by Misiur - 10.03.2015, 19:29
Re: [HELP] Virtual World Not Changing! - by Airman123 - 11.03.2015, 11:26
Re: [HELP] Virtual World Not Changing! - by ReD_HunTeR - 11.03.2015, 11:50
Re: [HELP] Virtual World Not Changing! - by Airman123 - 11.03.2015, 12:28
Re: [HELP] Virtual World Not Changing! - by ReD_HunTeR - 11.03.2015, 17:40
Re: [HELP] Virtual World Not Changing! - by Airman123 - 12.03.2015, 09:33
Re: [HELP] Virtual World Not Changing! - by Misiur - 12.03.2015, 12:20
Re: [HELP] Virtual World Not Changing! - by Airman123 - 13.03.2015, 12:19

Forum Jump:


Users browsing this thread: 4 Guest(s)