SA-MP Forums Archive
Смена ника пока игрок логинется - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Смена ника пока игрок логинется (/showthread.php?tid=282021)



Смена ника пока игрок логинется - 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);