Данный скрипт будет раздавать цвета никам подключающихся игроков таким образом, чтобы получалась радуга.
Автор: OKStyle
Начиная с версии 1.3 убран массив с цветами, теперь они раздаются функцией.
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
PHP:
#include <a_samp>
// Rainbow Tab by REALman, OKStyle
new RainbowError;
new RainbowGradient[25] = {
0xFF0000FF, 0xFF2C00FF, 0xFF5000FF, 0xFF8700FF, 0xFFA700FF,
0xFFDC00FF, 0xFFFB00FF, 0xC4FF00FF, 0x7BFF00FF, 0x00FF00FF,
0x00FF1EFF, 0x00FF3BFF, 0x00FF7CFF, 0x00FFAEFF, 0x00FFD5FF,
0x00FFFFFF, 0x00CCFFFF, 0x00ACFFFF, 0x0083FFFF, 0x0054FFFF,
0x0000FFFF, 0x2C00FFFF, 0x5F00FFFF, 0x9B00FFFF, 0xCB00FFFF
};
public OnPlayerConnect(playerid)
{
for(new i = GetMaxPlayers() - 1; i >= 0; --i)
{
if(i == sizeof(RainbowGradient)) RainbowError = 0;
if(IsPlayerConnected(i))
{
SetPlayerColor(i, RainbowGradient[i + RainbowError]);
}
else RainbowError -= 1;
}
return 1;
}
public OnPlayerDisconnect(playerid)
{
for(new i = GetMaxPlayers() - 1; i >= 0; --i)
{
if(i == sizeof(RainbowGradient)) RainbowError = 0;
if(IsPlayerConnected(i))
{
SetPlayerColor(i, RainbowGradient[i - RainbowError]);
}
else RainbowError += 1;
}
return 1;
}
Начиная с версии 1.3 убран массив с цветами, теперь они раздаются функцией.
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
PHP:
#include <a_samp>
// Rainbow Tab 1.4 by REALman, OKStyle, RyDeR
public OnPlayerConnect(playerid)
{
for(new i = GetMaxPlayers(), totalPlayers = GetOnlinePlayersCount(), index = totalPlayers; i > -1; --i)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
SetPlayerRainbowColor(i, index--, totalPlayers);
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
for(new i = GetMaxPlayers(), totalPlayers = GetOnlinePlayersCount() - 1, index = totalPlayers; i > -1; --i)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i) && (i != playerid))
{
SetPlayerRainbowColor(i, index--, totalPlayers);
}
}
return 1;
}
stock GetOnlinePlayersCount()
{
new
totalPlayers
;
for(new i, j = GetMaxPlayers(); i != j; ++i)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
++totalPlayers;
}
}
return totalPlayers;
}
stock SetPlayerRainbowColor(playerid, index, maxPlayers)
{
new
color_Red,
color_Green,
color_Blue
;
color_Red = floatround((0xFF * floatsin((index / (maxPlayers / 3.0)), radian)));
color_Green = floatround(((0xFF / maxPlayers) * index));
color_Blue = floatround(((0xFF / maxPlayers) * (maxPlayers - index)));
return SetPlayerColor(playerid, ((color_Red * 0x1000000) + (color_Green * 0x10000) + (color_Blue * 0x100) + 0xFF));
}