Смена ника пока игрок логинется -
Mass_Deboose - 09.09.2011
Где то такое видел. Хочется сделать у себя, пока игрок логинется или еще не зарегестрирован, в паблике onplayerconnect меняем ему ник допустим на логгер или реггер ну тому подобное. Мысль есть, но я не знаю как полностью реализовать, помогите пожалуйста. Может возникнуть проблема, когда несколько игроков логинется как сделать что бы для них разные ники выпадали, например: логгер1, логгер2 и так далее. Если не сложно, прошу помочь.
Re: Смена ника пока игрок логинется -
Makar93 - 09.09.2011
Quote:
Originally Posted by Mass_Deboose
Где то такое видел. Хочется сделать у себя, пока игрок логинется или еще не зарегестрирован, в паблике onplayerconnect меняем ему ник допустим на логгер или реггер ну тому подобное. Мысль есть, но я не знаю как полностью реализовать, помогите пожалуйста. Может возникнуть проблема, когда несколько игроков логинется как сделать что бы для них разные ники выпадали, например: логгер1, логгер2 и так далее. Если не сложно, прошу помочь.
|
Ну если я тебя правильно понял, то вот:
Код:
new OldName[MAX_PLAYER_NAME]; //в начало кода
-------
//В OnPlayerConnect
new NewName[27];
format(NewName,"Logger%d",playerid);
GetPlayerName(playerid,OldName,sizeof(OldName));
SetPlayerName(playerid,NewName);
-------
//В паблик авторизации
SetPlayerName(playerid,OldName);
Re: Смена ника пока игрок логинется -
Mass_Deboose - 09.09.2011
Да то, огромное спасибо.
Re: Смена ника пока игрок логинется -
Jon_De - 09.09.2011
new OldName[MAX_PLAYERS][MAX_PLAYER_NAME];
для каждого игрока свою ячейку, а лучше пвары
а вообще, лишние проблемы возникнут с такими вешами
Re: Смена ника пока игрок логинется -
Makar93 - 10.09.2011
Quote:
Originally Posted by Jon_De
new OldName[MAX_PLAYERS][MAX_PLAYER_NAME];
для каждого игрока свою ячейку, а лучше пвары
а вообще, лишние проблемы возникнут с такими вешами 
|
Ой, да, ошибочка... Лучше тогда
Код:
new OldName[MAX_PLAYERS char][MAX_PLAYER_NAME];
Re: Смена ника пока игрок логинется -
HappyScripter - 10.09.2011
Quote:
Originally Posted by Makar93
Ой, да, ошибочка... Лучше тогда
Код:
new OldName[MAX_PLAYERS char][MAX_PLAYER_NAME];
|
Грубейшая ошибка, потому что это аналогично определению
PHP код:
new OldName[MAX_PLAYERS / 4][MAX_PLAYER_NAME];
и аналогично
PHP код:
new OldName[125][MAX_PLAYER_NAME];
если MAX_PLAYERS = 500. А это неправильно!
Вспомните старый механизм setproperty. Он куда более динамичный чем PVar'ы
Re: Смена ника пока игрок логинется -
Makar93 - 11.09.2011
Quote:
Originally Posted by HappyScripter
Грубейшая ошибка, потому что это аналогично определению
PHP код:
new OldName[MAX_PLAYERS / 4][MAX_PLAYER_NAME];
и аналогично
PHP код:
new OldName[125][MAX_PLAYER_NAME];
если MAX_PLAYERS = 500. А это неправильно!
Вспомните старый механизм setproperty. Он куда более динамичный чем PVar'ы
|
Странно, но я где-то читал что использование char один из видов оптимизации, буду учитывать в следующий раз.
Re: Смена ника пока игрок логинется -
HappyScripter - 11.09.2011
в многомерном массиве применять char правильно только в самых последних [скобках], потому что все первые [скобки] означают всегда кол-во подмассивов, а не кол-во ячеек.
Re: Смена ника пока игрок логинется -
Mass_Deboose - 12.09.2011
С этим вылазит одна ошибка: error 035: argument type mismatch (argument 2).
PHP код:
new OldName[MAX_PLAYER_NAME];
Ругается на эту строку:
PHP код:
format(NewName,"Logger%d",playerid);
_________________________________________________
А с этими двумя вылазит три ошибки:
PHP код:
new OldName[MAX_PLAYERS][MAX_PLAYER_NAME];
ИЛИ
new OldName[MAX_PLAYERS char][MAX_PLAYER_NAME];
Ошибки:
Код HTML:
(157) : error 048: array dimensions do not match
(257) : error 035: argument type mismatch (argument 2)
(258) : error 048: array dimensions do not match
Строка 157: SetPlayerName(playerid,OldName);
Строка 257: format(NewName,"Logger%d",playerid);
Строка 258: GetPlayerName(playerid,OldName,sizeof(OldName));
Re: Смена ника пока игрок логинется -
sk47 - 12.09.2011
pawn Код:
format(NewName,MAX_PLAYER_NAME,"Logger%d",playerid);