Смена ника пока игрок логинется
#1

Где то такое видел. Хочется сделать у себя, пока игрок логинется или еще не зарегестрирован, в паблике onplayerconnect меняем ему ник допустим на логгер или реггер ну тому подобное. Мысль есть, но я не знаю как полностью реализовать, помогите пожалуйста. Может возникнуть проблема, когда несколько игроков логинется как сделать что бы для них разные ники выпадали, например: логгер1, логгер2 и так далее. Если не сложно, прошу помочь.
Reply
#2

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);
Reply
#3

Да то, огромное спасибо.
Reply
#4

new OldName[MAX_PLAYERS][MAX_PLAYER_NAME];
для каждого игрока свою ячейку, а лучше пвары
а вообще, лишние проблемы возникнут с такими вешами
Reply
#5

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
new OldName[MAX_PLAYERS][MAX_PLAYER_NAME];
для каждого игрока свою ячейку, а лучше пвары
а вообще, лишние проблемы возникнут с такими вешами
Ой, да, ошибочка... Лучше тогда
Код:
new OldName[MAX_PLAYERS char][MAX_PLAYER_NAME];
Reply
#6

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'ы
Reply
#7

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 один из видов оптимизации, буду учитывать в следующий раз.
Reply
#8

в многомерном массиве применять char правильно только в самых последних [скобках], потому что все первые [скобки] означают всегда кол-во подмассивов, а не кол-во ячеек.
Reply
#9

С этим вылазит одна ошибка: 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));
Reply
#10

pawn Код:
format(NewName,MAX_PLAYER_NAME,"Logger%d",playerid);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)