AMX MOD X
Четверг, 28.03.2024, 23:44:19



Приветствую Вас Гость | RSS
[ Главная ] [ CS: Postal2-fun stats(T 1) - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

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

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Плагины » Готовые плагины » CS: Postal2-fun stats(T 1) (аналог стандартного плагина CS Misc. Stats)
CS: Postal2-fun stats(T 1)
BruteДата: Четверг, 14.08.2008, 16:21:15 | Сообщение # 1
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
CS: Postal2-fun stats(T 1.1) - это аналог стандартного плагина CS Misc. Stats(miscstats), включает в себя:

75 звуков для различных событий:

*5 анонсов вы победили(рандом)
*5 анонсов вы проиграли(рандом)
*5 анонсов Т набирают очки(рандом)
*5 анонсов СТ набирают очки(рандом)
*3 анонса для Т манипуляции с бомбой
*3 анонса для СТ манипуляции с бомбой
*11 анонсов Хедшот(рандом)
*7 анонсов убийство ножом(рандом)
*5 анонсов ТК(рандом)
*10 анонсов очки убийцы(рандом)
*счёт от 1 до 10 для бомбы+озвучка осталось 30 секунд и одна минута
*1 анонс суицида
*анонсирование сколько времени осталось до конца раунда.

Все звуки на русском языке

30+ цветных сообщений, в том числе и дублкилл, мултикилл, рампаже, хедшот и т.д.
есть поддержка FFA режима

cvar's:
"postal2_enabled", "1" - плагин 1/0=вкл/выкл
"postal2_ffa", "0" - режим free for all 1/0=вкл/выкл
"postal2_mb", "1" - режим блокирования стандартных сообщений 1/0=вкл/выкл
Настраивать плагин, точно так-же как и CS Misc. Stats через админ-меню.

Скачать плагин можно из файлового архива:
CS Postal2-fun stats(T 1.1).zip

Для работы плагина так-же требуется скачать звуковой пакет.
postal2_sound(full 75).zip
(Тем кто уже скачал Demo, качать звуки заново не нужно!)

Изменения:

Quote

версия T 1.1
+добавлен встроенный Messages blocker(спасибо Ven!)
+добавлена новая cvar: postal2_mb
+исправлен баг с 32мя игроками(спасибо DaTa!)
+добавлена функция анонсирования сколько времени осталось до конца раунда(анонсирует 5, 3, 1 минуты и 30 секунд)
-удалена функция TEAM SCORE MSG(объединены в одно текстовые сообщение, сообщения TEAM SCORE и TEAM WIN)
+почти все выводимые сообщения поменяли своё местоположение(оптимизация под разрешение экрана 800х600)
+небольшая оптимизация кода
+добавлена поддержка плагина Random C4 Timer
+улучшена поддержка плагина CT Bomb Stealer [v0.2beta]
+исправлены баги с надписями о манипуляциях с бомбой
+ещё куча всяких исправлений


Сообщение отредактировал Brute - Суббота, 16.08.2008, 13:48:16
 
ahaДата: Четверг, 14.08.2008, 17:29:45 | Сообщение # 2
Генерал-майор
Группа: Пользователи
Сообщений: 370
Репутация: 6
Статус: Не в сети
Спасибо Brute за плугин :) , очень прикольный !,
и хорошо что сделал режим для FFA , полезная вещь .
 
BruteДата: Четверг, 14.08.2008, 17:52:52 | Сообщение # 3
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Quote (aha)
Спасибо Brute за плугин :) , очень прикольный !,

Плагин конечно хороший, но хотелось бы услышать пожеланий: что добавить, что поменять, что исправить, может надписи переместить, может ещё что. Я ведь совсем в КС не играю =).
 
DaTaДата: Четверг, 14.08.2008, 20:46:31 | Сообщение # 4
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
Code
#include <amxmisc>

