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

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

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

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

motd при заходе на сервер

Статус пользователя it_s_me
сообщение 19.7.2011, 19:04
Сообщение #1
Стаж: 15 лет

Сообщений: 26
Благодарностей: 1
Полезность: 30

Ребята, помогите доработать плагин, чтобы при заходе на сервер вместо стандартного motd выдавались разные, в зависимости от страны проживания. (Сделать так сказать мультиязычность)

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

Вот оригинальный плагин.

Код
new NAME[] = "Land"
new AUTHOR[] =    "Eisbein"
new VERSION[] =    "1.3"

/*
* AMX Mod X - Version 1.0 SCRIPT
*
* show land 1.3
* see full Countryname in Spectmode!!
* Now with Country-code3 in Playerame!!! (org. St4life)
* Example: Eisbein[DEU]
*
* by Eisbein >>peter@rd-4u.de
* You can use /country or /land for your own Country
*
* mfG PAPA_SCHLUMPF
*/


#include <amxmodx>
#include <geoip>


new playerip[17], getcountry[46], country[33][46], code[4], bcode[3], land[4], nname[33], lang[33], geoip_check[3]


public plugin_init()
{
  register_plugin(NAME,VERSION,AUTHOR)
  register_event("StatusValue","show_country","bd","1=2")
  register_event("StatusValue","auto_country","bd","1=2")
  register_clcmd("say /country","show_owncountry")
  register_clcmd("say /land","show_owncountry")
  register_cvar("amx_showcountry","1")
  register_cvar("amx_autocountry","1")
}

public client_connect(id)
{
  if (!(get_cvar_num("amx_showcountry") ||("amx_autocountry")))
  {
    return PLUGIN_CONTINUE
  }

  get_user_ip(id, playerip, 16, 1)

  geoip_country(playerip,getcountry)
  country[id] = getcountry

  return PLUGIN_CONTINUE
}

public show_country(id)
{
  if (!(get_cvar_num("amx_showcountry")))
  {
    return PLUGIN_CONTINUE
  }

  new target = read_data(2)

  if (target != id && target != 0)
  {
    set_hudmessage(0, 255, 255, -1.0, 0.35, 0, 6.0, 6.0, 0.5, 0.15, 27)
    show_hudmessage(id,"%s",country[target])
  }

  return PLUGIN_CONTINUE
}

public show_owncountry(id)
{
  client_print(id,print_chat,"%s",country[id])
  return PLUGIN_HANDLED
}

public client_infochanged(id)
{
   if (is_user_connected(id)){
      new newname[33]
      get_user_info(id,"name",newname,32)
      check_name(id,newname)
   }
   return PLUGIN_CONTINUE
}
public check_name(id,username[])
{
   get_user_ip(id, playerip, 16, 1)
   if(geoip_code3(playerip,code)){
      format(land,4,"[%s]",code)
      if (contain(username,land) == -1){
         geoip_code3(playerip,code)
         format(nname,32,"%s[%s]",username,code) // use this for: eisbein[DEU]
//         format(nname,32,"[%s]%s",code,username) // use this for: [DEU]eisbein
         set_user_info(id,"name",nname)
      }
   }
   return PLUGIN_CONTINUE
}
public auto_country(id)
{
    get_user_info(id, "lang", geoip_check, 2)
    lang[id] = str_to_num(geoip_check)

    get_user_ip(id, playerip, 16, 1)
    if(equal(geoip_check, "") && geoip_code2(playerip, bcode))
    {
        if(equal(code, "US") || equal(code, "GB")) client_cmd(id, "setinfo lang en")
        else if(equal(bcode, "FR")) client_cmd(id, "setinfo lang fr")
        else if(equal(bcode, "DE")) client_cmd(id, "setinfo lang de")
        else if(equal(bcode, "TR")) client_cmd(id, "setinfo lang tr")
        else if(equal(bcode, "SE")) client_cmd(id, "setinfo lang sv")
        else if(equal(bcode, "DK")) client_cmd(id, "setinfo lang da")
        else if(equal(bcode, "PL")) client_cmd(id, "setinfo lang pl")
        else if(equal(bcode, "NL")) client_cmd(id, "setinfo lang nl")
    }
    return PLUGIN_CONTINUE

}


Вот мои наработки:

Цитата
new NAME[] = "Land"
new AUTHOR[] = "Eisbein"
new VERSION[] = "1.3"

/*
* AMX Mod X - Version 1.0 SCRIPT
*
* show land 1.3
* see full Countryname in Spectmode!!
* Now with Country-code3 in Playerame!!! (org. St4life)
* Example: Eisbein[DEU]
*
* by Eisbein >>peter@rd-4u.de
* You can use /country or /land for your own Country
*
* mfG PAPA_SCHLUMPF
*/


#include <amxmodx>
#include <geoip>


new playerip[17], getcountry[46], country[33][46], code[4], bcode[3], land[4], nname[33], lang[33], geoip_check[3]


public plugin_init()
{
register_plugin(NAME,VERSION,AUTHOR)
register_event("StatusValue","show_country","bd","1=2")
register_event("StatusValue","auto_country","bd","1=2")
register_clcmd("say /country","show_owncountry")
register_clcmd("say /land","show_owncountry")
register_cvar("amx_showcountry","1")
register_cvar("amx_autocountry","1")
}

