[NEED HELP]Random Color
#1

How can i make somethink like this: when player does /acc it starts changing player color every second.....
when player do /acc again it turns off....
Help me
Thanx anyway
Reply
#2

Try this bro'

On top:
pawn Код:
new _changecolor, _returncolor, returncolor[MAX_PLAYERS];
forward changecolor(playerid);
forward returncolor(playerid);
Command:
pawn Код:
if(strcmp(cmdtext, "/acc", true) == 0)
{
    switch(GetPVarInt(playerid, "highlightcolor")
    {
        case 0:
        {
           
            returncolor[playerid] = GetPlayerColor(playerid);
            _changecolor = SetTimerEx("changecolor", 1000, true, "d", playerid);
            _returncolor = SetTimerEx("returncolor", 1000*2, true, "d", playerid);
            SetPVarInt(playerid, "highlightcolor", 1);
        }
        case 1:
        {
            KillTimer(_changecolor);
            KillTimer(_returncolor);
            SetPVarInt(playerid, "highlightcolor", 0);
        }
    }
    return 1;
}
Public functions:
pawn Код:
public changecolor(playerid)
{
    SetPlayerColor(playerid, [new color here]);
    return 1;
}

public returncolor(playerid)
{
    return SetPlayerColor(playerid, returncolor[playerid]);
}
Reply
#3

pawn Код:
forward ChangeColor(playerid);
new Changing[MAX_PLAYERS];
new CTimer[MAX_PLAYERS];
/acc
if(Changing[playerid] == 0)
{
CTimer[playerid] = SetTimerEx("ChangeColor",.....
}
else
{
KillTimer(CTimer[playerid]);
}
public ChangeColor(playerid)
{
SetPlayerColor(playerid,Your colors);
}
Reply
#4

i mean multiple colors.... like 1 time red.... yellow..... green..... pink..... and others
Reply
#5

do i have use something like this:
pawn Код:
new rand = random(sizeof(randcolor));
SetPlayerColor(playerid,randcolor[rand][0], randcolor[rand][1], randcolor[rand][2]);
Reply
#6

pawn Код:
//Top:
new AccTurn[MAX_PLAYERS];
forward OnPlayerColorChange(playerid);

new ColorRandom[][] =
{
    0x0087FFFF, // color 1 (blue)
    0xB9FF00FF // color 2, etc (yellow)
};

public OnPlayerCommandText(playerid,cmdtext[])
{
    if(strcmp(cmdtext,"/acc",true) == 0)
    {
        if(AccTurn[playerid] == 0)
        {
            SetTimerEx("OnPlayerColorChange",1000,true,"i",playerid);
            AccTurn[playerid] = 1;
            SendClientMessage(playerid,0x0087FFFF,"Color change has been enabled!");
        }
        else if(AccTurn[playerid] == 1)
        {
            KillTimer(ColorChangeTimer[playerid]);
            AccTurn[playerid] = 0;
            SendClientMessage(playerid,0x0087FFFF,"Color change has been disabled!");
        }
        return 1;
    }
    return 0;
}

public OnPlayerColorChange(playerid)
{
    new rand = random(sizeof(ColorRandom));
    SetPlayerColor(playerid,ColorRandom[rand]);
    return 1;
}
Untested but supposed to work... Add as much colors as you want
Reply
#7

thannx for help
Reply
#8

almost worked but i got few errors
Код:
 (766) : error 017: undefined symbol "ColorChangeTimer"
(766) : warning 215: expression has no effect
(766) : error 029: invalid expression, assumed zero
(766) : fatal error 107: too many error messages on one line
pawn Код:
if(strcmp(cmdtext,"/acc",true) == 0)
    {
        if(AccTurn[playerid] == 0)
        {
            SetTimerEx("OnPlayerColorChange",1000,true,"i",playerid);
            AccTurn[playerid] = 1;
            SendClientMessage(playerid,0x0087FFFF,"Color change has been enabled!");
        }
        else if(AccTurn[playerid] == 1)
        {
            KillTimer(ColorChangeTimer[playerid]); // this is line 766
            AccTurn[playerid] = 0;
            SendClientMessage(playerid,0x0087FFFF,"Color change has been disabled!");
        }
        return 1;
        }
Reply
#9

Top:
Код:
new Timer[MAX_PLAYERS];
Код:
if(strcmp(cmdtext,"/acc",true) == 0)
    {
        if(AccTurn[playerid] == 0)
        {
            Timer[playerid] = SetTimerEx("OnPlayerColorChange",1000,true,"i",playerid);
            AccTurn[playerid] = 1;
            SendClientMessage(playerid,0x0087FFFF,"Color change has been enabled!");
        }
        else if(AccTurn[playerid] == 1)
        {
            KillTimer(Timer[playerid]);
            AccTurn[playerid] = 0;
            SendClientMessage(playerid,0x0087FFFF,"Color change has been disabled!");
        }
        return 1;
        }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)