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

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

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

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

Помогите с LangSpawnMenu

Статус пользователя Matrix.AZ
сообщение 24.12.2012, 11:47
Сообщение #1


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

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

Где что надо изменить?

Код
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "LangSpawnMenu"
#define AUTHOR "remus"
#define VERSION "0.0.1"

new cvar_LangSpawnMenu

public plugin_init()
{
    register_plugin(PLUGIN,VERSION,AUTHOR)
    RegisterHam(Ham_Spawn,"player","LangSpawnTask",1)
    cvar_LangSpawnMenu = register_cvar("amx_langspawnmenu","5")
    register_dictionary("LangSpawnMenu.txt")
}

public LangSpawnTask(id)
{
    if (is_user_alive(id))
    set_task(get_pcvar_float(cvar_LangSpawnMenu),"LangSpawnMenu",id)
}

public LangSpawnMenu(id)
{
    new szText[512 char]
    
    formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_TITLE")
    new menu = menu_create(szText,"LangSpawnFuncMenu")
    
    formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_EN")
    menu_additem(menu,szText,"1")
    
    formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_RU")
    menu_additem(menu,szText,"2")
    
    menu_setprop(menu,MPROP_NUMBER_COLOR,"\w")
    menu_setprop(menu,MPROP_EXIT,-1)
        menu_display(id,menu)
    return PLUGIN_CONTINUE
}

