SendServerMessage(playerid, "%s", Get_Language_Text(LANG_WELCOME), Get_Player_Name(playerid));
SendServerMessage(playerid, "%s%s", Get_Player_Name(playerid), Get_Language_Text(LANG_WELCOME));
enum {
LANG_WELCOME
};
new gLanguageData[][] = {
"%s, добро пожаловать на SERVERNAME!"
};
Get_Language_Text(textid)
{
new
string[256];
format(string, sizeof(string), gLanguageData[textid]);
return string;
}
SendServerMessage(playerid, gLanguageData[LANG_WELCOME], Get_Player_Name(playerid));
pawn Код:
|
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
modules\system_player.p(30) : error 001: expected token: "-string end-", but fou
nd "-identifier-"
modules\system_player.p(30) : warning 215: expression has no effect
modules\system_player.p(30) : error 001: expected token: ";", but found ")"
modules\system_player.p(30) : error 029: invalid expression, assumed zero
modules\system_player.p(30) : fatal error 107: too many error messages on one li
ne
Compilation aborted.
4 Errors.
SendClientMessageEx(playerid, color, const text[], {Float, _}:...)
{
static
args,
str[144];
if ((args = numargs()) == 3)
{
SendClientMessage(playerid, color, text);
}
else
{
while (--args >= 3)
{
#emit LCTRL 5
#emit LOAD.alt args
#emit SHL.C.alt 2
#emit ADD.C 12
#emit ADD
#emit LOAD.I
#emit PUSH.pri
}
#emit PUSH.S text
#emit PUSH.C 144
#emit PUSH.C str
#emit PUSH.S 8
#emit SYSREQ.C format
#emit LCTRL 5
#emit SCTRL 4
SendClientMessage(playerid, color, str);
#emit RETN
}
return true;
}
enum yourEnumName {
LANG_WELCOME[40]
};
new gLanguageData[yourEnumName] = {
"%s, добро пожаловать на SERVERNAME!"
};
Ну ещё должно быть так:
pawn Код:
|
/* Используется как константы для обращения к ячейкам массива */
enum {
LANG_WELCOME
};
/* Не нужно каждый раз указывать размер строки. */
new gLanguageData[][] = {
"%s, добро пожаловать на SAMPLAY!"
};
Да можно сделать и вот так:
PHP код:
|
format(string, sizeof(string), Get_Language_Text(LANG_LOGIN_ATTEMP_ERROR), Get_Player_Login_Attempts(extraid), Get_Language_Text(LANG_DIALOG_LOGIN), Get_Player_Name(extraid));
ShowPlayerDialog(extraid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, Get_Language_Text(LANG_DIALOG_LOGIN_HEADER), string, Get_Language_Text(LANG_DIALOG_ACCEPT), Get_Language_Text(LANG_DIALOG_CANCEL));
enum {
LANG_DIALOG_ACCEPT,
LANG_DIALOG_CANCEL,
LANG_DIALOG_LOGIN_HEADER,
LANG_DIALOG_LOGIN,
LANG_LOGIN_ATTEMP_ERROR
};
new gLanguageData[][] = {
"{9cc254}Авторизация",
"{9cc254}%s{ffffff}, добро пожаловать на сервер {9cc254}servername{ffffff}!\n\nВаш аккаунт уже зарегистрирован на нашем проекте.\n\nДля авторизации на сервере, введите свой пароль в окошке:",
"{800000}* {ffffff}Указан неверный пароль, у вас осталось {800000}%d {ffffff}попыток.\n\n%s"
};
Вот так, как ты написал - получается? В формате аргументы должны идти по очереди включения %#
|
format(error, sizeof(error), Get_Language_Text(LANG_LOGIN_ATTEMP_ERROR), Get_Player_Login_Attempts(extraid));
format(string, sizeof(string), Get_Language_Text(LANG_DIALOG_LOGIN), Get_Player_Name(extraid));
strcat(error, string);
ShowPlayerDialog(extraid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, Get_Language_Text(LANG_DIALOG_LOGIN_HEADER), error, Get_Language_Text(LANG_DIALOG_ACCEPT), Get_Language_Text(LANG_DIALOG_CANCEL));