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

Резет Скоре + (Reset Score Plus)

Плагины для AMX Mod X, которые не удовлетворяют правилам оформления.

Модератор: Leonidddd

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

Резет Скоре + (Reset Score Plus)

Сообщение 9iky6 » 06 май 2012, 20:54

Авторы: maeStro (9iky6)
Версия: 1.0

Описание:
Данный плагин позволяет сбросить игровую статистику убийств/поражений (frags/kills), а так же убрать смысл рекконекта. Точнее рекконект теперь полностью заблокирован!

При рекконекте у игрока сохраняется игровая статистика (время настраивается кваром).
Использовать команду /rs теперь тоже можно только 1 раз за несколько раундов (настраивается кваром)

Используемые модули:
amxmodx, fun, cstrike, hamsandwich - для Counter-Strike
amxmodx, hamsandwich, fakemeta, fun - для Half-Life

Настройки:
Для Counter-Strike серверов:
rs_block_rounds (3) - На сколько раундов блокировать ввод /rs
rs_reconnect_time (20) - На какое время (секунды) сохранять счет при выходе из игры

Для Half-Life серверов:
amx_f_every_spowns (15) - количество возрождений, после которых можно ввести /rs
amx_reconnect_stime (20) - время, в течении которого сохраняется счет (при переподключении к серверу)


Список изменений:
v1.0 - Сделан простой /rs, с показом в чат игрока, который сбросил статистику.

v2.0 - Добавлено время для сохранения статистики при рекконекте, добавленно ограничение на ввод команды (против флудеров, которых прикалывает сбрасывать её).

v2.0.1 - Исправлена ошибка с блокированием команды для всех игроков! Теперь отсчет раундов идет для каждого игрока по отдельности.

v3.0 (1.0) - Плагин решено переименовать в "Reset Score Plus". Рекконект теперь полностью заблокирован!



Не утверждено. Отсутствуют файлы и его поддержка // Leonidddd
Последний раз редактировалось 9iky6 05 июн 2012, 22:24, всего редактировалось 16 раз(а).
Аватара пользователя
9iky6
 
Сообщения: 2174
Зарегистрирован: 30 янв 2012, 19:07
Откуда: Россия
Благодарил (а): 375 раз.
Поблагодарили: 707 раз.

Re: Резет Скоре (Reset Score)

Сообщение Proo.Noob » 11 май 2012, 11:27

koko76 писал(а):будет работать на half life?


Здесь используется cstrike модуль, следовательно: No.
Plugins4You - Skype: pyshcoder
Аватара пользователя
Proo.Noob
 
Сообщения: 299
Зарегистрирован: 21 янв 2012, 11:46
Благодарил (а): 63 раз.
Поблагодарили: 49 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
PHP
LUA - изучаю.
Java - изучаю.

Re: Резет Скоре (Reset Score)

Сообщение quit » 11 май 2012, 15:33

[pawn]
  1. #include <cstrike>
[/pawn]
->
[pawn]
  1. #include <fakemeta>
[/pawn]
и
[pawn]
  1. cs_set_user_deaths
[/pawn]
->
[pawn]
  1. set_user_deaths
[/pawn]
+
[pawn]
  1. stock set_user_deaths( const player, const deaths )

  2. {

  3.     const m_iDeaths = 377;

  4.     static msgidScoreInfo;

  5.    

  6.     if ( msgidScoreInfo || ( msgidScoreInfo = get_user_msgid( "ScoreInfo" ) ) )

  7.     {

  8.         set_pdata_int( player, m_iDeaths, deaths );

  9.        

  10.         message_begin( MSG_BROADCAST, msgidScoreInfo );

  11.         write_byte( player );

  12.         write_short( get_user_frags( player ) );

  13.         write_short( deaths );

  14.         write_short( 0 );

  15.         write_short( get_user_team( player ) );

  16.         message_end();

  17.     }

  18. }
[/pawn]
И по идеи должно завестись на hl
Аватара пользователя
quit
 
Сообщения: 294
Зарегистрирован: 28 янв 2011, 00:00
Благодарил (а): 11 раз.
Поблагодарили: 84 раз.
Языки программирования: Counter-Strike 1.6

Re: Резет Скоре (Reset Score)

Сообщение smurfavr » 11 май 2012, 15:51

