Trying to get map to change after X amount of kills.
#1

So I've tried to add this code, and it doesn't seem to be working. I'm a bit confused. I'm trying to get the map(mode) to change after 10 kills by the same team. Anyone have any idea on what I'm doing wrong? Am I even doing any of it correctly?

Here's my current relevant code.
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(gTeam[killerid] == TEAM_CT)
    {
        foreach(Player, i)
        {
            tscore[gTeam[i]] +=1;
        }
    }
    if(gTeam[killerid] == TEAM_TE)
    {
        foreach(Player, i)
        {
            tscore[gTeam[i]] +=1;
        }
    }
    foreach(Player, i)
    {
        if(tscore[gTeam[i]] == 10)
        {
            new pstring[128];
            format(pstring,sizeof(pstring), "%s has won the round for his Team.",GetName(killerid));
            SendClientMessageToAll(COLOR_CYAN, pstring);
            if(CurrentGamemode == 5)
            {
                ChangeMode();
                CurrentGamemode = 0;
            }
            ChangeMode();
            CurrentGamemode++;
        }
    }
Reply
#2

Show The coding for the following plz.... stock/ public w/e

ChangeMode();
CurrentGamemode++;
Reply
#3

As requested.
pawn Код:
forward ChangeMode();
public ChangeMode()
{
switch(CurrentGamemode)
{
    case 0:
    {
        ServerMinutes = 9;
        ServerSeconds = 59;
        CurrentGamemode++;
    }
    case 1:
    {
        ServerMinutes = 9;
        ServerSeconds = 59;
        CurrentGamemode++;
    }
    case 2:
    {
        ServerMinutes = 9;
        ServerSeconds = 59;
        CurrentGamemode++;
    }
    case 3:
    {
        ServerMinutes = 9;
        ServerSeconds = 59;
        CurrentGamemode++;
    }
    case 4:
    {
        ServerMinutes = 9;
        ServerSeconds = 59;
        CurrentGamemode++;
    }
    case 5:
    {
        ServerMinutes = 9;
        ServerSeconds = 59;
        CurrentGamemode = 0;
    }
}
Reply
#4

pawn Код:
tscore[gTeam[i]] == 10
This means that every player score needs to be 10 but u have
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    if(gTeam[killerid] == TEAM_CT)
    {
        foreach(Player, i)
        {
            tscore[gTeam[i]] +=1;
        }
    }
    if(gTeam[killerid] == TEAM_TE)
    {
        foreach(Player, i)
        {
            tscore[gTeam[i]] +=1;
        }
    }
Reply
#5

What would you recommend I do?
Reply
#6

pawn Код:
//under on playerdeath
  foreach(Player, i)
  {
     if(gTeam[killerid] == gTeam[i])
     {
          tscore[i] +=1;
     }
  }
 //ChangeMode(); instead of
 // try this SetTimer("ChangeMode", 1000, false);
What the purpose of this callback don't understand is it to reset timers
Reply
#7

To change the map.
Reply
#8

pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
    tscore[gTeam[killerid]]++;
    if(tscore[gTeam[killerid]] == 10)
    {
        new pstring[128];
        format(pstring,sizeof(pstring), "%s has won the round for his Team.",GetName(killerid));
        SendClientMessageToAll(COLOR_CYAN, pstring);
        ChangeMode();
    }
}

forward ChangeMode();
public ChangeMode()
{
    if(CurrentGamemode == 5) CurrentGamemode = 0;
    else CurrentGamemode++;
    ServerMinutes = 9;
    ServerSeconds = 59;
}
What's actually being changed aside from some variable values (whats currentgamemode doing)
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)