Проблемка при записи string в переменную.
#1

Доброго времени суток!

Проблемка такая.Хочу записать в переменную playerid Ник(ReturnUser()) а в переменную ReturnUserа ник(playerid)

Вот как делаю.Но что то и мне и ему мой ник записывает, причем без первого или двух первых букв в нике.

PHP код:
new pname[24],tname[24];
GetPlayerName(playerid,pname,sizeof(pname));
GetPlayerName(tgt,tname,sizeof(tname));
strins(Premen[playerid],tname,0);
strins(Peremen[tgt],pname,0); 
Reply
#2

Quote:

strins(Premen[playerid],tname,0);

а чего это 0 в конце? strins(Premen[playerid],tname,strlen(tname)+strlen(Premen[playerid]));
Reply
#3

PHP код:
string[] - переменная в которую добавляем .
const 
substr[] - текст\переменная которою добавляем.
pos позиция первого символа добавляемого
maxlength 
размер переменой в которою вписываем
получается так наверно
PHP код:
strins(Premen[playerid],tname,0,strlen(Premen[playerid])) 
PHP код:
strmid 
вроде записывает норм одному если. Но когда сразу двоим записываю мой ник и у меня и у него записывается вот так hn_Rembo а должно John_Rembo!
Reply
#4

Зачем получать имя в переменную чтобы потом опять записать в другую переменную?
Через GetPlayerName сразу записывай в нужные переменные
Reply
#5

pawn Код:
GetPlayerName(playerid, Premen[playerid], MAX_PLAYER_NAME);
GetPlayerName(tgt, Peremen[tgt], MAX_PLAYER_NAME);
Reply
#6

Можно упростить до максимума:
pawn Код:
stock ReturnName(_p) // ну или для краткости RN(_p)
{
    new _n[24];
    GetPlayerName(_p, _n, sizeof(_n));
    return _n;
}
// Использование, к примеру:
new _s[256];
format(_s, sizeof(_s), "Игрок %s умер", ReturnName(_p));
SendClientMessageToAll(0xFF0000F6, _s);
// Или же...
format(PlayerInfo[playerid][pName], 20, "%s", ReturnName(playerid)); // Запись ника в переменную...
Reply
#7

Это далеко не максимум. Можно без кастомных функций записывать имя в переменную. Уже давно проскакивало на форуме.
Reply
#8

Да, где то даже видел вариант с хранением имён в переменных. Но это наиболее удобный вариант.
Reply
#9

Quote:
Originally Posted by iEnemY
Посмотреть сообщение
Да, где то даже видел вариант с хранением имён в переменных. Но это наиболее удобный вариант.
жги ещё
Reply
#10

Quote:
Originally Posted by iEnemY
Посмотреть сообщение
Да, где то даже видел вариант с хранением имён в переменных. Но это наиболее удобный вариант.
При коннекте/авторизации можно сразу имя получать и в переменную записывать, а потом использовать где надо. Помоему если об этом говорить, то это самый лучший вариант
Reply
#11

Ну я его упоминал... а товарищ на s делает вид, что есть еще что-то лучше.
Reply
#12

Quote:
Originally Posted by iEnemY
Посмотреть сообщение
Ну я его упоминал... а товарищ на s делает вид, что есть еще что-то лучше.
Чет я не видел, чтобы ты про это говорил. Или "сохранение имён в переменных" и было тем самым упоминанием?
Reply
#13

Так. Сохранение имени (ника) в переменную (массив), в какой либо момент. И дальнейшее использования содержимого массива по айди игрока. Мы об этом говорим? Я сразу об этом и начал.
Reply
#14

Quote:
Originally Posted by iEnemY
Посмотреть сообщение
Можно упростить до максимума:
pawn Код:
stock ReturnName(_p) // ну или для краткости RN(_p)
{
    new _n[24];
    GetPlayerName(_p, _n, sizeof(_n));
    return _n;
}
// Использование, к примеру:
new _s[256];
format(_s, sizeof(_s), "Игрок %s умер", ReturnName(_p));
SendClientMessageToAll(0xFF0000F6, _s);
// Или же...
format(PlayerInfo[playerid][pName], 20, "%s", ReturnName(playerid)); // Запись ника в переменную...
Quote:
Originally Posted by iEnemY
Посмотреть сообщение
Да, где то даже видел вариант с хранением имён в переменных. Но это наиболее удобный вариант.
ты вообще за своими мыслями следишь? Или у тебя раздвоение личности?

Ты говоришь что видел сохранение в переменную, но предложенный тобой вариант наиболее удобный. Вот я тебе и говорю: "жги ещё!". Твои показания путаются.
Reply
#15

Когда я говорил "наиболее удобный", я имел ввиду для меня. Для остальных, вероятно, удобны другие варианты. В следующий раз надо будет дописывать ИМХО...
Reply
#16

Ребят доброго времени суток!Спасибо всем я тут разобрался!

решение:

PHP код:
new Nick[max_players][24];//переменная
new pname[24],tname[24],string[24];
     
GetPlayerName(playerid,pname,sizeof(pname));//ник игрока
     
GetPlayerName(tg,tname,sizeof(tname));//ник 2-го игрока
     
     
strmid(Nick[tg], pname0strlen(pname), 255);//ко 2-игроку имя 1-го
     
strmid(Nick[playerid], tname0strlen(tname), 255);//к 1-му имя 2-го 
все пашет!
Reply
#17

Quote:
Originally Posted by safari
Посмотреть сообщение
Ребят доброго времени суток!Спасибо всем я тут разобрался!

решение:

PHP код:
new Nick[max_players][24];//переменная
new pname[24],tname[24],string[24];
     
GetPlayerName(playerid,pname,sizeof(pname));//ник игрока
     
GetPlayerName(tg,tname,sizeof(tname));//ник 2-го игрока
     
     
strmid(Nick[tg], pname0strlen(pname), 255);//ко 2-игроку имя 1-го
     
strmid(Nick[playerid], tname0strlen(tname), 255);//к 1-му имя 2-го 
все пашет!
оставь в покое промежуточные переменные!

pawn Код:
new Nick[max_players][24];//переменная

GetPlayerName(playerid, Nick[tg], MAX_PLAYER_NAME);//ко 2-игроку имя 1-го
GetPlayerName(tg, Nick[playerid], MAX_PLAYER_NAME);//к 1-му имя 2-го
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)