Вы можете сделать это и загрузить его на плагин, который я не понимаю русский язык
Будете ли вы делать, что вы не понимаете русский






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: Резет Скоре (Reset Score)

Сообщение Proo.Noob » 11 май 2012, 16:05

Are speak russian, koko76?
Plugins4You - Skype: pyshcoder
Аватара пользователя
Proo.Noob
 
Сообщения: 299
Зарегистрирован: 21 янв 2012, 11:46
Благодарил (а): 63 раз.
Поблагодарили: 49 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
PHP
LUA - изучаю.
Java - изучаю.

Re: Резет Скоре (Reset Score)

Сообщение smurfavr » 11 май 2012, 16:16

Извините, ноИзвините, не говорят на русском






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: Резет Скоре (Reset Score)

Сообщение quit » 11 май 2012, 16:24

koko76,
[pawn]
  1. #include <amxmodx>

  2. #include <fun>

  3. #include <fakemeta>

  4.  

  5. new t_scoresave[33]             = {0,...}

  6. new ips[33][24]

  7. new sfrags[33]                  = {0,...}

  8. new sdeaths[33]                         = {0,...}

  9. new useretry[33]                        = {0,...}

  10.  

  11. new g_Round_counter[33]

  12.  

  13. new gi_Rs_Save

  14. new gi_Round_counter

  15.  

  16. public plugin_init()

  17. {

  18.         register_plugin("Reset Score", "2.0", "maeStro")

  19.        

  20.         register_clcmd("say /resetscore",       "reset_score")

  21.         register_clcmd("say /rs",               "reset_score")

  22.  

  23.         gi_Round_counter        = register_cvar("amx_f_every_rounds","3")

  24.         gi_Rs_Save              = register_cvar("amx_reconnect_stime", "20")

  25.  

  26.         register_event("HLTV", "RoundStart", "a", "1=0", "2=0")

  27.         register_event("TeamInfo","outspec","a")

  28.        

  29. }

  30.  

  31. public RoundStart()

  32. {

  33.    new iPlayer[32], iNum

  34.    get_players(iPlayer, iNum)

  35.  

  36.    for(new i; i < iNum; i++)

  37.     {

  38.     g_Round_counter[iPlayer[i]]++

  39.     }

  40. }

  41.  

  42. public reset_score(id)

  43. {

  44.         if(g_Round_counter[id] >= get_pcvar_num(gi_Round_counter))

  45.         {

  46.          set_user_frags(id, 0)

  47.          set_user_deaths(id, 0)

  48.  

  49.          new name[33]

  50.          get_user_name(id, name, 32)

  51.          client_print(0,print_chat,"[AMXX] Игрок %s сбросил счет!", name)

  52.          set_hudmessage(150, 150, 150, -1.0, 0.71, 2, 6.0, 3.0, 0.1, 1.5 )

  53.          show_hudmessage(id, "%s, Вы успешно сбросили счет :-)", name)

  54.          client_cmd(id, "spk fvox/bell")

  55.  

  56.          g_Round_counter[id] = 0

  57.         }

  58.         else

  59.         {

  60.         client_print(id,print_chat,"[AMXX] Ввод данной команды станет доступен через %d раунд(а)",get_pcvar_num(gi_Round_counter)-g_Round_counter[id])

  61.     }

  62. }

  63.  

  64. public client_connect(id)

  65. {

  66.         new ip[24]

  67.         get_user_ip(id,ip,23,0)

  68.  

  69.         new Float:nexTime = get_gametime()

  70.  

  71.         if (t_scoresave[id] <= nexTime)

  72.         {

  73.          sdeaths[id]=0

  74.          sfrags[id]=0

  75.          useretry[id]=0

  76.         }

  77. }

  78.  

  79. public outspec()

  80. {

  81.  new id=read_data(1)

  82.  if ((useretry[id]==1) && (is_user_connected(id)))

  83.  {

  84.   set_user_frags(id,sfrags[id])

  85.   set_user_deaths(id,sdeaths[id])

  86.   useretry[id]=0

  87.   sdeaths[id]=0

  88.   sfrags[id]=0

  89.  }

  90.  return PLUGIN_CONTINUE

  91. }

  92.  

  93. public client_disconnect(id)

  94. {

  95.         new maxstata = get_pcvar_num(gi_Rs_Save)

  96.  

  97.         new Float:theTime = get_gametime()

  98.         t_scoresave[id] = floatround(theTime) + maxstata

  99.         get_user_ip(id,ips[id],23,0)

  100.         {

  101.          sdeaths[id] = get_user_deaths(id)

  102.          sfrags[id] = get_user_frags(id)

  103.          useretry[id]=1

  104.         }

  105. }

  106. stock set_user_deaths( const player, const deaths )

  107. {

  108.     const m_iDeaths = 377;

  109.     static msgidScoreInfo;

  110.    

  111.     if ( msgidScoreInfo || ( msgidScoreInfo = get_user_msgid( "ScoreInfo" ) ) )

  112.     {

  113.         set_pdata_int( player, m_iDeaths, deaths );

  114.        

  115.         message_begin( MSG_BROADCAST, msgidScoreInfo );

  116.         write_byte( player );

  117.         write_short( get_user_frags( player ) );

  118.         write_short( deaths );

  119.         write_short( 0 );

  120.         write_short( get_user_team( player ) );

  121.         message_end();

  122.     }

  123. }