public LangSpawnFuncMenu(id,menu,item)
{
    if(item==MENU_EXIT)
    {
        return PLUGIN_HANDLED
    }
    
    new data[6],iName[64],access,callback
    menu_item_getinfo(menu,item,access,data,charsmax(data),iName,charsmax(iName),callback)
    
    new key = str_to_num(data)
    
    switch(key)
    {
        case 1:
        {
            client_cmd(id,"setinfo lang en")
            client_print(0,print_console,"%L",LANG_PLAYER,"LANG_PLAYER_EN")
            client_print(0,print_chat,"%L",LANG_PLAYER,"LANG_PLAYER_EN")
            return PLUGIN_HANDLED
        }
        case 2:
        {
            client_cmd(id,"setinfo lang ru")
            client_print(0,print_console,"%L",LANG_PLAYER,"LANG_PLAYER_RU")
            client_print(0,print_chat,"%L",LANG_PLAYER,"LANG_PLAYER_RU")
            return PLUGIN_HANDLED
        }
    }
    return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя 3apuk
сообщение 24.12.2012, 13:08
Сообщение #2
Стаж: 14 лет

Сообщений: 106
Благодарностей: 24
Полезность: 181

Делай таск в client_authorized, а не Ham_Spawn
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 24.12.2012, 14:54
Сообщение #3


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

Правильно тебя понял, так:

Код
public LangSpawnTask(id)
{
    if (is_user_alive(id))
    set_task(get_pcvar_float(cvar_LangSpawnMenu),"LangSpawnMenu",id)
}


на

Код
public client_authorized(id)
{
    if (is_user_connected(id))
    set_task(get_pcvar_float(cvar_LangSpawnMenu),"LangSpawnMenu",id)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 25.12.2012, 22:18
Сообщение #4


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

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

Скрытый текст
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "LangSpawnMenu"
#define AUTHOR "remus"
#define VERSION "0.0.1"

new cvar_LangSpawnMenu

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
RegisterHam(Ham_Spawn,"player","LangSpawnTask",1)
cvar_LangSpawnMenu = register_cvar("amx_langspawnmenu","5")
register_dictionary("LangSpawnMenu.txt")
}

public client_authorized(id)
{
if (is_user_connected(id))
set_task(get_pcvar_float(cvar_LangSpawnMenu),"LangSpawnMenu",id)
}

public LangSpawnMenu(id)
{
new szText[512 char]

formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_TITLE")
new menu = menu_create(szText,"LangSpawnFuncMenu")

formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_EN")
menu_additem(menu,szText,"1")

formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_RU")
menu_additem(menu,szText,"2")

menu_setprop(menu,MPROP_NUMBER_COLOR,"\w")
menu_setprop(menu,MPROP_EXIT,-1)
menu_display(id,menu)
return PLUGIN_CONTINUE
}

public LangSpawnFuncMenu(id,menu,item)
{
if(item==MENU_EXIT)
{
return PLUGIN_HANDLED
}

new data[6],iName[64],access,callback
menu_item_getinfo(menu,item,access,data,charsmax(data),iName,charsmax(iName),cal
lback)

new key = str_to_num(data)

switch(key)
{
case 1:
{
client_cmd(id,"setinfo lang en")
client_print(0,print_console,"%L",LANG_PLAYER,"LANG_PLAYER_EN")
client_print(0,print_chat,"%L",LANG_PLAYER,"LANG_PLAYER_EN")
return PLUGIN_HANDLED
}
case 2:
{
client_cmd(id,"setinfo lang ru")
client_print(0,print_console,"%L",LANG_PLAYER,"LANG_PLAYER_RU")
client_print(0,print_chat,"%L",LANG_PLAYER,"LANG_PLAYER_RU")
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}


Отредактировал: Matrix.AZ, - 25.12.2012, 22:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 26.12.2012, 13:58
Сообщение #5


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

Кто поможет ?? Чтобы язык мог выбирать при каждом заходе на сервер. .?

а не каждый раунд выбор языка идет , а только при заходе на сервер...

Отредактировал: Matrix.AZ, - 26.12.2012, 20:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 26.12.2012, 20:30
Сообщение #6


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

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

Скрытый текст

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "LangSpawnMenu"
#define AUTHOR "remus"
#define VERSION "0.0.1"

new cvar_LangSpawnMenu

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
RegisterHam(Ham_Spawn,"player","LangSpawnTask",1)
cvar_LangSpawnMenu = register_cvar("amx_langspawnmenu","5")
register_dictionary("LangSpawnMenu.txt")
}

public LangSpawnTask(id)
{
if (is_user_alive(id))
set_task(get_pcvar_float(cvar_LangSpawnMenu),"LangSpawnMenu",id)
}

public LangSpawnMenu(id)
{
new szText[512 char]

formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_TITLE")
new menu = menu_create(szText,"LangSpawnFuncMenu")

formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_EN")
menu_additem(menu,szText,"1")

formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_RU")
menu_additem(menu,szText,"2")

menu_setprop(menu,MPROP_NUMBER_COLOR,"\w")
menu_setprop(menu,MPROP_EXIT,-1)
menu_display(id,menu)
return PLUGIN_CONTINUE
}

public LangSpawnFuncMenu(id,menu,item)
{
if(item==MENU_EXIT)
{
return PLUGIN_HANDLED
}

new data[6],iName[64],access,callback
menu_item_getinfo(menu,item,access,data,charsmax(data),iName,charsmax(iName),cal
lback)

new key = str_to_num(data)

switch(key)
{
case 1:
{
client_cmd(id,"setinfo lang en")
client_print(0,print_console,"%L",LANG_PLAYER,"LANG_PLAYER_EN")
client_print(0,print_chat,"%L",LANG_PLAYER,"LANG_PLAYER_EN")
return PLUGIN_HANDLED
}
case 2:
{
client_cmd(id,"setinfo lang ru")
client_print(0,print_console,"%L",LANG_PLAYER,"LANG_PLAYER_RU")
client_print(0,print_chat,"%L",LANG_PLAYER,"LANG_PLAYER_RU")
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 27.12.2012, 17:23
Сообщение #7
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Matrix.AZ,
ты знаешь что делает функция??

Код
RegisterHam(Ham_Spawn,"player","LangSpawnTask",1)


данная функция вызывается в public LangSpawnTask(id) при воскрешение игрока.
а именно так у тебя работает:

Игрок воскрес, вызвало меню.
и так постоянно.
тебе нужно сделать:

Код
public client_putinserver(id)
{
//вызываем меню.
}


т.е. функция client_putinserver(id) вызывается когда игрок вошол на сервер, и увидел motd окно. Открываем меню через 10-15сек. после входа, тоесть:

Код
public client_putinserver(id)
{
set_task(10.0, "cmdMenuLand", id);
}

public cmdMenuLand(id)
{
//а тут меню.
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Matrix.AZ
сообщение 28.12.2012, 0:20
Сообщение #8


Стаж: 19 лет

Сообщений: 124
Благодарностей: 7
Полезность: 52

СПАСИБО ВАМ ЗА ПОМОЩЬ!!!!

КОМУ НУЖЕН ТАКОЙ ПЛАГИН ВОТ :
Скрытый текст
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "LangJoinMenu"
#define AUTHOR "Togrul.AZ*"
#define VERSION "5.5"

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
register_dictionary("LangSpawnMenu.txt")
}

public client_putinserver(id)
{
set_task(10.0, "cmdMenuLand", id);
}

public cmdMenuLand(id)
{
new szText[512 char]

formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_TITLE")
new menu = menu_create(szText,"LangSpawnFuncMenu")

formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_EN")
menu_additem(menu,szText,"1")

formatex(szText,charsmax(szText),"%L",id,"LANG_SPAWN_RU")
menu_additem(menu,szText,"2")

menu_setprop(menu,MPROP_NUMBER_COLOR,"\w")
menu_setprop(menu,MPROP_EXIT,-1)
menu_display(id,menu)
return PLUGIN_CONTINUE
}

public LangSpawnFuncMenu(id,menu,item)
{
if(item==MENU_EXIT)
{
return PLUGIN_HANDLED
}

new data[6],iName[64],access,callback
menu_item_getinfo(menu,item,access,data,charsmax(data),iName,charsmax(iName),cal
lback)

new key = str_to_num(data)

switch(key)
{
case 1:
{
client_cmd(id,"setinfo lang en")
client_print(0,print_console,"%L",LANG_PLAYER,"LANG_PLAYER_EN")
client_print(0,print_chat,"%L",LANG_PLAYER,"LANG_PLAYER_EN")
return PLUGIN_HANDLED
}
case 2:
{
client_cmd(id,"setinfo lang ru")
client_print(0,print_console,"%L",LANG_PLAYER,"LANG_PLAYER_RU")
client_print(0,print_chat,"%L",LANG_PLAYER,"LANG_PLAYER_RU")
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nickk
сообщение 29.12.2012, 12:45
Сообщение #9
Стаж: 13 лет

Сообщений: 438
Благодарностей: 120
Полезность: 523

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