Цвета ников -
CrunkBankS - 23.02.2011
Проблема такая.
При подключении к серверу меняю цвет ника (случайный из массива).
Во время игры когда подключается новый игрок, он видит цвета ников игроков совсем другие, не которые у них. И выходит так что никто не может определиться с цветом
Re: Цвета ников -
iEnemY - 23.02.2011
Код в студию. Я так думаю, нужно менять цвет игроку не когда игрок подключается, а когда спавниться.
Re: Цвета ников -
CrunkBankS - 23.02.2011
А смысл какой? Каждый раз спавниться новый цвет
Re: Цвета ников -
iEnemY - 23.02.2011
При заходе на сервер, ставишь игроку в переменную какой-то цвет, а при спавне, берешь значение этой переменной, и ставишь цвет игроку из этой переменной.
pawn Code:
new array[3] = { 0xFF0000FF, 0x00FF00FF, 0x0000FFFF };
new mycolor[MAX_PLAYERS];
public OnPlayerConnect(...)
{
mycolor[playerid] = random(sizeof(array));
SetPlayerColor(playerid, array[ mycolor[playerid] ]);
}
public OnPlayerSpawn(...)
{
SetPlayerColor(playerid, array[ mycolor[playerid] ]);
}
Что то на подобие этого...
Re: Цвета ников -
CrunkBankS - 23.02.2011
Спасибо, решилась только половины проблемы. Когда игрок меняет цвет ника на другой, то новый игрок, который подключается к серверу, видит только старый цвет того игрока, а не новый на который он сменил
Re: Цвета ников -
iEnemY - 23.02.2011
Когда игрок меняет цвет ника на другой - так же записывай в переменную новый цвет. Еще как вариант хранить в переменной сам цвет. Только я забыл как... по идее mycolor[playerid] = 0xFF0000FF;
И потом уже SetPlayerColor(playerid, mycolor[playerid]);
Еще можно когда кто-то заходит на сервер, что бы у всех менялся цвет, на цвет из переменной игрока (типо обновление).
Re: Цвета ников -
Romanius - 23.02.2011
а при спавне разве нельзя генерировать и задавать цвет? А при коннекте ставить серый, типа еще не заспавнен...
Re: Цвета ников -
CrunkBankS - 23.02.2011
Quote:
Originally Posted by iEnemY
Когда игрок меняет цвет ника на другой - так же записывай в переменную новый цвет. Еще как вариант хранить в переменной сам цвет. Только я забыл как... по идее mycolor[playerid] = 0xFF0000FF;
И потом уже SetPlayerColor(playerid, mycolor[playerid]);
Еще можно когда кто-то заходит на сервер, что бы у всех менялся цвет, на цвет из переменной игрока (типо обновление).
|
А смысл записывать? Это только для того чтобы он не менялся на старый при спавне.
Сама проблема вся в том, что админы имеют невидимый цвет ника. Включают его когда - это нужно. При подключении к серверу игроки палят всех админов на карте, т.к они имеют старые цвета
Re: Цвета ников -
Romanius - 23.02.2011
смотри:
Мы будем задавать прозрачность цвету:
PHP Code:
stock togglePlayerInvisible(playerid, bool:on_off)
{
new color = GetPlayerColor(playerid);
if(on_off)
color = color & 0xFFFFFF00;
else
color = color | 0x000000FF;
SetPlayerColor(playerid, color);
}
и никаких танцев с бубном (
http://megabuben.to.kg)
Re: Цвета ников -
CrunkBankS - 23.02.2011
Там же вроде в цвете за прозрачность отвечают последние две цифры
Re: Цвета ников -
Romanius - 23.02.2011
а ты попробуй, и отпишись (:
Re: Цвета ников -
CrunkBankS - 23.02.2011
Вообще сработало, с черным цветом не хочет
Re: Цвета ников -
Romanius - 23.02.2011
все ок, тока что на кулькуляторе тестил...
Re: Цвета ников -
iEnemY - 23.02.2011
Романиус, объясни как нубу, что означает
color & 0xFFFFFF00;
и
color | 0x000000FF;
А точнее | и & =)
Re: Цвета ников -
Romanius - 23.02.2011
Я не объяснялка, и если я объясняю, то сам не понимаю, что я объясняю.
Ну & это бинарное и
А | это бинарное или
Re: Цвета ников -
iEnemY - 23.02.2011
переменная = переменная и 0x000000FF... хм. ну впринцепи понял) а еще такой вопрос, где то видел что то типо while(variable > 0x21) - что такое 0x21?))
Re: Цвета ников -
Romanius - 23.02.2011
Ытьь моя защита против нубов сработала!
Re: Цвета ников -
Stepashka - 23.02.2011
Quote:
Originally Posted by iEnemY
где то видел что то типо while(variable > 0x21) - что такое 0x21?))
|
число.
Re: Цвета ников -
Romanius - 23.02.2011
неееее, оказзыца эта защита не тока от нубов

(ну мб ты понел если бы увидел весь код)
чот меня понесло, эт проверка на то, что если игрок невидим
PHP код:
stock bool:IsPlayerInvisible(playerid)
{
new color = GetPlayerColor(playerid);
if((color & 0x000000FF) == 0) return true;
return false;
}
Иль макросом
PHP код:
#define IsPlayerInvisible(%0) ((GetPlayerColor(%0) & 0x000000FF) == 0)
Re: Цвета ников -
Stepashka - 23.02.2011
Quote:
Originally Posted by Romanius
неееее, оказзыца эта защита не тока от нубов  (ну мб ты понел если бы увидел весь код)
чот меня понесло, эт проверка на то, что если игрок невидим
PHP код:
stock bool:IsPlayerInvisible(playerid)
{
new color = GetPlayerColor(playerid);
if((color & 0x000000FF) == 0) return true;
return false;
}
Иль макросом
PHP код:
#define IsPlayerInvisible(%0) ((GetPlayerColor(%0) & 0x000000FF) == 0)
|
такие примеры привидены на вики в функциях где задается цвет игрока по отношению к другим ирокам.
Я написал про 0х21, это число 33.