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

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

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

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

Перевод плагина

Статус пользователя Johnny
сообщение 2.6.2013, 23:19
Сообщение #1


Стаж: 13 лет

Сообщений: 2470
Благодарностей: 1086
Полезность: 515

Господа! Так как я не силен в павне и пришел в полный тупик, прошу помощи.

Как организовать русский язык в меню этого плагина?
Как я понимаю массивы не понимают рашен...

Код

Код:
#include <amxmodx>
#include <amxmisc>
#include <chatcolor>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <cstrike>


#define PLUGIN "Shop"
#define VERSION "1.1"
#define AUTHOR "Darksmith"

#pragma semicolon 1

new g_iMenu, gmsgBlinkAcct, g_iMaxPlayers;

enum _:playerTasks ( += 33 )
{
TASK_PLAYER_REMOVE_GODMODE,
TASK_PLAYER_REMOVE_INVIS,
TASK_PLAYER_REMOVE_NOCLIP
}

enum Datas
{
m_szName[32],
m_iCost
}

new const g_mItems[][Datas] =
{
{"No Clip \r30 Second", 4000},
{"Godmode \r20 Seconds", 3500},
{"Invisibility \r40 Seconds", 6000},
{"500 Health and Armor \r1 Round", 5000}
};

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);

register_clcmd("say /lm", "shop");
register_clcmd("say /shop", "shop");
register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0");


CreateMenu();

gmsgBlinkAcct = get_user_msgid("BlinkAcct");
}

public Event_HLTV_New_Round()
{
for(new id = 1; id<=g_iMaxPlayers; id++)
{
remove_task( id + TASK_PLAYER_REMOVE_GODMODE );
remove_task( id + TASK_PLAYER_REMOVE_INVIS );
remove_task( id + TASK_PLAYER_REMOVE_NOCLIP );
Task_Remove_Noclip( id );
Task_Remove_GodMode( id );
Task_Remove_Invis( id );
}
}

CreateMenu()
{
g_iMenu = menu_create( "\wМагазин \R\y$", "ShopMenuHandler" );

new szItem[64];
for(new i; i<sizeof(g_mItems); i++)
{
formatex(szItem, charsmax(szItem), "%s\R\y%d", g_mItems[i][m_szName], g_mItems[i][m_iCost]);
menu_additem(g_iMenu, szItem);
}
}
public shop(id)
{
if(is_user_alive(id))
{
menu_display(id, g_iMenu);
}
}

public ShopMenuHandler(id, menu, item )
{
if(item >=0 && is_user_alive(id))
{
new newMoney = cs_get_user_money(id) - g_mItems[item][m_iCost];
if( newMoney <= 0 )
{
client_print_color(id, Red, "^4[CSDM] ^3У Вас нехватает денег!");

message_begin(MSG_ONE, gmsgBlinkAcct, _, id);
{
write_byte(2);
}
message_end();
return;
}
cs_set_user_money(id, newMoney);

switch(item)
{
case 0:
{
set_user_noclip(id, 1);
set_task(30.0, "Task_Remove_Noclip", id + TASK_PLAYER_REMOVE_NOCLIP);
client_print_color(id, Red, "^4[CSDM] ^1Вы активировали бесприпятствие на^3 30 ^1секунд.");
}
case 1:
{
set_user_godmode(id, 1);
set_task(40.0, "Task_Remove_GodMode", id + TASK_PLAYER_REMOVE_GODMODE);
client_print_color(id, Red, "^4[CSDM] ^1Вы активировали бессмертие на^3 40 ^1секунд.");
}
case 2:
{
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha);
set_task(60.0, "Task_Remove_Invis", id + TASK_PLAYER_REMOVE_INVIS);
client_print_color(id, Red, "^4[CSDM] ^1Вы активировали невидимость на^3 60 ^1секунд.");
}
case 3:
{
set_user_health(id, 250);
cs_set_user_armor(id, 250, CS_ARMOR_VESTHELM);
client_print_color(id, Red, "^4[CSDM] ^1Вы пополнили жизнь и броню на^3 250 ^1единиц.");
}
}
}
}

public Task_Remove_Noclip( id )
{
id %= 33;
if( is_user_connected(id) )
{
set_user_noclip(id, 0);
}
}

public Task_Remove_GodMode( id )
{
id %= 33;
if( is_user_connected(id) )
{
set_user_godmode(id, 0);
}
}

public Task_Remove_Invis( id )
{
id %= 33;
if( is_user_connected(id) )
{
set_user_rendering(id, _, 0, 0, 0, _, 0);
}
}