[/pawn]
amxx и sma в архиве Вы должны зарегистрироваться, чтобы видеть ссылки..
Тестируйте.
Аватара пользователя
quit
 
Сообщения: 294
Зарегистрирован: 28 янв 2011, 00:00
Благодарил (а): 11 раз.
Поблагодарили: 84 раз.
Языки программирования: Counter-Strike 1.6

Re: Резет Скоре (Reset Score)

Сообщение smurfavr » 11 май 2012, 16:55

Может быть сделано только 2 раза в один тур можно сбросить
Только администратор с флагом б можно сбросить более раз больше раз






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: Резет Скоре (Reset Score)

Сообщение quit » 11 май 2012, 17:11

koko76 писал(а):Может быть сделано только 2 раза в один тур можно сбросить
Только администратор с флагом б можно сбросить более раз больше раз

[pawn]
  1. #include <amxmodx>

  2. #include <fun>

  3. #include <fakemeta>

  4.  

  5. new t_scoresave[33]             = {0,...}

  6. new ips[33][24]

  7. new sfrags[33]                  = {0,...}

  8. new sdeaths[33]                         = {0,...}

  9. new useretry[33]                        = {0,...}

  10.  

  11. new g_Round_counter[33]

  12.  

  13. new gi_Rs_Save

  14. new gi_Round_counter

  15.  

  16. public plugin_init()

  17. {

  18.         register_plugin("Reset Score", "2.0", "maeStro")

  19.        

  20.         register_clcmd("say /resetscore",       "reset_score")

  21.         register_clcmd("say /rs",               "reset_score")

  22.  

  23.         gi_Round_counter        = register_cvar("amx_f_every_rounds","3")

  24.         gi_Rs_Save              = register_cvar("amx_reconnect_stime", "20")

  25.  

  26.         register_event("HLTV", "RoundStart", "a", "1=0", "2=0")

  27.         register_event("TeamInfo","outspec","a")

  28.        

  29. }

  30.  

  31. public RoundStart()

  32. {

  33.    new iPlayer[32], iNum

  34.    get_players(iPlayer, iNum)

  35.  

  36.    for(new i; i < iNum; i++)

  37.     {

  38.     g_Round_counter[iPlayer[i]]++

  39.     }

  40. }

  41.  

  42. public reset_score(id)

  43. {

  44.         if((g_Round_counter[id] >= get_pcvar_num(gi_Round_counter))||(get_user_flags(id)&ADMIN_LEVEL_B))

  45.         {

  46.          set_user_frags(id, 0)

  47.          set_user_deaths(id, 0)

  48.  

  49.          new name[33]

  50.          get_user_name(id, name, 32)

  51.          client_print(0,print_chat,"[AMXX] Игрок %s сбросил счет!", name)

  52.          set_hudmessage(150, 150, 150, -1.0, 0.71, 2, 6.0, 3.0, 0.1, 1.5 )

  53.          show_hudmessage(id, "%s, Вы успешно сбросили счет :-)", name)

  54.          client_cmd(id, "spk fvox/bell")

  55.  

  56.          g_Round_counter[id] = 0

  57.         }

  58.         else

  59.         {

  60.         client_print(id,print_chat,"[AMXX] Ввод данной команды станет доступен через %d раунд(а)",get_pcvar_num(gi_Round_counter)-g_Round_counter[id])

  61.     }

  62. }

  63.  

  64. public client_connect(id)

  65. {

  66.         new ip[24]

  67.         get_user_ip(id,ip,23,0)

  68.  

  69.         new Float:nexTime = get_gametime()

  70.  

  71.         if (t_scoresave[id] <= nexTime)

  72.         {

  73.          sdeaths[id]=0

  74.          sfrags[id]=0

  75.          useretry[id]=0

  76.         }

  77. }

  78.  

  79. public outspec()

  80. {

  81.  new id=read_data(1)

  82.  if ((useretry[id]==1) && (is_user_connected(id)))

  83.  {

  84.   set_user_frags(id,sfrags[id])

  85.   set_user_deaths(id,sdeaths[id])

  86.   useretry[id]=0

  87.   sdeaths[id]=0

  88.   sfrags[id]=0

  89.  }

  90.  return PLUGIN_CONTINUE

  91. }

  92.  

  93. public client_disconnect(id)

  94. {

  95.         new maxstata = get_pcvar_num(gi_Rs_Save)

  96.  

  97.         new Float:theTime = get_gametime()

  98.         t_scoresave[id] = floatround(theTime) + maxstata

  99.         get_user_ip(id,ips[id],23,0)

  100.         {

  101.          sdeaths[id] = get_user_deaths(id)

  102.          sfrags[id] = get_user_frags(id)

  103.          useretry[id]=1

  104.         }

  105. }

  106. stock set_user_deaths( const player, const deaths )

  107. {

  108.     const m_iDeaths = 377;

  109.     static msgidScoreInfo;

  110.    

  111.     if ( msgidScoreInfo || ( msgidScoreInfo = get_user_msgid( "ScoreInfo" ) ) )

  112.     {

  113.         set_pdata_int( player, m_iDeaths, deaths );

  114.        

  115.         message_begin( MSG_BROADCAST, msgidScoreInfo );

  116.         write_byte( player );

  117.         write_short( get_user_frags( player ) );

  118.         write_short( deaths );

  119.         write_short( 0 );

  120.         write_short( get_user_team( player ) );

  121.         message_end();

  122.     }

  123. }

  124.  
[/pawn]
sma,amxx
Вы должны зарегистрироваться, чтобы видеть ссылки.
Аватара пользователя
quit
 
Сообщения: 294
Зарегистрирован: 28 янв 2011, 00:00
Благодарил (а): 11 раз.
Поблагодарили: 84 раз.
Языки программирования: Counter-Strike 1.6

Re: Резет Скоре (Reset Score)

Сообщение smurfavr » 11 май 2012, 17:20

ошибка

L 05/11/2012 - 16:19:48: Invalid event (name "HLTV") (plugin "reset.amxx")
L 05/11/2012 - 16:19:48: [AMXX] Displaying debug trace (plugin "reset.amxx")
L 05/11/2012 - 16:19:48: [AMXX] Run time error 10: native error (native "register_event")
L 05/11/2012 - 16:19:48: [AMXX] [0] reset.sma::plugin_init (line 26)


Можно сделать так, чтобы администратор мог сбрасивать свой счет бесконечное кол-во раз, а не 1 раз за 3 раунда. грешка






Форум за HALF LIFE
http://smurfa.bulgarianforum.net/
Аватара пользователя
smurfavr
 
Сообщения: 88
Зарегистрирован: 02 авг 2011, 20:03
Откуда: България
Благодарил (а): 48 раз.
Поблагодарили: 2 раз.

Re: Резет Скоре (Reset Score)

Сообщение 9iky6 » 11 май 2012, 21:30

koko76, держи

[pawn]
  1.  

  2. #include <amxmodx>

  3. #include <fun>

  4. #include <fakemeta>

  5.  

  6. new t_scoresave[33]             = {0,...}

  7. new ips[33][24]

  8. new sfrags[33]                  = {0,...}

  9. new sdeaths[33]                         = {0,...}

  10. new useretry[33]                        = {0,...}

  11.  

  12. new g_Round_counter[33]

  13.  

  14. new gi_Rs_Save

  15. new gi_Round_counter

  16.  

  17. public plugin_init(){

  18.         register_plugin("Reset Score", "2.0", "maeStro")

  19.  

  20.         register_clcmd("say /resetscore",       "reset_score")

  21.         register_clcmd("say /rs",               "reset_score")

  22.  

  23.         gi_Round_counter        = register_cvar("amx_f_every_rounds","2")

  24.         gi_Rs_Save              = register_cvar("amx_reconnect_stime", "20")

  25.  

  26.         register_event("HLTV", "RoundStart", "a", "1=0", "2=0")

  27.         register_event("TeamInfo","outspec","a")

  28. }

  29.  

  30. public RoundStart(){

  31.    new iPlayer[32], iNum

  32.    get_players(iPlayer, iNum)

  33.  

  34.    for(new i; i < iNum; i++)

  35.     {

  36.     g_Round_counter[iPlayer[i]]++

  37.     }

  38. }

  39.  

  40. public reset_score(id){

  41.         if((g_Round_counter[id] >= get_pcvar_num(gi_Round_counter))||(!get_user_flags(id)&ADMIN_LEVEL_B))

  42.         {

  43.          set_user_frags(id, 0)

  44.          set_user_deaths(id, 0)

  45.  

  46.          new name[33]

  47.          get_user_name(id, name, 32)

  48.          client_print(0,print_chat,"[AMXX] Игрок %s сбросил счет!", name)

  49.          set_hudmessage(150, 150, 150, -1.0, 0.71, 2, 6.0, 3.0, 0.1, 1.5 )

  50.          show_hudmessage(id, "%s, Вы успешно сбросили счет :-)", name)

  51.          client_cmd(id, "spk fvox/bell")

  52.  

  53.          g_Round_counter[id] = 0

  54.         }else{

  55.         client_print(id,print_chat,"[AMXX] Ввод данной команды станет доступен через %d раунд(а)",get_pcvar_num(gi_Round_counter)-g_Round_counter[id])

  56.     }

  57. }

  58.  

  59. public client_connect(id){

  60.         new ip[24]

  61.         get_user_ip(id,ip,23,0)

  62.  

  63.         new Float:nexTime = get_gametime()

  64.  

  65.         if (t_scoresave[id] <= nexTime)

  66.         {

  67.          sdeaths[id]=0

  68.          sfrags[id]=0

  69.          useretry[id]=0

  70.         }

  71. }

  72.  

  73. public outspec(){

  74.  new id=read_data(1)

  75.  if ((useretry[id]==1) && (is_user_connected(id)))

  76.  {

  77.   set_user_frags(id,sfrags[id])

  78.   set_user_deaths(id,sdeaths[id])

  79.   useretry[id]=0

  80.   sdeaths[id]=0

  81.   sfrags[id]=0

  82.  }

  83.  return PLUGIN_CONTINUE

  84. }

  85.  

  86. public client_disconnect(id){

  87.  

  88.         new maxstata = get_pcvar_num(gi_Rs_Save)

  89.         new Float:theTime = get_gametime()

  90.         t_scoresave[id] = floatround(theTime) + maxstata

  91.         get_user_ip(id,ips[id],23,0)

  92.         {

  93.          sdeaths[id] = get_user_deaths(id)

  94.          sfrags[id] = get_user_frags(id)

  95.          useretry[id]=1

  96.         }

  97. }

  98.  

  99. stock set_user_deaths( const player, const deaths )

  100. {

  101.     const m_iDeaths = 377;

  102.     static msgidScoreInfo;

  103.     if ( msgidScoreInfo || ( msgidScoreInfo = get_user_msgid( "ScoreInfo" ) ) )

  104.     {

  105.         set_pdata_int( player, m_iDeaths, deaths );

  106.         message_begin( MSG_BROADCAST, msgidScoreInfo );

  107.         write_byte( player );

  108.         write_short( get_user_frags( player ) );

  109.         write_short( deaths );

  110.         write_short( 0 );

  111.         write_short( get_user_team( player ) );

  112.         message_end();

  113.     }

  114. }

  115.  
[/pawn]
Аватара пользователя
9iky6
 
Сообщения: 2174
Зарегистрирован: 30 янв 2012, 19:07
Откуда: Россия
Благодарил (а): 375 раз.
Поблагодарили: 707 раз.

Пред.След.

Вернуться в Неутвержденные плагины

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

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