public client_connect(id)
{
if (!(get_cvar_num("amx_showcountry") ||("amx_autocountry")))
{
return PLUGIN_CONTINUE
}

get_user_ip(id, playerip, 16, 1)

geoip_country(playerip,getcountry)
country[id] = getcountry

return PLUGIN_CONTINUE
}

public show_country(id)
{
if (!(get_cvar_num("amx_showcountry")))
{
return PLUGIN_CONTINUE
}

new target = read_data(2)

if (target != id && target != 0)
{
set_hudmessage(0, 255, 255, -1.0, 0.35, 0, 6.0, 6.0, 0.5, 0.15, 27)
show_hudmessage(id,"%s",country[target])
}

return PLUGIN_CONTINUE
}

public show_owncountry(id)
{
client_print(id,print_chat,"%s",country[id])
return PLUGIN_HANDLED
}

public client_infochanged(id)
{
if (is_user_connected(id)){
new newname[33]
get_user_info(id,"name",newname,32)
check_name(id,newname)
}
return PLUGIN_CONTINUE
}
public check_name(id,username[])
{
get_user_ip(id, playerip, 16, 1)
if(geoip_code3(playerip,code)){
format(land,4,"[%s]",code)
if (contain(username,land) == -1){
geoip_code3(playerip,code)
format(nname,32,"%s[%s]",username,code) // use this for: eisbein[DEU]
// format(nname,32,"[%s]%s",code,username) // use this for: [DEU]eisbein

if(equal(code, "RUS")) set_task(0.01, "motd_ru", id, "", 0, "a", 1)
else if(equal(code, "UKR")) set_task(0.01, "motd_ua", id, "", 0, "a", 1)
else set_task(0.01, "motd_en", id, "", 0, "a", 1)


set_user_info(id,"name",nname)
}
}
return PLUGIN_CONTINUE
}
public auto_country(id)
{
get_user_info(id, "lang", geoip_check, 2)
lang[id] = str_to_num(geoip_check)

get_user_ip(id, playerip, 16, 1)
if(equal(geoip_check, "") && geoip_code2(playerip, bcode))
{
if(equal(code, "US") || equal(code, "GB")) client_cmd(id, "setinfo lang en")
else if(equal(bcode, "FR")) client_cmd(id, "setinfo lang fr")
else if(equal(bcode, "DE")) client_cmd(id, "setinfo lang de")
else if(equal(bcode, "TR")) client_cmd(id, "setinfo lang tr")
else if(equal(bcode, "SE")) client_cmd(id, "setinfo lang sv")
else if(equal(bcode, "DK")) client_cmd(id, "setinfo lang da")
else if(equal(bcode, "PL")) client_cmd(id, "setinfo lang pl")
else if(equal(bcode, "NL")) client_cmd(id, "setinfo lang nl")
}
return PLUGIN_CONTINUE

}


public motd_en ( id )
{
show_motd ( id, "motd_en.txt" )
return PLUGIN_CONTINUE
}

public motd_ru ( id )
{
show_motd ( id, "motd_ru.txt" )
return PLUGIN_CONTINUE
}

public motd_ua ( id )
{
show_motd ( id, "motd_ua.txt" )
return PLUGIN_CONTINUE
}


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

Отредактировал: it_s_me, - 21.7.2011, 17:12
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя it_s_me
сообщение 20.7.2011, 18:52
Сообщение #2
Стаж: 15 лет

Сообщений: 26
Благодарностей: 1
Полезность: 30

и тишина...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя theaqua
сообщение 20.7.2011, 20:21
Сообщение #3


Стаж: 15 лет

Сообщений: 549
Благодарностей: 392
Полезность: 287

ГОВНОКОД!!!


!
Аккаунт пользователя заблокирован до: 18.10.29390, 20:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя theCo6aka
сообщение 20.7.2011, 23:50
Сообщение #4
Стаж: 14 лет

Сообщений: 172
Благодарностей: 75
Полезность: < 0

тэг несоответствующий выбран.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя it_s_me
сообщение 21.7.2011, 1:39
Сообщение #5
Стаж: 15 лет

Сообщений: 26
Благодарностей: 1
Полезность: 30

Цитата
ГОВНОКОД!!!

Сам плагин или мое творение?))

Цитата(theCo6aka @ 21.7.2011, 0:50) *
тэг несоответствующий выбран.


поправь какой именно, я павно впервые в жизни вижу.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя theCo6aka
сообщение 21.7.2011, 9:58
Сообщение #6
Стаж: 14 лет

Сообщений: 172
Благодарностей: 75
Полезность: < 0

[cоde][/cоde]

Отредактировал: theCo6aka, - 21.7.2011, 9:59
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя it_s_me
сообщение 21.7.2011, 12:13
Сообщение #7
Стаж: 15 лет

Сообщений: 26
Благодарностей: 1
Полезность: 30

Цитата(theCo6aka @ 21.7.2011, 10:58) *
[cоde][/cоde]

тю, я думал с кодом связанно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя theCo6aka
сообщение 21.7.2011, 12:39
Сообщение #8
Стаж: 14 лет

Сообщений: 172
Благодарностей: 75
Полезность: < 0

из-за такой мелочи даже смотреть на сам код не хочется.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
cs-portal
сообщение 23.7.2011, 20:00
Сообщение #9
Стаж: 16 лет

Сообщений: 8181
Благодарностей: 2709
Полезность: 0

еще hudmessage постирай

if(equal(code, "RUS")) set_task(0.01,

лучше замени на 0.1

в плагине около 70% мусора.

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