Русское сообщество по скриптингу

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

Флуд, который не касается других разделов форума.

Модератор: Модераторы

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

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

Сообщение omon » 26 мар 2012, 15:01

Здрасте. Прошу перевести плагин hobo_afk_manager полностью на русский ибо я в англ не бум бум. Гугл переводит такую фигню что даже читать не хочется ( полный набор слов )
[spoiler]
Код: Выделить всё
/*
********************************************************************************
*  AMX Mod X script.
*
*   Hobo AFK Manager (hobo_AFK_manager.sma)
*   Copyright (C) 2008-2009 hoboman
*
*   This program is free software; you can redistribute it and/or
*   modify it under the terms of the GNU General Public License
*   as published by the Free Software Foundation; either version 2
*   of the License, or (at your option) any later version.
*
*   This program is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU General Public License for more details.
*
*   You should have received a copy of the GNU General Public License
*   when you downloaded AMX Mod X; if not, write to the Free Software
*   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*
*   In addition, as a special exception, the author gives permission to
*   link the code of this program with the Half-Life Game Engine ("HL
*   Engine") and Modified Game Libraries ("MODs") developed by Valve,
*   L.L.C ("Valve"). You must obey the GNU General Public License in all
*   respects for all of the code used other than the HL Engine and MODs
*   from Valve. If you modify this file, you may extend this exception
*   to your version of the file, but you are not obligated to do so. If
*   you do not wish to do so, delete this exception statement from your
*   version.
*
*********************************************************************************
*/

/*
* For a full plugin description read: Вы должны зарегистрироваться, чтобы видеть ссылки.
*/

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN   "Hobo AFK Manager"
#define AUTHOR   "hoboman313"
#define VERSION   "1.2a"

#define MAX_PLAYERS 32
//Admins with this flag cannot be kicked
#define AFK_IMMUNITY ADMIN_IMMUNITY
#define AFK_MOVE_DIST 15

#define OFFSET_TEAM 114
#define OFFSET_INTERNALMODEL 126

#define PUNISH_UNASSIGNED 0
#define PUNISH_SPECTATOR 1
#define PUNISH_AFK_SPECTATOR 2
#define PUNISH_AFK_KICK 3
#define PUNISH_NOMODEL 4


enum CsInternalModel
{
    CS_DONTCHANGE = 0,
    CS_CT_URBAN = 1,
    CS_T_TERROR = 2,
    CS_T_LEET = 3,
    CS_T_ARCTIC = 4,
    CS_CT_GSG9 = 5,
    CS_CT_GIGN = 6,
    CS_CT_SAS = 7,
    CS_T_GUERILLA = 8,
    CS_CT_VIP = 9,
    CZ_T_MILITIA = 10,
    CZ_CT_SPETSNAZ = 11
}

enum CsTeams
{
    CS_TEAM_UNASSIGNED = 0,
    CS_TEAM_T = 1,
    CS_TEAM_CT = 2,
    CS_TEAM_SPECTATOR = 3
}

new g_oldangles[MAX_PLAYERS+1][3], g_afktime[MAX_PLAYERS+1], saved_freq, bool:freezetimeOver
new bool:player_spawned[MAX_PLAYERS+1],  msgSync, maxplayers, bool:selectedNoModel[MAX_PLAYERS+1]
//cvars
new maxAfkTime, aImmunity, kick, kickPlayers, unassignedTime, warning_time, check_frequency
   
public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)

   check_frequency= register_cvar("hobo_afk_frequency", "1.0")
   maxAfkTime = register_cvar("hobo_afk_time", "60")
   aImmunity = register_cvar("hobo_afk_immunity", "1")
   kick = register_cvar("hobo_afk_kick", "0")
   kickPlayers = register_cvar("hobo_afk_spectator_kick", "16")
   unassignedTime = register_cvar("hobo_afk_unassigned_time", "60")
   warning_time = register_cvar("hobo_afk_warning_time", "10" )
 
   msgSync = CreateHudSyncObj()
   maxplayers = get_maxplayers()
   
   register_logevent("round_start_event", 2, "1=Round_Start")

   RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
   
   if( get_cvar_num("mp_freezetime") > 0 )
      register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
   
   saved_freq=get_pcvar_num(check_frequency)
   set_task(get_pcvar_float(check_frequency), "checkPlayers", 31337, _, _, "b")
}


public player_spawn(id)
{
   if( is_user_alive(id) && !is_user_bot(id) )
   {
      new arrId[1]
      arrId[0]=id
      //player isn't considered spawned until he drops to the ground
      set_task( 0.5, "playerSpawned", id, arrId, 1  )
   }
}


public event_new_round()
   freezetimeOver=false


public round_start_event()
{
   for( new i = 1; i <= maxplayers; i++ )
   {
      player_spawned[i] = false
      
      if( is_user_connected(i) && ( fm_get_user_team(i) == CS_TEAM_CT || fm_get_user_team(i) == CS_TEAM_T ) && !is_user_alive(i) && checkImmunity(i) )
      {
         if( selectedNoModel[i] == true )
            punish_player( i, PUNISH_NOMODEL )
            
         selectedNoModel[i]=true
      }
      else
         selectedNoModel[i]=false
   }
   
   if( saved_freq != get_pcvar_num(check_frequency) )
   {
      change_task( 31337, get_pcvar_float(check_frequency) )
      saved_freq = get_pcvar_num(check_frequency)   
   }
   
   freezetimeOver=true
}


public checkPlayers()
{
   static newangle[3]
   
   if(freezetimeOver)
   {
      for ( new i = 1; i <= maxplayers; i++ )
      {
         if ( is_user_alive(i) && player_spawned[i] )
         {
            get_user_origin( i, newangle )

            if ( abs(newangle[0]-g_oldangles[i][0]) < AFK_MOVE_DIST && abs(newangle[1]-g_oldangles[i][1]) < AFK_MOVE_DIST && abs(newangle[2]-g_oldangles[i][2]) < AFK_MOVE_DIST )
            {
               g_afktime[i] += get_pcvar_num(check_frequency)
               
               check_afktime(i)
            }
            else
            {
               g_oldangles[i][0] = newangle[0]
               g_oldangles[i][1] = newangle[1]
               g_oldangles[i][2] = newangle[2]
               g_afktime[i] = 0
            }
         }
      }
   }
}


public check_afktime(id)
{
   new afkTimeTmp = get_pcvar_num( maxAfkTime ), afkTimeLeft, kickOrSpect
   
   static punishName[17]
   
   afkTimeLeft = afkTimeTmp - g_afktime[id]
   
   if ( afkTimeLeft <= get_pcvar_num(warning_time) )
   {   
      if( ( get_pcvar_num(kick) || get_playersnum() > get_pcvar_num(kickPlayers) ) && checkImmunity(id) )
      {
         kickOrSpect=1
         punishName="kicked"
      }
      else
      {
         kickOrSpect=0
         punishName="put to Spectator"
      }
      
      if(afkTimeLeft>0)
      {
         set_hudmessage(0, 100, 200, -1.0, 0.25, 1, 0.1, 3.0, 0.05, 0.05, -1)
         ShowSyncHudMsg( id, msgSync, "You have %d seconds to move or you will be %s for being AFK", afkTimeLeft, punishName )
      }
   }
   
   if( g_afktime[id] >= afkTimeTmp )
   {
      if( kickOrSpect==1 )
         punish_player(id, PUNISH_AFK_KICK )   
      else
         punish_player(id, PUNISH_AFK_SPECTATOR )
      
      g_afktime[id]=0
   }
}


public client_disconnect(id)
{   
   g_afktime[id] = 0
   selectedNoModel[id]= false   
}


//a player connected so we must find and kick a spectator if there are any
public client_putinserver(id)
{
   if( is_user_bot(id) || is_user_hltv(id) )
      return
   
   if( checkImmunity(id) )
   {
      new arrId[1]
      arrId[0] = id
      set_task( get_pcvar_float( unassignedTime ), "check_unassigned", id+40, arrId, 1 )
   }
   
   if( get_playersnum() > get_pcvar_num(kickPlayers) )
   {
      for( new i=1; i<=maxplayers; i++ )
      {
         if( is_user_connected(i) && fm_get_user_team(i) == CS_TEAM_SPECTATOR && checkImmunity(i) )
         {
            punish_player( i, PUNISH_SPECTATOR )
            break
         }
      }
   }
}


public check_unassigned( arrId[] )
{
   new id=arrId[0]
   
   //if the player is unassigned after x seconds then kick him
   if( is_user_connected(id) && fm_get_user_team( id ) == CS_TEAM_UNASSIGNED )
      punish_player( id, PUNISH_UNASSIGNED )
}


public playerSpawned(arrId[])
{
   new id=arrId[0]
   get_user_origin( id, g_oldangles[id] )
   player_spawned[id] = true
}


stock punish_player( id, punishType )
{
   static name[32]
   get_user_name(id, name, 31)
   
   switch(punishType)
   {
      case PUNISH_UNASSIGNED:
      {
         client_print( 0, print_chat, "%s was kicked for being unnassigned longer than %d seconds", name, get_pcvar_num(unassignedTime) )
         server_cmd("kick #%d ^"You were kicked for being unassigned for more than %d seconds^"", get_user_userid(id ), get_pcvar_num(unassignedTime) )   
      }
      case PUNISH_SPECTATOR:
      {
         client_print( 0, print_chat, "%s was kicked for spectating on a server with more than %d players", name, get_pcvar_num(kickPlayers) )
         server_cmd( "kick #%d ^"The server is getting too full to allow spectators^"", get_user_userid(id) )
      }
      case PUNISH_AFK_KICK:
      {
         client_print(0, print_chat, "%s was kicked for being AFK longer than %d seconds", name, get_pcvar_num(maxAfkTime) )
         server_cmd("kick #%d ^"You were kicked for being AFK longer than %d seconds^"", get_user_userid(id), get_pcvar_num(maxAfkTime) )
      }
      case PUNISH_AFK_SPECTATOR:
      {
         client_print(0, print_chat, "%s was put to Spectator for being AFK longer than %d seconds", name, get_pcvar_num(maxAfkTime) )
         user_silentkill(id)
         fm_set_user_team( id, CS_TEAM_SPECTATOR )
      }
      case PUNISH_NOMODEL:
      {
         client_print(0, print_chat, "%s was kicked for joining a team and idling without choosing a model.", name )
         server_cmd("kick #%d ^"You were kicked for joining a team and idling without choosing a model.^"", get_user_userid(id) )
      }
   }
}


public checkImmunity(id)
{
   //if immunity is disabled
   if( get_pcvar_num(aImmunity)==0 )
      return true
   //admin has AFK_IMMUNITY flag
   else if( get_user_flags(id) & AFK_IMMUNITY )
      return false
   
   return true   
}


stock fm_set_user_team(id, CsTeams:team)
{
    set_pdata_int(id, OFFSET_TEAM, _:team)

    dllfunc(DLLFunc_ClientUserInfoChanged, id)

    static teaminfo[12], iMsgid_TeamInfo
    switch(team)
    {
        case CS_TEAM_UNASSIGNED:
         teaminfo="UNASSIGNED"
        case CS_TEAM_T:
         teaminfo="TERRORIST"
        case CS_TEAM_CT:
         teaminfo="CT"
        case CS_TEAM_SPECTATOR:
         teaminfo="SPECTATOR"
    }

    if(!iMsgid_TeamInfo)
        iMsgid_TeamInfo = get_user_msgid("TeamInfo")
   
    message_begin(MSG_ALL, iMsgid_TeamInfo)
    write_byte(id)
    write_string(teaminfo)
    message_end()
}


stock CsTeams:fm_get_user_team(id)
    return CsTeams:get_pdata_int(id, OFFSET_TEAM)

[/spoiler]
Аватара пользователя
omon
 
Сообщения: 0
Зарегистрирован: 04 дек 2010, 04:54
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

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

Сообщение vampir » 26 мар 2012, 15:05

прошу дать мне ключ от квартиры ...
ищи статью про мультиязычность, тут даже есть!
Прошу не тревожить на счет плагинов или дополнений в ZP. Я в инактиве!!!
Аватара пользователя
vampir
 
Сообщения: 625
Зарегистрирован: 02 авг 2010, 13:27
Откуда: Уфа
Благодарил (а): 138 раз.
Поблагодарили: 91 раз.
Языки программирования: Counter-Strike 1.6

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

Сообщение omon » 26 мар 2012, 15:07

vampir писал(а):прошу дать мне ключ от квартиры ...
ищи статью про мультиязычность, тут даже есть!

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

P.s. Зарание большое спасибо.
Аватара пользователя
omon
 
Сообщения: 0
Зарегистрирован: 04 дек 2010, 04:54
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

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

Сообщение vampir » 26 мар 2012, 17:05

примерный перевод можно узнать гуглетранслайте, а дальше все ясно.
Прошу не тревожить на счет плагинов или дополнений в ZP. Я в инактиве!!!
Аватара пользователя
vampir
 
Сообщения: 625
Зарегистрирован: 02 авг 2010, 13:27
Откуда: Уфа
Благодарил (а): 138 раз.
Поблагодарили: 91 раз.
Языки программирования: Counter-Strike 1.6

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

Сообщение 6ykBaeg » 26 мар 2012, 17:13

[pawn]
  1. client_print( 0, print_chat, "%s was kicked for being unnassigned longer than %d seconds", name, get_pcvar_num(unassignedTime) )

  2.  

  3.          server_cmd("kick #%d ^"You were kicked for being unassigned for more than %d seconds^"",

  4.  

  5.          client_print( 0, print_chat, "%s was kicked for spectating on a server with more than %d players", name, get_pcvar_num(kickPlayers) )

  6.  

  7.          server_cmd( "kick #%d ^"The server is getting too full to allow spectators^"", get_user_userid(id) )

  8.    

  9.          client_print(0, print_chat, "%s was kicked for being AFK longer than %d seconds", name, get_pcvar_num(maxAfkTime) )

  10.  

  11.          server_cmd("kick #%d ^"You were kicked for being AFK longer than %d seconds^"", get_user_userid(id), get_pcvar_num(maxAfkTime) )

  12.  

  13.          client_print(0, print_chat, "%s was put to Spectator for being AFK longer than %d seconds", name, get_pcvar_num(maxAfkTime) )

  14.        

  15.          client_print(0, print_chat, "%s was kicked for joining a team and idling without choosing a model.", name )

  16.  

  17.          server_cmd("kick #%d ^"You were kicked for joining a team and idling without choosing a model.^"", get_user_userid(id) )
[/pawn]
найди такие строки и переведи как душе тебе угодно



Цитата школьника из "Skype"
"а как мне айпи проверить своего айпи"
"Ты че сдох чтоли? ..н-ну, на, полечись. Дибил." (с) к/м фильм Ботан Джо
Аватара пользователя
6ykBaeg
 
Сообщения: 372
Зарегистрирован: 03 дек 2010, 14:56
Благодарил (а): 151 раз.
Поблагодарили: 41 раз.
Языки программирования: WarCraft III Frozen Throne

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

Сообщение Chuvi » 26 мар 2012, 20:15

[pawn]
  1.  

  2. client_print( 0, print_chat, "%s was kicked for being unnassigned longer than %d seconds", name, get_pcvar_num(unassignedTime) )

  3. client_print( 0, print_chat, "%s не определился с выбором комманды за %d секунд и был выдворен с сервера.", name, get_pcvar_num(unassignedTime) )

  4.  

  5. server_cmd("kick #%d ^"You were kicked for being unassigned for more than %d seconds^"",

  6. server_cmd("kick #%d ^"Вы были выдворены с сервера, так как не смогли выбрать комманду за %d секунд.^"",

  7.  

  8. client_print( 0, print_chat, "%s was kicked for spectating on a server with more than %d players", name, get_pcvar_num(kickPlayers) )

  9. client_print( 0, print_chat, "%s был выдворен с сервера.На сервере более %d игроков. Зрители запрещены. ", name, get_pcvar_num(kickPlayers) )

  10.  

  11. server_cmd( "kick #%d ^"The server is getting too full to allow spectators^"", get_user_userid(id) )

  12. server_cmd( "kick #%d ^"На сервере дофига игроков. Зрители идут в печь.^"", get_user_userid(id) )

  13.  

  14. client_print(0, print_chat, "%s was kicked for being AFK longer than %d seconds", name, get_pcvar_num(maxAfkTime) )

  15. client_print(0, print_chat, "%s куда-то ушёл от клавиатуры на %d секунд и был удалён с сервера.", name, get_pcvar_num(maxAfkTime) )

  16.  

  17. server_cmd("kick #%d ^"You were kicked for being AFK longer than %d seconds^"", get_user_userid(id), get_pcvar_num(maxAfkTime) )

  18. server_cmd("kick #%d ^"Вы не двигались более %d секунд. Мы от вас избавились.^"", get_user_userid(id), get_pcvar_num(maxAfkTime) )

  19.  

  20. client_print(0, print_chat, "%s was put to Spectator for being AFK longer than %d seconds", name, get_pcvar_num(maxAfkTime) )

  21. client_print(0, print_chat, "%s не двигался жизни более %d секунд и стал зрителем.", name, get_pcvar_num(maxAfkTime) )

  22.  

  23. client_print(0, print_chat, "%s was kicked for joining a team and idling without choosing a model.", name )

  24. client_print(0, print_chat, "%s выбрал комманду, но не осилил выбор модели. Нафиг его с сервера...", name )

  25.  

  26. server_cmd("kick #%d ^"You were kicked for joining a team and idling without choosing a model.^"", get_user_userid(id) )

  27. server_cmd("kick #%d ^"Вы не выбрали модель игрока. За это вас выкинули с сервера.^"", get_user_userid(id) )
[/pawn]

Как-то так.
))
Напоминаю про кодировку UTF-8.
____Исправлено____
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

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

Сообщение omon » 26 мар 2012, 21:17

Большое спасибо всем кто пытался помочь. Отдельное спасибо Chuvi
Последний раз редактировалось omon 26 мар 2012, 21:50, всего редактировалось 1 раз.
Аватара пользователя
omon
 
Сообщения: 0
Зарегистрирован: 04 дек 2010, 04:54
Благодарил (а): 10 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

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

Сообщение Chuvi » 26 мар 2012, 22:03

Если ты не пошевелишься через %d секунд, мы тебя %s. :-D

Добавлено спустя 13 минут 16 секунд:
А чем вам гугл не понравился? :)
/ / Плеер подключен, поэтому мы должны найти и ударить зрителя, если таковые имеются

:black_eye
/ / Администраторов с этим флагом не могут бить ногами

>:o
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.

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

Сообщение Rockee » 26 мар 2012, 22:57

Ох.. посмеялся =)
был выдворен с сервера

Зрители идут в печь
Аватара пользователя
Rockee
 
Сообщения: 108
Зарегистрирован: 08 янв 2012, 20:16
Откуда: Grodno
Забанен
Благодарил (а): 9 раз.
Поблагодарили: 46 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

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

Сообщение Chuvi » 27 мар 2012, 00:11

Да, проверьте на грамматические ошибки что-ли? :)
Хотя, я стараюсь писать более-менее грамотно, но иногда могу ошибиться.
Плагинами на заказ не занимаюсь.
Своих дел хватает.
Аватара пользователя
Chuvi
Модератор
 
Сообщения: 2253
Зарегистрирован: 24 ноя 2011, 08:03
Благодарил (а): 127 раз.
Поблагодарили: 562 раз.


Вернуться в Болтовня

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2