/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1036\\ f0\\ fs16 \n\\ par }
*/
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1036\\ f0\\ fs16 \n\\ par }
*/

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя RedL1ne
сообщение 2.6.2013, 23:22
Сообщение #2


Стаж: 15 лет

Сообщений: 3828
Благодарностей: 1854
Полезность: 876

Код:
new const g_mItems[][Datas] =
{
{"Ноклип \r30 Сек", 4000},
{"Неуязвимость \r20 Сек", 3500},
{"Невидимость \r40 Сек", 6000},
{"500 НР и АР \r1 Раунд", 5000}
};

не?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя nsgenn
сообщение 3.6.2013, 0:34
Сообщение #3


Стаж: 13 лет

Сообщений: 885
Благодарностей: 561
Полезность: 667

Сохраняй исходник в кодировке: UTF-8 без BOM, это можно сделать, например в Notepad++
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iLLuSioN
сообщение 3.6.2013, 6:29
Сообщение #4
Иконка группы

Стаж: 19 лет

Сообщений: 6911
Благодарностей: 7990
Полезность: 1639

Johnny,
Понимают)


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Johnny
сообщение 3.6.2013, 6:40
Сообщение #5


Стаж: 13 лет

Сообщений: 2470
Благодарностей: 1086
Полезность: 515

Уважаемые, я сказал, что я не силен в павне, но не совсем дуб... bangin.gif

RedL1ne,
Попробуй скомпилировать такой код... Никак не хочет...

nsgenn,
Thanks win.gif

iLLuSioN,
Хм... Любую русскую букву использую сразу же ошибка:

Код
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// shop2.sma
// C:\Documents and Settings\Admin\╨рсюўшщ ёЄюы\AMXMODX  ─ы  ЄхёЄшЁютрэш \script
ing\shop2.sma(34) : warning 228: length of initialler exceeds size of the enum f
ield
// C:\Documents and Settings\Admin\╨рсюўшщ ёЄюы\AMXMODX  ─ы  ЄхёЄшЁютрэш \script
ing\shop2.sma(34) : error 018: initialization data exceeds declared size
//
// 1 Error.
// Could not locate output file C:\Documents and Settings\Admin\╨рсюўшщ ёЄюы\AMX
MODX  ─ы  ЄхёЄшЁютрэш \scripting\compiled\shop2.amx (compile failed).
//
// Compilation Time: 0,5 sec
// ----------------------------------------

Press enter to exit ...


При этом я перевел только одну строку: {"No Clip \r30 Second", 4000},
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 3.6.2013, 7:04
Сообщение #6


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Если вот так вот, то компилируется
Код:
new const g_mItems[][Datas] =
{
{"Ноклип \r30 Сек", 4000},
{"Неуязви \r20 Сек", 3500},
{"Невиди \r40 Сек", 6000},
{"500 НР и АР \r1 Раунд", 5000}
};


И так тоже
Код:
new const g_mItems[][Datas] =
{
{"Ноклип \r30 Сек", 4000},
{"Неуязвим \r20 Сек", 3500},
{"Невидимка \r40 Сек", 6000},
{"500 НР и АР \r1 Раунд", 5000}
};


Отредактировал: winzh1, - 3.6.2013, 7:06


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя RedL1ne
сообщение 3.6.2013, 7:08
Сообщение #7


Стаж: 15 лет

Сообщений: 3828
Благодарностей: 1854
Полезность: 876

Размер массива надо как бы увеличивать где регестрировалась переменная, сейчас там ограничение 32 символа забито, стоит учесть, что рус буквы за большее количество считает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 3.6.2013, 7:12
Сообщение #8


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(RedL1ne @ 3.6.2013, 12:08) *
Размер массива надо как бы увеличивать где регестрировалась переменная, сейчас там ограничение 32 символа забито, стоит учесть, что рус буквы за большее количество считает.

Ага, если заменить
Код:
m_szName[32]

на
Код:
m_szName[64]

То комплелирует без проблем.


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Johnny
сообщение 3.6.2013, 7:15
Сообщение #9


Стаж: 13 лет

Сообщений: 2470
Благодарностей: 1086
Полезность: 515

Увеличивал размер массива до 128, не компилил, сейчас проверю еще раз.


UPD: Всем спасибо, скомпилировался. Не знаю почему, но до этого не хотел никак... Возможно я где то до этого накосячил, тему можно офф.

Отредактировал: Johnny, - 3.6.2013, 7:20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: