AMX MOD X
Четверг, 25.04.2024, 19:37:04



Приветствую Вас Гость | RSS
[ Главная ] [ kz_records сообщения в чат при коннекте - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » kz_records сообщения в чат при коннекте
kz_records сообщения в чат при коннекте
LeXiKoNДата: Среда, 03.06.2009, 17:23:02 | Сообщение # 1
Майор
Группа: Пользователи
Сообщений: 85
Репутация: 1
Статус: Не в сети
есть плагин kz_records! Он дает возможность показа рекордов на джамп картах для разных стран!
В чате вводишь команду и показывается hud сообщение! Вопрос в другом...
хотелось бы осуществить такую штуку, чтоб при коннекте в чат выводилось что-то подобное
Quote
World Record:
Russian Record:

Добавил
Code

public client_putinserver( id ) {

   set_task(5.0, "fnInformation", id);

}

а вот что писать в public fnInformation( id ) не знаю :)
надо сделать чтобы она работала точно так же как
Code
public hookSay( plr )
{
  static msg[512], cmd[32], map[32];
  read_args( cmd, 31 );
  remove_quotes( cmd );
   
  if( !cmd[0] || strlen( cmd ) != 3 )
  {
   return PLUGIN_CONTINUE;
  }
   
  for( new i ; i < MAX ; i++ )
  {
   for( new j ; j < SAY ; j++ )
   {
    if( !equali( cmd, g_SayCommands[i][j], 3 ) )
    {
     continue;
    }
     
    static author[EXT][32], kztime[8], extension[EXT][8], len, founds;
     
    if( cmd[4] )
    {
     founds = get_record_data( i, cmd[4], author, kztime, extension );
     len = format( msg, 511, "%s Record of %s:", g_CountryAdjective[i], cmd[4] );
    }
    else
    {
     get_mapname( map, 31 );
     founds = get_record_data( i, map, author, kztime, extension );
     len = format( msg, 511, "%s Record of %s:", g_CountryAdjective[i], map );
    }
     
    if( author[0][0] )
    {
     for( new x ; x < founds ; x++ )
     {
      if( !author[x][0] )
      {
       break;
      }
       
      if( extension[x][0] )
      {
       len += format( msg[len], 511 - len, "^n   [%s] %s (%i:%02i) ", extension[x], author[x], ( kztime[x] / 60 ), ( kztime[x] % 60 ) );
      }
      else
      {
       len += format( msg[len], 511 - len, "^n   %s (%i:%02i) ", author[x], ( kztime[x] / 60 ), ( kztime[x] % 60 ) );
      }
     }
    }
    else
    {
     len += format( msg[len], 511 - len, "^n   N/A (**:**)" );
    }
     
    set_hudmessage( g_iColors[0], g_iColors[1], g_iColors[2], g_fCoords[0], g_fCoords[1], _, _, g_fShowtime, _, _, -1 );
    show_hudmessage( plr, msg );

    return PLUGIN_HANDLED;
   }
  }
   
  return PLUGIN_CONTINUE;
}

пробовал
Code
public fnInformation( id ) {

  static map[32];
  static author[EXT][32], kztime[8], extension[EXT][8];
  get_mapname( map, 31 );
  get_record_data( i, map, author, kztime, extension );
  ColorChat(id, RED, "^x04[eQ] ^x03World Record on %s: ^x01%s", map, g_CountryAdjective);
  ColorChat(id, BLUE, "^x04[eQ] ^x03Russian Record on %s: ^x01%s", map, g_CountryAdjective);
}

не компилится :)))) и вообще параметра i как бы нет blush
Прикрепления: kz_records_new.sma (8.2 Kb)
 
defaultNick8433Дата: Среда, 03.06.2009, 19:25:03 | Сообщение # 2
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
У меня такое предложение,рекорды ты можешь записывать в текстовой файл
Code
#include <amxmodx>

public plugin_init()
{
register_plugin("l","l","l")
register_dictionary("kz_records.txt")
}
public client_putinserver(id)
{
set_hudmessage(0, 128, 255, -1.0, 0.75, 0, 6.0, 6.0, 0.5, 0.15, 937)
show_hudmessage(0,"%L ",LANG_PLAYER)
}

