Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Вывод lang из плагина

, txt
Статус пользователя dimamelnic
сообщение 9.7.2022, 21:29
Сообщение #1
Стаж: 11 лет

Сообщений: 1862
Благодарностей: 229
Полезность: 9

Здрасти

не подскажите как из плагинов которые ставят текст в исходнике на русском языке...

сделать так что бы этот тест был в data/lang

Хочу мультиязычность для сервера поставить да некоторые плагины не дают это сделать и приходится 1 язык использовать

Как сделать так что бы плагин понимал что у него есть txt lang
хотелось бы научится потом менять самому из других плагинов и переводить текст для разных стран .... Спасибо
Исход
/*
Плагин: Crux Ansata
Автор: DUKKHAZ0R | Сайт: http://aimbat.ru/plugins/

Описание:
Плагин добавляет на сервер талисман жизни, у человека имеющего его будет восстанавливаться 5 хп каждые 2 секунды.
В начале рануда рандомному игроку выпадает талисман жизни, если человек умирает, то любой другой сможет подобрать талисман.
Минимальное количество игроков для работы плагина, количество восстанавливаемого здоровья и интервал восстанавления можно настроить в исходнике.

*/

#include <amxmodx>
#include <engine>

#define MIN_PLAYERS 5
#define ROUND_ACCESS 3
#define GIVE_HEALTH 5
#define INTERVAL_REGENERATION 2.0

new const g_szModel[] = "models/crux_ansata.mdl";

new g_iPlayerId, g_iRoundCounter, szName[32];

public plugin_init()
{
register_plugin("Crux Ansata", "1.0", "DUKKHAZ0R");

register_touch("crux_ansata", "player", "fw_TouchEntity");

register_logevent("eRoundStart", 2, "1=Round_Start");
register_event("DeathMsg", "eDeathMsg", "a", "1>0");
register_event("TextMsg", "eRoundRestart", "a", "2&#Game_C", "2&#Game_w");

set_task(INTERVAL_REGENERATION, "RegenerationHealth", .flags="b");
}

public plugin_precache()
{
precache_model(g_szModel);
}

public client_disconnect(id)
if(g_iPlayerId == id) g_iPlayerId = 0;

public eRoundRestart()
g_iRoundCounter = 0;

public eRoundStart()
{
if(++g_iRoundCounter < ROUND_ACCESS || get_playersnum() < MIN_PLAYERS)
return;

static iEnt;

while((iEnt = find_ent_by_class(iEnt, "crux_ansata")))
remove_entity(iEnt);

static apPlayers[32], iPlayers;
get_players(apPlayers, iPlayers, "ach");

g_iPlayerId = apPlayers[random(iPlayers-1)];
get_user_name(g_iPlayerId, szName, charsmax(szName));

ChatColor(0, "^4[CA] ^3%s ^1выпал талисман жизни.", szName);
}

public eDeathMsg()
{
static pVictim, Float:flOrigin[3]; pVictim = read_data(2);

if(pVictim == g_iPlayerId)
{
new iEnt = create_entity("info_target");

if(!is_valid_ent(iEnt))
return;

entity_get_vector(pVictim, EV_VEC_origin, flOrigin);
entity_set_vector(iEnt, EV_VEC_origin, flOrigin);
entity_set_string(iEnt, EV_SZ_classname, "crux_ansata");
entity_set_int(iEnt, EV_INT_solid, SOLID_TRIGGER);
entity_set_int(iEnt, EV_INT_movetype, MOVETYPE_NONE);
entity_set_int(iEnt, EV_INT_effects, 8);
entity_set_model(iEnt, g_szModel);
entity_set_size(iEnt, Float:{-16.0,-16.0,-16.0}, Float:{16.0,16.0,16.0});
ChatColor(g_iPlayerId = 0, "^4[CA] ^3%s ^1потерял талисман жизни.", szName);
}
}

public fw_TouchEntity(iEnt, id)
{
if(!is_valid_ent(iEnt))
return;

get_user_name(g_iPlayerId = id, szName, charsmax(szName));
ChatColor(0,"^4[CA] ^3%s ^1поднял талисман жизни.",szName);

entity_set_int(iEnt, EV_INT_flags, FL_KILLME);
}

public RegenerationHealth()
{
if(!g_iPlayerId || get_playersnum() < MIN_PLAYERS)
return;

static Float:fHealth, MsgId_Health; fHealth = entity_get_float(g_iPlayerId, EV_FL_health);

if(!MsgId_Health) MsgId_Health = get_user_msgid("Health");

if(fHealth < 100 && is_user_alive(g_iPlayerId))
{
static Float:giveHealth; giveHealth = (fHealth + GIVE_HEALTH) < 100 ? float(GIVE_HEALTH) : (100 - fHealth);

entity_set_float(g_iPlayerId, EV_FL_health, fHealth + giveHealth);

message_begin(MSG_ONE_UNRELIABLE, MsgId_Health, _, g_iPlayerId);
write_byte(floatround(fHealth + giveHealth));
message_end();

message_begin(MSG_ONE_UNRELIABLE, 98, _, g_iPlayerId);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(255);
write_byte(0);
write_byte(40);
message_end();
}
}

stock ChatColor(const id, const szMessage[], any:...)
{
static szBuffer[191], apPlayers[32], iPlayers; iPlayers = 1;
vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
if(id)
{
if(!is_user_connected(id)) return;
apPlayers[0] = id;
iPlayers = 1;
}
else get_players(apPlayers, iPlayers, "ch");
for(new i;i < iPlayers; i++)
{
message_begin(MSG_ONE_UNRELIABLE, 76, .player = apPlayers[i]);
write_byte(apPlayers[i]);
write_string(szBuffer);
message_end();
}
}


Отредактировал: dimamelnic, - 9.7.2022, 22:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя pacumka
сообщение 9.7.2022, 23:07
Сообщение #2
Стаж: 8 лет 2 месяца

Сообщений: 1606
Благодарностей: 1117
Полезность: 1218

Меценат Меценат

ChatColor(0, "^4[CA] ^3%s %L", szName, id, "VYPAL");

И в любом работающем ланг txt файле вставь

VYPAL = выпал талисман жизни

http://amxxmodx.ru/lessons-on-pawn/580-tut...slovaryami.html

Отредактировал: pacumka, - 9.7.2022, 23:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя dimamelnic
сообщение 9.7.2022, 23:13
Сообщение #3
Стаж: 11 лет

Сообщений: 1862
Благодарностей: 229
Полезность: 9

pacumka, попробую

pacumka,
что выдает компилятор
/
// C:\Users\dima\Desktop\scripting\crux_ansata.sma(64) : error 017: undefined symbol "id"
// C:\Users\dima\Desktop\scripting\crux_ansata.sma(64) : warning 215: expression has no effect
// C:\Users\dima\Desktop\scripting\crux_ansata.sma(64) : error 001: expected token: ";", but found ")"
// C:\Users\dima\Desktop\scripting\crux_ansata.sma(64) : error 029: invalid expression, assumed zero
// C:\Users\dima\Desktop\scripting\crux_ansata.sma(64) : fatal error 107: too many error messages on one line



меняю с ChatColor(0, "^4[CA] ^3%s ^1выпал талисман жизни.", szName);
на ChatColor(0, "^4[CA] ^3%s %L", szName, id, "VYPAL");
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dimamelnic
сообщение 9.7.2022, 23:19
Сообщение #4
Стаж: 11 лет

Сообщений: 1862
Благодарностей: 229
Полезность: 9

.

Отредактировал: dimamelnic, - 9.7.2022, 23:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dimamelnic
сообщение 10.7.2022, 0:01
Сообщение #5
Стаж: 11 лет

Сообщений: 1862
Благодарностей: 229
Полезность: 9

Кароче вставил вот это client_print(0, print_chat, "%s: %L", LANG_PLAYER, szName, "TEST_TEST1");

по итогу талисман не только не пишет ничего в чат. так еще и сломал его:D талисман появляется у человека. и выпадает с него но об этом не пишет
когда человек пытается его взять... не получается. когда 2 человека пытаются взять сервер тупо лагает причем у всех:D
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dimamelnic
сообщение 10.7.2022, 10:15
Сообщение #6
Стаж: 11 лет

Сообщений: 1862
Благодарностей: 229
Полезность: 9

ChatColor(0, "^4[CA] ^3%s %L", szName, g_iPlayerId, "TEST_TEST1");


работает. но частично показывает как и русский так и другой язык... что то не правильно работает... понимает кто?

Ланги стоят на 2 языка

Конкретно у одних и те же людей показывает на одном языке. хоть через время
а у других людей на другом ... рандома такого нет. хотя если он из страны tr то ему же должно показывать tr текст... а некоторым и русский показывается.

Отредактировал: dimamelnic, - 10.7.2022, 10:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 10.7.2022, 11:59
Сообщение #7
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 345

dimamelnic,

Цитата
ChatColor(0, "^4[CA] ^3%s %L", szName, g_iPlayerId, "TEST_TEST1");


Неверный пример.

Читай внимательно.
http://amxxmodx.ru/lessons-on-pawn/580-tut...slovaryami.html

Цитата
ChatColor(0, "^4[CA] ^3%s %L", szName, LANG_PLAYER, "TEST_TEST1");



Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dimamelnic
сообщение 10.7.2022, 12:18
Сообщение #8
Стаж: 11 лет

Сообщений: 1862
Благодарностей: 229
Полезность: 9

Gecko, Сделал я уже 3мя разными вариантами

картина одна и та же

есть язык сервера RU
Язык клиента TR

То оно рандомит и показывает по разному то турецкий то русский... дело в том что все ланги есть

если я меняю язык сервера на Турецкий а язык клиента стоит Русский... то оно будет показывать Русским на турецком языке о потери талисмана

Этот бред был в AES скриптер один поменял вроде бы стало все хорошо... тут такая же картина. пытаюсь понять что надо в коде поменять что бы Русским показывало русский язык
а туркам показывало турецкий.... а сейчас какой то бред...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: