Массив строк. tag mismatch

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
Краткость - сестра таланта. Что не так?


PHP:
new pPrefix[MAXPLAYERS][256];
SQL_FetchString(hndl, 9, pPrefix[iClient], sizeof(pPrefix));

public Action:MyRank(client, args)
{
	if(client > 0) PrintToChat(client, "%s", pPrefix[client]);
}
 

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621
Primo, Эм не уверен но как вариант может так?
new pPrefix[256][MAXPLAYERS];
Не уверен, т.к с бд не работал.. Да и в сп средне....

Добавлено через 50 секунд
И вообще в какой строке ошибка из этих? Тут нет экстрасенсов...
 
Последнее редактирование:

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
Саша Шеин, это явно не решение проблемы.
Акцент на SQL_FetchString(hndl, 9, pPrefix[iClient], sizeof(pPrefix));

Если логика развита, то можно понять, что Action:MyRank лишь только для проверки, что получил, в остальных 2х строчках не потеряешься.
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
Primo, создаёшь инт, а в чате выводишь почему то строку.
PrintToChat(client, "%d", pPrefix[client]);

А может сама проблема тут
new pPrefix[MAXPLAYERS][256]; - надо создавать строку.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
Серый™, чувствую себя дауном.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #7
PHP:
new String:pPrefix[MAXPLAYERS+1][256];
SQL_FetchString(hndl, 9, pPrefix[iClient], sizeof(pPrefix[]));

public Action:MyRank(client, args)
{
	if(client > 0) PrintToChat(client, "%s", pPrefix[client]);
}
 
Последнее редактирование:

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
Второй вопрос, как можно передать данные этой строки через native?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Причину указали, а сам хочу добавить, что задержка будет большая, если ты такое применишь в локальной области действия, да ещё без decl!
В глобальной области тоже плоховато выглядит - занимает много памяти, не эффективное решение.
+1 забыто!
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
Я опять делаю что-то не так. :D
PHP:
public Native_pGetPlayerPrefix(Handle:plugin, numParams)
{
	SetNativeString(GetNativeCell(1), pPrefix[GetNativeCell(1)], GetNativeCell(3));
}
native pGetPlayerPrefix(client, String:str[], maxlength);
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
опять делаю что-то не так
SetNativeString(GetNativeCell(1)
Может первым надо поставить numParams? Сам нативы не использовал, сказать точно ничего не могу. Разве что уже вижу, что нужно/можно оптимизировать даже эту маленькую строчку. :-D
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
AlmazON, насколько я знаю и понимаю, GetNativeCell(1) получает значение первого аргумента, а зачем numParams - хз.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
а ты туда cell пилишь
Тоже чуть так не написал, но
это у него текст (массив).
Наверняка, сколько аргументов (количество) во всей строке/параметры.
 

Primo

типа серьёзный тип
Сообщения
1,532
Реакции
759
R1KO, меня запугало количество параметров у GetNativeString :D и GetNativeCell(1) - индекс клиента.

Добавлено через 39 минут
Нет идей? Мне нужно передать строку Prefix в другой плагин через native.

Добавлено через 1 час 4 минуты
Как работает https://sm.alliedmods.net/api/index.php?fastload=show&id=34& ?

Добавлено через 1 час 18 минут
Проблема решена.
public Native_pGetPlayerPrefix(Handle:plugin, numParams)
{
return SetNativeString(2, pPrefix[GetNativeCell(1)], GetNativeCell(3));
}
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
SetNativeString(2, pPrefix[GetNativeCell(1)], GetNativeCell(3));
Глупо сохранять глобально и получать параметр GetNativeCell(3), когда это можно прописать просто, как 256 - ведь у тебя именно такой максимум:
PHP:
public Native_pGetPlayerPrefix(Handle:plugin, numParams)
{
	SetNativeString(2, pPrefix[GetNativeCell(1)], 256);
}
Не знаю, надо ли менять в таком случае 2 на 1.
Либо уж тогда получать через strlen внутри функции натива.
 
Сверху Снизу