В kz_records.txt,должен лежать в папке cstrike/addons/data/lang
Внёмдолжно быть напиано
[en]
твой предложение,вписываешь игрока рекордом его //пример:player kUk finish map kz_block for 10 second :D
[ru]
Mтвоё предложение на русском языке,еслиесть руссификатор,конечно
Т.е вот,что должно быть в тхт файле
[en]

[ru]

:)


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001


Сообщение отредактировал defaultNick8433 - Среда, 03.06.2009, 19:34:52
 
LeXiKoNДата: Среда, 03.06.2009, 19:29:15 | Сообщение # 3
Майор
Группа: Пользователи
Сообщений: 85
Репутация: 1
Статус: Не в сети
спасибо я знаю как это сделать ;) это было следующим шагом!! а пока надо сделать функцию public fnInformation( id )
 
defaultNick8433Дата: Среда, 03.06.2009, 19:38:49 | Сообщение # 4
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Code
public client_putinserver(id)
{
static map[32];
  static author[EXT][32], kztime[8], extension[EXT][8];
  get_mapname( map, 31 );
  get_record_data( i, map, author, kztime, extension );
  ColorChat(id, RED, "^x04[eQ] ^x03World Record on %s: ^x01%s", map, g_CountryAdjective);
  ColorChat(id, BLUE, "^x04[eQ] ^x03Russian Record on %s: ^x01%s", map, g_CountryAdjective);
}

Code
public client_putinserver( id ) {  

    set_task(5.0, "fnInformation", id);  

}

Quote
set_task(5.0, "fnInformation", id); //удаляешь

Вставляешь за место этого
Code
static map[32];
  static author[EXT][32], kztime[8], extension[EXT][8];
  get_mapname( map, 31 );
  get_record_data( i, map, author, kztime, extension );
  ColorChat(id, RED, "^x04[eQ] ^x03World Record on %s: ^x01%s", map, g_CountryAdjective);
  ColorChat(id, BLUE, "^x04[eQ] ^x03Russian Record on %s: ^x01%s", map, g_CountryAdjective)


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
LeXiKoNДата: Пятница, 05.06.2009, 00:11:28 | Сообщение # 5
Майор
Группа: Пользователи
Сообщений: 85
Репутация: 1
Статус: Не в сети
дело в том что само
Quote
static map[32];
static author[EXT][32], kztime[8], extension[EXT][8];
get_mapname( map, 31 );
get_record_data( i, map, author, kztime, extension );
ColorChat(id, RED, "^x04[eQ] ^x03World Record on %s: ^x01%s", map, g_CountryAdjective);
ColorChat(id, BLUE, "^x04[eQ] ^x03Russian Record on %s: ^x01%s", map, g_CountryAdjective)

не верно составлено! омг!
Code
set_task(5.0, "fnInformation", id); //удаляешь

это вообще смех! мне это нужно между прочим

Добавлено (2009-06-05, 0:11 Am)
---------------------------------------------
вроде простая задача :) что никто не поможет ? blush

 
defaultNick8433Дата: Пятница, 05.06.2009, 00:34:18 | Сообщение # 6
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Во-первых <colorchat>,<httpdl> неизвестные инклуды,а во-вторых у меня получилось скомпилировать плагин,проверь как работает
Прикрепления: kz_records.amxx (12.9 Kb)


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
LeXiKoNДата: Пятница, 05.06.2009, 00:48:11 | Сообщение # 7
Майор
Группа: Пользователи
Сообщений: 85
Репутация: 1
Статус: Не в сети
пфф я все понимаю ты тут шаришь и все такое :) но хотелось бы исходник который тебе удалось откомпилировать :)
 
defaultNick8433Дата: Пятница, 05.06.2009, 00:50:57 | Сообщение # 8
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Впринципе,ничего сложного не было
Code
#include <amxmodx>

#pragma semicolon 1

#define PLUGIN "KZ Records"
#define VERSION "1.6b"
#define AUTHOR "SchlumPF"

#define ADMIN_FLAG ADMIN_KICK

#define MAX 12
#define SAY 2
#define EXT 6

new g_CountryAdjective[MAX][] =
{
  "World",
  "German",
  "French",
  "Estonian",
  "Russian",
  "Slovakian",
  "Norwegian",
  "Swedish",
  "Danish",
  "Bulgarien",
  " Romanian",
  "Brazilian"
};

new g_SayCommands[MAX][SAY][] =
{
  { "/xj", "/wr" },
  { "/cg", "/de" },
  { "/fr", "" },
  { "/ee", "" },
  { "/ru", "" },
  { "/sk", "" },
  { "/no", "" },
  { "/se", "" },
  { "/dk", "" },
  { "/bg", "" },
  { "/ro", "" },
  { "/br", "" }
};

new g_DownloadLink[MAX][] =
{
  "http://xtreme-jumps.eu/demos.txt",
  "http://climbers-germany.de/demos.txt",
  "http://kzfr.net/demos.txt",
  "http://kreedz.pri.ee/demos.txt",
  "http://kzru.net/records.txt",
  "http://kzsk.sk/demos/demos.txt",
  "http://kz-scandinavia.com/demos_no.txt",
  "http://kz-scandinavia.com/demos_se.txt",
  "http://kz-scandinavia.com/demos_dk.txt",
  "http://bulgarian-kreedz.net/demos.txt",
  "http://romanian-jumpers.com/demos.txt",
  "http://bra-records.vndv.com/demos.txt"
};

new g_RecordsFileSuffix[MAX][] =
{
  "xj",
  "cg",
  "fr",
  "ee",
  "ru",
  "sk",
  "no",
  "se",
  "dk",
  "bg",
  "ro",
  "br"
};

new g_Skip[][] =
{
  "Xtreme-Jumps.eu ",
  "Climbers-Germany Record Script v2.0",
  "FOR KZFR BY REMYY",
  "http://kreedz.pri.ee #KZ.ee",
  "KZRU.NET",
  "",
  "",
  "",
  "",
  "",
  "",
  "Romanian-Jumpers.com & #KZRO @ Quakenet",
  "Brazilian Records"
};

new g_flRecordsFile[MAX][256];

new g_iColors[3] = { 255, 0, 255 };
new Float:g_fShowtime = 5.0;
new Float:g_fCoords[2] = { 0.01, 0.2 };

public plugin_init( )
{
  register_plugin( PLUGIN, VERSION, AUTHOR );
  register_clcmd( "say", "hookSay" );
   
  register_concmd( "kz_records_coords", "cmdChangeShowTime"  );
  register_concmd( "kz_records_coords", "cmdChangeCoords"  );
  register_concmd( "kz_records_color", "cmdChangeColor" );
}

public plugin_cfg( )
{
  new temp[256];
  get_localinfo( "amxx_datadir", temp, 255 );
  format( temp, 255, "%s/kz_records", temp );
   
  if( !dir_exists( temp ) )
  {
   mkdir( temp );
  }
   
  for( new i ; i < MAX ; i++ )
  {
   format( g_flRecordsFile[i], 255, "%s/demos_%s.txt", temp, g_RecordsFileSuffix[i] );
  }
   
  format( temp, 255, "%s/last_update.ini", temp );
   
  if( !file_exists( temp ) )
  {
   fnUpdate( );
   return PLUGIN_CONTINUE;
  }
   
  new year, month, day;
  date( year, month, day );
   
  new f = fopen( temp, "rt" );
  fgets( f, temp, 255 );
  fclose( f );
   
  if( str_to_num( temp[0] ) > year || str_to_num( temp[5] ) > month || str_to_num( temp[8] ) > day )
  {
   fnUpdate( );
   return PLUGIN_CONTINUE;
  }
   
  return PLUGIN_CONTINUE;
}

public client_putinserver( id ) {

   set_task(5.0, "fnInformation", id);

}

public fnInformation( id ) {
          
  client_print(id,print_chat,"World Record on %s: %s",  g_CountryAdjective);
  client_print(id,print_chat,"Russian Record on %s: %s", g_CountryAdjective);
}

public hookSay( plr )
{
  static msg[512], cmd[32], map[32];
  read_args( cmd, 31 );
  remove_quotes( cmd );
   
  if( !cmd[0] || strlen( cmd ) != 3 )
  {
   return PLUGIN_CONTINUE;
  }
   
  for( new i ; i < MAX ; i++ )
  {
   for( new j ; j < SAY ; j++ )
   {
    if( !equali( cmd, g_SayCommands[i][j], 3 ) )
    {
     continue;
    }
     
    static author[EXT][32], kztime[8], extension[EXT][8], len, founds;
     
    if( cmd[4] )
    {
     founds = get_record_data( i, cmd[4], author, kztime, extension );
     len = format( msg, 511, "%s Record of %s:", g_CountryAdjective[i], cmd[4] );
    }
    else
    {
     get_mapname( map, 31 );
     founds = get_record_data( i, map, author, kztime, extension );
     len = format( msg, 511, "%s Record of %s:", g_CountryAdjective[i], map );
    }
     
    if( author[0][0] )
    {
     for( new x ; x < founds ; x++ )
     {
      if( !author[x][0] )
      {
       break;
      }
       
      if( extension[x][0] )
      {
       len += format( msg[len], 511 - len, "^n   [%s] %s (%i:%02i) ", extension[x], author[x], ( kztime[x] / 60 ), ( kztime[x] % 60 ) );
      }
      else
      {
       len += format( msg[len], 511 - len, "^n   %s (%i:%02i) ", author[x], ( kztime[x] / 60 ), ( kztime[x] % 60 ) );
      }
     }
    }
    else
    {
     len += format( msg[len], 511 - len, "^n   N/A (**:**)" );
    }
     
    set_hudmessage( g_iColors[0], g_iColors[1], g_iColors[2], g_fCoords[0], g_fCoords[1], _, _, g_fShowtime, _, _, -1 );
    show_hudmessage( plr, msg );

    return PLUGIN_HANDLED;
   }
  }
   
  return PLUGIN_CONTINUE;
}

public get_record_data( i, map[], author[][32], kztime[8], extension[][8] )
{
  static data[256], _map[64], _kztime[8], f;
  new founds, len;
   
  f = fopen( g_flRecordsFile[i], "rt" );
  while( !feof( f ) )
  {
   fgets( f, data, 255 );
    
   if( equali( data, g_Skip[i] ) )
   {
    continue;
   }
    
   if( !equali( data, map, strlen( map ) ) )
   {
    continue;
   }

   len += 1 + copyc( _map, 63, data[len], ' ' );
   len += 1 + copyc( _kztime, 7, data[len], ' ' );
   kztime[founds] = str_to_num( _kztime );
   copy( author[founds], 32, data[len] );
   replace( author[founds], 31, "^n", "" );
    
   if( containi( _map, "[" ) && containi( _map, "]" ) )
   {
    for( new i ; i < strlen( _map ) ; i++ )
    {
     if( !equali( _map[i], "[", 1  ) )
     {
      continue;
     }
      
     len = i + 1;
      
     copyc( extension[founds], 8, _map[len], ']' );
      
     break;
    }
   }
    
   founds++;
  }
  fclose( f );
   
  return founds;
}

public fnUpdate()
{
  for( new i ; i < MAX ; i++ )
  {
   server_cmd( g_DownloadLink[i], g_flRecordsFile[i] );
  }
   
  new temp[256];
  get_localinfo( "amxx_datadir", temp, 255 );
  format( temp, 255, "%s/kz_records/last_update.ini", temp );
   
  new year, month, day;
  date( year, month, day );
   
  if( file_exists( temp ) )
  {
   delete_file( temp );
  }
   
  new f = fopen( temp, "wt" );
  format( temp, 255, "%04ix%02ix%02i", year, month, day );
  fputs( f, temp );
  fclose( f );
}

public cmdChangeShowTime( plr )
{
  if( !( get_user_flags( plr ) & ADMIN_FLAG ) )
  {
   client_print( plr, print_console, "* You have no access to this command" );
   return PLUGIN_HANDLED;
  }
   
  if( read_argc( ) != 2 )
  {
   client_print( plr, print_console, "Usage: kz_godmode_showtime <time>" );
   return PLUGIN_HANDLED;
  }
   
  new showtime[32];
  read_argv( 1, showtime, 31 );
   
  g_fShowtime = floatclamp( str_to_float( showtime ), 0.0, 1000000.0 );
   
  client_print( plr, print_console, "kz_godmode_showtime changed to ^"%f^"", g_fShowtime );
   
  return PLUGIN_HANDLED;
}

public cmdChangeCoords( plr )
{  
  if( !( get_user_flags( plr ) & ADMIN_FLAG ) )
  {
   client_print( plr, print_console, "* You have no access to this command" );
   return PLUGIN_HANDLED;
  }
   
  if( read_argc( ) != 3 )
  {
   client_print( plr, print_console, "Usage: kz_records_coords <x> <y>" );
   return PLUGIN_HANDLED;
  }
   
  new x_str[6], y_str[6];
  read_argv( 1, x_str, 5 );
  read_argv( 2, y_str, 5 );
   
  g_fCoords[0] = floatclamp( str_to_float( x_str ), -1.0, 1.0 );
  g_fCoords[1] = floatclamp( str_to_float( y_str ), -1.0, 1.0 );
   
  client_print( plr, print_console, "kz_records_coords changed to ^"%f %f^"", g_fCoords[0], g_fCoords[1] );
   
  return PLUGIN_HANDLED;
}

public cmdChangeColor( plr )
{
  if( !( get_user_flags( plr ) & ADMIN_FLAG ) )
  {
   client_print( plr, print_console, "* You have no access to this command" );
   return PLUGIN_HANDLED;
  }
   
  if( read_argc( ) != 4 )
  {
   client_print( plr, print_console, "Usage: kz_records_color <red> <green> <blue>" );
   return PLUGIN_HANDLED;
  }
    
  new r_str[4], g_str[4], b_str[4];
  read_argv( 1, r_str, 3 );
  read_argv( 2, g_str, 3 );
  read_argv( 3, b_str, 3 );
   
  g_iColors[0] = clamp( str_to_num( r_str ), 0, 255 );
  g_iColors[1] = clamp( str_to_num( g_str ), 0, 255 );
  g_iColors[2] = clamp( str_to_num( b_str ), 0, 255 );
   
  client_print( plr, print_console, "kz_records_color changed to ^"%i %i %i^"", g_iColors[0], g_iColors[1], g_iColors[2] );  
   
  return PLUGIN_HANDLED;
}

Кое какие параметры просто изменить и всё


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
LeXiKoNДата: Пятница, 05.06.2009, 00:52:55 | Сообщение # 9
Майор
Группа: Пользователи
Сообщений: 85
Репутация: 1
Статус: Не в сети
а тут ничего не пропущено?
Code
client_print(id,print_chat,"World Record on %s: %s",  g_CountryAdjective);

вроде как должна быть еще переменная blink не даром же стоят два %s
 
defaultNick8433Дата: Пятница, 05.06.2009, 01:00:42 | Сообщение # 10
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Code
client_print(id,print_chat,"World Record on %s: %s",  g_CountryAdjective);

да,убрать над %s :) .Забыл убрать,когда удалял mapname массив


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
LeXiKoNДата: Пятница, 05.06.2009, 08:38:45 | Сообщение # 11
Майор
Группа: Пользователи
Сообщений: 85
Репутация: 1
Статус: Не в сети
дело в том что его не надо удалять :) мне надо сообщать какой рекорд именно на этой карте! то есть я зашел и в чате показало рекорд этой карты!
 
defaultNick8433Дата: Пятница, 05.06.2009, 10:41:53 | Сообщение # 12
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
Тогда так:
Code
{new mapname[32]
get_mapname(mapname,sizeof mapname-1)
client_print(id,print_chat,"World Record on %s: %s",  g_CountryAdjective,mapname);  
client_print(id,print_chat,"Russian Record on %s: %s", g_CountryAdjective,mapname);
}


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » kz_records сообщения в чат при коннекте
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024