MAGNAT2645
Участник
- Сообщения
- 63
- Реакции
- 7
У меня появилась проблема с получением строк из конфига.
Вот конфиг:
Вот отрывки из кода:
Почему при подключении игрока мне пишет:
[+] Игрок - DD подключился!
То есть иногда строку из "string" вообще не берёт, а иногда просто не берёт HEX цвет.
ЭТО НЕ ВЕСЬ ПЛАГИН, А ТОЛЬКО ОТРЫВКИ. iPlayerType СОХРАНЯЕТСЯ В БД БЕЗ ОШИБОК!!!
Вот конфиг:
PHP:
"PlayerType"
{
"1"
{
"string" "Player"
"rgba" "255 255 255 255"
"chat" "0xFFFFFF"
}
"2"
{
"string" "Elite"
"rgba" "255 255 255 255"
"chat" "0xFFFFFF"
}
"3"
{
"string" "Elite II"
"rgba" "255 255 0 255"
"chat" "0xFFFF00"
}
"4"
{
"string" "Elite III"
"rgba" "205 204 0 255"
"chat" "0xFFCC00"
}
"5"
{
"string" "Retired Moderator"
"rgba" "102 102 153 255"
"chat" "0x666699"
}
"6"
{
"string" "Moderator"
"rgba" "0 92 255 255"
"chat" "0x005CFF"
}
"7"
{
"string" "Super Moderator"
"rgba" "255 0 71 255"
"chat" "0xFF0047"
}
"8"
{
"string" "Very Super Moderator"
"rgba" "187 9 9 255"
"chat" "0xBB0909"
}
"9"
{
"string" "Veteran Moderator"
"rgba" "255 51 0 255"
"chat" "0xFF3300"
}
"10"
{
"string" "Head Moder"
"rgba" "221 74 74 255"
"chat" "0xDD4A4A"
}
"11"
{
"string" "Admin"
"rgba" "1 177 29 255"
"chat" "0x01B11D"
}
"12"
{
"string" "Elite Admin"
"rgba" "255 133 0 255"
"chat" "0xFF8500"
}
"13"
{
"string" "Veteran Admin"
"rgba" "2 68 143 255"
"chat" "0x02448F"
}
"14"
{
"string" "Head Admin"
"rgba" "0 6 158 255"
"chat" "0x00069E"
}
"15"
{
"string" "Co-Owner"
"rgba" "75 255 5 255"
"chat" "0x4BFF05"
}
"16"
{
"string" "Owner"
"rgba" "142 27 206 255"
"chat" "0x8E1BCE"
}
}
Вот отрывки из кода:
PHP:
new String:sPlayerType[MAXPLAYERS + 1][300],
String:sPlayerTypeHex[MAXPLAYERS + 1][300];
int iPlayerType[MAXPLAYERS + 1];
public APLRes AskPluginLoad2(Handle myself, bool late, String:error[], err_max)
{
CreateNative("GetPlayerIntType", PlayerGetIntType);
CreateNative("GetPlayerStringType", PlayerGetStringType);
CreateNative("GetPlayerTypeHex", PlayerGetTypeHex);
return APLRes_Success;
}
public PlayerGetIntType(Handle plugin, numParams)
{
int client = GetNativeCell(1);
if (0 < client <= MaxClients && IsClientInGame(client))
{
return iPlayerType[client];
}
return false;
}
public PlayerGetStringType(Handle plugin, numParams)
{
int client = GetNativeCell(1);
if (0 < client <= MaxClients && IsClientInGame(client))
{
decl String:str[16];
IntToString(iPlayerType[client], str, sizeof(str));
if (!KvJumpToKey(kvPlayerType, str))
{
return false;
}
KvGetString(kvPlayerType, "string", sPlayerType[client], sizeof(sPlayerType[]));
SetNativeString(2, sPlayerType[client], sizeof(sPlayerType[]), true);
return true;
}
return false;
}
public PlayerGetTypeHex(Handle plugin, numParams)
{
int client = GetNativeCell(1);
if (0 < client <= MaxClients && IsClientInGame(client))
{
decl String:str[16];
IntToString(iPlayerType[client], str, sizeof(str));
if (!KvJumpToKey(kvPlayerType, str))
{
return false;
}
KvGetString(kvPlayerType, "chat", sPlayerTypeHex[client], sizeof(sPlayerTypeHex[]));
SetNativeString(2, sPlayerTypeHex[client], sizeof(sPlayerTypeHex[]), true);
return true;
}
return false;
}
public Action TMR_Connected(Handle timer, Handle pack)
{
int iClient;
ResetPack(pack);
iClient = ReadPackCell(pack);
if (IsValidClient(iClient))
{
GetPlayerStringType(iClient, sPlayerType[iClient]);
GetPlayerTypeHex(iClient, sPlayerTypeHex[iClient]);
CPrintToChatAll("{lime}[+] {gold}%N {default}- \x07%06X%s {default}подключился{lime}!", iClient, sPlayerTypeHex[iClient], sPlayerType[iClient]);
}
return Plugin_Continue;
}
Почему при подключении игрока мне пишет:
[+] Игрок - DD подключился!
То есть иногда строку из "string" вообще не берёт, а иногда просто не берёт HEX цвет.
ЭТО НЕ ВЕСЬ ПЛАГИН, А ТОЛЬКО ОТРЫВКИ. iPlayerType СОХРАНЯЕТСЯ В БД БЕЗ ОШИБОК!!!