не нужно, так как не используется в коде
---
неправильная запись инициализации массива
Code
new KillerScore[MAX_PLAYERS] = 0
new HeadShot[MAX_PLAYERS] = 0
//...
public plugin_precache()
{
  if(info_enabled())
  {
   new sound[128] = 0

нужно, например
Code
new KillerScore[MAX_PLAYERS] = {0, ...}

но и это не обязательно, так как при инициализации переменных в pawn, они всегда инициализируются нулевыми, :
Code
new KillerScore[MAX_PLAYERS]
new HeadShot[MAX_PLAYERS]
//...
public plugin_precache()
{
  if(info_enabled())
  {
   new sound[128]

---
Quote
new KillerScore[MAX_PLAYERS]
new HeadShot[MAX_PLAYERS]

возможные индексы 0-31
но здесь
Code
public client_death(killer, victim, wpnindex, hitplace, TK)
{
  if(info_enabled())
  {
   KillerScore[victim] = 0[u]//если игроков на сервере 32 - выход за границы массива[/u]
   HeadShot[victim] = 0[u]//если игроков на сервере 32 - выход за границы массива[/u]
   if(!TK && killer != victim)
   {
    KillerScore[killer]++[u]//если игроков на сервере 32 - выход за границы массива[/u]

    if(wpnindex == CSW_KNIFE)
     eventKnifeKill(killer, victim)
    if(hitplace == HIT_HEAD)
    {
     eventHeadShot(killer, victim)
     HeadShot[killer]++[u]//если игроков на сервере 32 - выход за границы массива[/u]
    }
    eventKillerScore(killer, KillerScore[killer], HeadShot[killer])
    eventDoubleKill(killer)
   }
   else if(TK && killer != victim && !info_ffa())
   {
    KillerScore[killer] = 0[u]//если игроков на сервере 32 - выход за границы массива[/u]
    HeadShot[killer] = 0[u]//если игроков на сервере 32 - выход за границы массива[/u]
    eventTK(killer, victim)
    eventDoubleKill(killer)
   }
   else if(TK && killer != victim && info_ffa())
   {
    KillerScore[killer]++[u]//если игроков на сервере 32 - выход за границы массива[/u]

    if(wpnindex == CSW_KNIFE)
     eventKnifeKill(killer, victim)
    if(hitplace == HIT_HEAD)
    {
     eventHeadShot(killer, victim)
     HeadShot[killer]++[u]//если игроков на сервере 32 - выход за границы массива[/u]
    }
    eventKillerScore(killer, KillerScore[killer], HeadShot[killer])[u]//если игроков на сервере 32 - выход за границы массива[/u][u]//если игроков на сервере 32 - выход за границы массива[/u]
    eventDoubleKill(killer)
   }
   else if(killer == victim)
   {
    eventSelfKill(victim)
   }
  }
}

Code
public client_putinserver(id)
{
  if(info_enabled())
  {
   KillerScore[id] = 0[u]//если игроков на сервере 32 - выход за границы массива[/u]
   HeadShot[id] = 0[u]//если игроков на сервере 32 - выход за границы массива[/u]
  }
}

я бы посоветовал тебе не мучатся и объявить KillerScore, HeadShot как
Quote
new KillerScore[MAX_PLAYERS+1] = 0
new HeadShot[MAX_PLAYERS+1] = 0

а так же исправить места, где это не учтено
Code
public eventRestartRound()
{
  if(info_enabled())
  {
   remove_task(777)
   RoundNumber = 0
   TeamScore[1] = 0
   TeamScore[2] = 0
   for(new i=0; i<MAX_PLAYERS; i++)
   {
    KillerScore[i] = 0
    HeadShot[i] = 0
   }
  }
}

например на
Code
public eventRestartRound()
{
  if(info_enabled())
  {
   remove_task(777)
   RoundNumber = 0
   TeamScore[1] = 0
   TeamScore[2] = 0
   for(new i=1; i<=MAX_PLAYERS; i++)
   {
    KillerScore[i] = 0
    HeadShot[i] = 0
   }
  }
}

и вообще сдесь можно добыть кол-во игроков на сервере при инициализации плагина и использовать для уменьшения кол-ва циклов
Code
new g_maxplayers
public plugin_init()
{
    //...
    g_maxplayers =get_maxplayers()
}
Code

public eventRestartRound()
{
  if(info_enabled())
  {
   remove_task(777)
   RoundNumber = 0
   TeamScore[1] = 0
   TeamScore[2] = 0
   for(new i=1; i<=g_maxplayers; i++)
   {
    KillerScore[i] = 0
    HeadShot[i] = 0
   }
  }
}

но можно еще оптимальнее поступить: ))
Quote
/* Sets string with given character. */
native setc(src[],len,ch);

тогда можно отказаться от g_maxplayers и поступить так:
Code

public eventRestartRound()
{
  if(info_enabled())
  {
   remove_task(777)
   RoundNumber = 0
   TeamScore[1] = 0
   TeamScore[2] = 0
    
   setc(KillerScore,sizeof(KillerScore),0)
   setc(HeadShot,sizeof(HeadShot),0)
  }
}

---
функции public p2Message, public p2sound, public eventKnifeKill, public eventKillerScore, public eventDoubleKill, public eventTK, public eventHeadShot, public eventSelfKill можно не объявлять public, так как их не будут вызывать из-вне плагина

для наглядности:

Code
public p2Message(id, id2, MSG_ID, ToWhom, param, param2)
{

Code
p2Message(id, id2, MSG_ID, ToWhom, param, param2)
{

---
Code
public eventSelfKill(victim)
{
  if(!BlockEvents)
  {
   new SoundNumber = 0
   if(SuicideSound)
    p2sound(SoundListSelfKill[SoundNumber], ALLUS, victim)
   if(SuicideMsg)
    p2Message(victim, 0, 23, ALLUS, 0, 0)
  }
}

непонятно, зачем тебе нужна переменная SoundNumber, мог бы и закомментировать ее(на будущее продвижение плагина) и использовать SoundListSelfKill[0]
---
можно оптимизировать функцию
Code
public eventTimerC4()
{
  TimerC4--
  if(TimerC4 == 30 && !BlockEvents)
  {
   if(C4TimerSound)
    p2sound("Announcer30sec", ALLUS, 0)
  }
  else if(TimerC4 == 60 && !BlockEvents)
  {
   if(C4TimerSound)
    p2sound("Announcer1min", ALLUS, 0)
  }
  else if(TimerC4 < 11 && TimerC4 > 0 && !BlockEvents)
  {
   if(C4TimerSound)
    p2sound(SoundListEvents[TimerC4], ALLUS, 0)
   if(C4TimerMsg)
    p2Message(0, 0, TimerC4, ALLUS, 0, 0)
  }
}

например в
Code
public eventTimerC4()
{
  TimerC4--
   
  if(  BlockEvents  )
   return
   
  if(0 < TimerC4 < 11)
  {
   if(C4TimerSound)
    p2sound(SoundListEvents[TimerC4], ALLUS, 0)
    
   if(C4TimerMsg)
    p2Message(0, 0, TimerC4, ALLUS, 0, 0)
    
   return
  }
   
  if(!C4TimerSound)
   return
   
  switch(  TimerC4  )
  {
   case 30: p2sound("Announcer30sec", ALLUS, 0)
   case 60: p2sound("Announcer1min", ALLUS, 0)
  }
}

---
для удобства мог бы использовать макроконстанты, это уменьшит шанс ошибиться
Code
  switch(MSG_ID)
   {
    case 57:
    {
     set_hudmessage(128, 128, 128, -1.0, -1.0, 2, 0.5, 5.0, 0.1, 0.2, MSG_ID+HC-7)
     show_hudmessage(players[i], "%L", players[i], "P2_MSG_EXPLODE", name)
    }
    case 56:
    {
     set_hudmessage(128, 128, 128, -1.0, -1.0, 2, 0.5, 5.0, 0.1, 0.2, MSG_ID+HC-6)
     show_hudmessage(players[i], "%L", players[i], "P2_MSG_FAILEDDEFUSE", name)
    }

например в
Code

#define MSG_EXPLODE 57
#define MSG_FAILEDDEFUS 56
//#define ...
//...
public p2Message(id, id2, MSG_ID, ToWhom, param, param2)
{
  //...
  for(new i=0; i<pnum; i++)
  {
   switch(MSG_ID)
   {
    case MSG_EXPLODE:
    {
     set_hudmessage(128, 128, 128, -1.0, -1.0, 2, 0.5, 5.0, 0.1, 0.2, MSG_ID+HC-7)
     show_hudmessage(players[i], "%L", players[i], "P2_MSG_EXPLODE", name)
    }
    case MSG_FAILEDDEFUS:
    {
     set_hudmessage(128, 128, 128, -1.0, -1.0, 2, 0.5, 5.0, 0.1, 0.2, MSG_ID+HC-6)
     show_hudmessage(players[i], "%L", players[i], "P2_MSG_FAILEDDEFUSE", name)
    }
    //case ...

и вызывать например
Code
public bomb_explode(planter, defuser)
{
  if(info_enabled() && BombExplodeMsg && !BlockEvents)
  {
   BlockWinEvent = true
   if(defuser)
           p2Message(defuser, 0, MSG_FAILEDDEFUS, ALLUS, 0, 0)//<-
   else if(planter)
           p2Message(planter, 0, MSG_EXPLODE, ALLUS, 0, 0)//<-
  }
}

---
еще можно объявить SoundListLost[MAX_MESS_LOST][], SoundListWon[MAX_MESS_WON][] и другие не изменяемые данные как const(new const SoundListLost[MAX_MESS_LOST][]=...), но толку никакого, просто для наглядности
---

удачи в развитии скила скриптера

 
BruteДата: Четверг, 14.08.2008, 21:27:16 | Сообщение # 5
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Quote (DaTa)
удачи в развитии скила скриптера

На что ты намекаешь? %) Ты ещё не одного своего плагина не выложил, искать ошибки в чужих плагинах проще всего, а вот что-то придумать и написать-это потяжелее.

Quote (DaTa)
я бы посоветовал тебе не мучатся и объявить KillerScore, HeadShot как
Quote

new KillerScore[MAX_PLAYERS+1] = 0
new HeadShot[MAX_PLAYERS+1] = 0


Я просто забыл что убрал из #define MAX_PLAYERS 32 плюс один(#define MAX_PLAYERS 32+1)
Можно было просто написать, что неверный размер массива у таких-таких-то, а не копипастить пол плагина. А насчёт оптимизации, конечно это хороший тон... Но нужна ли эта оптимизация обладателям двуядерных процессоров? :D
Quote (DaTa)
непонятно, зачем тебе нужна переменная SoundNumber, мог бы и закомментировать ее(на будущее продвижение плагина) и использовать SoundListSelfKill[0]

Потому-что планируется пополнение этого массива-думаю пихнуть туда ещё 2 звука
Quote (DaTa)
для удобства мог бы использовать макроконстанты, это уменьшит шанс ошибиться

Ты сам себе противоречишь, то оптимизация, то удобство, ты уж выбери, что-нибудь одно.

Спасибо, что сообщил о ошибкЕ. Оптимизации учится у тебя я точно не буду! Спасибо ещё раз.

 
DaTaДата: Пятница, 15.08.2008, 00:55:44 | Сообщение # 6
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
Quote (Brute)
На что ты намекаешь? %)

на то, что век живи - век учись
Quote (Brute)
Ты ещё не одного своего плагина не выложил,

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

ошибки искать конечно в чужих плагинах намного проще, из-за другой природы их происхождения, так что пользуйся, пока тебе помогают
Quote (Brute)
Ты сам себе противоречишь, то оптимизация, то удобство, ты уж выбери, что-нибудь одно.

то, что я тебе советовал, не изменит скомпилированый вариант плагина
ну например:
Code
#define MAAAAAAAACROOOOOOS (5+24-3)*3
call_func(MAAAAAAAACROOOOOOS)

после подстановки препроцессором будет иметь вид
Code

call_func((5+24-3)*3)

а компилятор на этапе компиляции посчитает значение и функция вызвется как
Code

call_func(78)

Quote (Brute)
Оптимизации учится у тебя я точно не буду!

не нравится мой вариант, сделай свой, лучше, но в том месте оптимизация уместна.
 
BruteДата: Суббота, 16.08.2008, 13:50:36 | Сообщение # 7
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Level Up! ;)
CS: Postal2-fun stats(T 1.1)
Изменения:
Quote

версия T 1.1
+добавлен встроенный Messages blocker(спасибо Ven!)
+добавлена новая cvar: postal2_mb
+исправлен баг с 32мя игроками(спасибо DaTa!)
+добавлена функция анонсирования сколько времени осталось до конца раунда(анонсирует 5, 3, 1 минуты и 30 секунд)
-удалена функция TEAM SCORE MSG(объединены в одно текстовые сообщение, сообщения TEAM SCORE и TEAM WIN)
+почти все выводимые сообщения поменяли своё местоположение(оптимизация под разрешение экрана 800х600)
+небольшая оптимизация кода
+добавлена поддержка плагина Random C4 Timer
+улучшена поддержка плагина CT Bomb Stealer [v0.2beta]
+исправлены баги с надписями о манипуляциях с бомбой
+ещё куча всяких исправлений
 
DaTaДата: Суббота, 16.08.2008, 15:16:34 | Сообщение # 8
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
я наверно конкретно достал, но... crazy
---
Code
  for(new i=0;i<0; i++)
   {
    format(sound, 127, "%s/%s.wav", SOUNDDIR, SoundListSelfKill[i])
    precache_sound(sound)
   }

этот код никогда не выполнится, так как сразу после i=0 идет проверка условия i<0, так как 0<0 == false, цикл сразу пропускается
Подсказка: sizeof SoundListSelfKill == 1
---
константы
Code
#define MSG_ROUND 0
#define MSG_NUM_01 1
#define MSG_NUM_02 2
#define MSG_NUM_03 3
#define MSG_NUM_04 4
#define MSG_NUM_05 5
#define MSG_NUM_06 6
#define MSG_NUM_07 7
#define MSG_NUM_08 8
#define MSG_NUM_09 9
#define MSG_NUM_10 10
#define MSG_THE_END 11
#define MSG_HEADSHOT 12
#define MSG_KNIFEKILL 13
#define MSG_TK 14
#define MSG_SUICIDE 15
#define MSG_DOUBLEKILL 16
#define MSG_MULTIKILL 17
#define MSG_ULTRAKILL 18
#define MSG_KILLINGSPREE 19
#define MSG_RAMPAGE 20
#define MSG_UNSTOPPABLE 21
#define MSG_MONSTERKILL 22
#define MSG_GODLIKE 23
#define MSG_WON 24
#define MSG_LOST 25
#define MSG_PLANTEDBOMB 26
#define MSG_DROPPEDBOMB 27
#define MSG_PICKEDBOMB 28
#define MSG_PLANTINGBOMB 29
#define MSG_DEFUSINGBOMB 30
#define MSG_DEFUSEDBOMB 31
#define MSG_FAILEDDEFUSE 32
#define MSG_EXPLODE 33

для удобства можно объявить как
Code
enum
{
  MSG_ROUND,
  MSG_NUM_01,
  MSG_NUM_02,
  MSG_NUM_03,
  MSG_NUM_04,
  MSG_NUM_05,
  MSG_NUM_06,
  MSG_NUM_07,
  MSG_NUM_08,
  MSG_N UM_09,
  MSG_NUM_10,
  MSG_THE_END,
  MSG_HEADSHOT,
  MSG_KNIFEKILL,
  MSG_TK,
  MSG_SUICIDE,
  MSG_DOUBLEKILL,
  MSG_MULTIKILL,
  MSG_ULTRA KILL,
  MSG_KILLINGSPREE,
  MSG_RAMPAGE,
  MSG_UNSTOPPABLE,
  MSG_MONSTERKILL,
  MSG_GODLIKE,
  MSG_WON,
  MSG_LOST,
  MSG_PLANTEDBOMB,
  MS G_DROPPEDBOMB,
  MSG_PICKEDBOMB,
  MSG_PLANTINGBOMB,
  MSG_DEFUSINGBOMB,
  MSG_DEFUSEDBOMB,
  MSG_FAILEDDEFUSE,
  MSG_EXPLODE
}

ничего от это-го не изменится, просто не надо писать "#define MACROS цифру++" каждый раз, меньше шанс ошибиться
---
почитай детальнее http://amxmodx.ucoz.ru/forum/4-2061-13427-16-1218732391 если есть желание оптимизировать больше
 
BruteДата: Суббота, 16.08.2008, 15:34:00 | Сообщение # 9
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Quote (DaTa)
ничего от это-го не изменится, просто не надо писать "#define MACROS цифру++" каждый раз, меньше шанс ошибиться

Мне и так всё понятно как и тебе...
Quote (DaTa)
Code
for(new i=0;i<0; i++)
{
format(sound, 127, "%s/%s.wav", SOUNDDIR, SoundListSelfKill[i])
precache_sound(sound)
}

этот код никогда не выполнится, так как сразу после i=0 идет проверка условия i<0, так как 0<0 == false, цикл сразу пропускается
Подсказка: sizeof SoundListSelfKill == 1


Вот мля... я опять забыл про эту хрень, спасибо.
 
SONYДата: Суббота, 16.08.2008, 19:42:09 | Сообщение # 10
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 0
Статус: Не в сети
щас проверю работоспособность после демо версии....

у меня вопрос что значит FFA режим

 
BruteДата: Суббота, 16.08.2008, 20:10:49 | Сообщение # 11
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Quote (SONY)
у меня вопрос что значит FFA режим

Капитальное рубилово, когда брат идёт на брата, сыт идёт на отца, что-то навроде гражданской войны :D

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

 
SONYДата: Суббота, 16.08.2008, 20:56:20 | Сообщение # 12
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 0
Статус: Не в сети
кстати есть большой косяк )))

щас тестили не дему версию а вот эту кароче косяк......

ну так звуки работают....
но когда убиваешь кого то ну противника говорят что твоя тима класс и всё всех выкидывает с сервера....

в демо версии такого не было кароче косяк гдето

Добавлено (2008-08-16, 8:56 Pm)
---------------------------------------------
точнее вот мы один на один тестили я убиваю сразу нас кикает и говится как бы в догонку твоя тима класс...

на этом всё заканчивается вообщем )

 
BruteДата: Суббота, 16.08.2008, 21:36:52 | Сообщение # 13
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Quote (SONY)
кстати есть большой косяк )))

щас тестили не дему версию а вот эту кароче косяк......

ну так звуки работают....
но когда убиваешь кого то ну противника говорят что твоя тима класс и всё всех выкидывает с сервера....

в демо версии такого не было кароче косяк гдето

Добавлено (2008-08-16, 8:56 Pm)
---------------------------------------------
точнее вот мы один на один тестили я убиваю сразу нас кикает и говится как бы в догонку твоя тима класс...

на этом всё заканчивается вообщем )


а что в консоле пишет?
 
SONYДата: Суббота, 16.08.2008, 22:30:47 | Сообщение # 14
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 0
Статус: Не в сети
в консоле у всех игроков пишет

Code

Host_Error: UserMsg: Not Present on Client 23
 
BruteДата: Воскресенье, 17.08.2008, 08:28:14 | Сообщение # 15
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Хз, что такое, откройте plugins.ini найдите p2_fun_stats.amxx и добавьте debug, чтобы было так:

Code
p2_fun_stats.amxx debug
 
AMX Mod X Форум » Плагины » Готовые плагины » CS: Postal2-fun stats(T 1) (аналог стандартного плагина CS Misc. Stats)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024