AMX MOD X
Вторник, 10.03.2026, 22:48:19



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

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

  • Страница 1 из 1
  • 1
Модератор форума: AlMod, slogic  
"Сквозные" моджели после фризтайма
RomaaaДата: Четверг, 20.11.2008, 09:57:30 | Сообщение # 1
Лейтенант
Группа: Скриптеры
Сообщений: 58
Репутация: 1
Статус: Не в сети
добрый день, возможно есть такой плагин. но хз по каким критериям его искать в поиске... вообщем суть такова, что обычно в начале раунда после фризтайма некоторые товарищи начинают тупить или как-то через Ж бегать заслояня собой путь другим... это очень не приятно, когда в начале раунда нужно быстро занять позицию, а получается теряешь ценное время...
вопрос: есть ли плагин. который в начале раунда после фризтайма делает модели игроков как-бы "сквозными", что бы через них можно было безпрепятсвенно пробегать?
из условий:
1. действует это только в бай_зоне в начале каждого раунда
2. время действия таких "сквозняков", допустим, секунд 5-10 после фризтайма

спасибо

Сообщение отредактировал Romaaa - Четверг, 20.11.2008, 16:13:26
 
HatebreederДата: Четверг, 20.11.2008, 11:32:48 | Сообщение # 2
Подполковник
Группа: Пользователи
Сообщений: 120
Репутация: 0
Статус: Не в сети
В biohazard/zombie plague что-то такое есть зажимаешь 'e' и проходишь сквозь игроков.
 
gOOdRichДата: Четверг, 20.11.2008, 11:49:53 | Сообщение # 3
Генерал-майор
Группа: Пользователи
Сообщений: 251
Репутация: 2
Статус: Не в сети
Поддержу вопрос, вещь крайне полезная!!! :)
 
DaTaДата: Четверг, 20.11.2008, 12:27:00 | Сообщение # 4
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
Quote (Romaaa)
1. действует это только в бай_зоне в начале каждого раунда
2. время действия таких "сквозняков", допустим, секунд 5-10 после фризтайма

Интересная идея, уверен, кто-то займется ею)
 
ArgusДата: Четверг, 20.11.2008, 12:53:06 | Сообщение # 5
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Репутация: 8
Статус: Не в сети
интересная вещь.
я щас искал подобное, что-то ничего не нашел.
предлагаю потрошить biohazard/zombie plague упомянутый выше.


Правила форума
Поиск плагинов
Последние сообщения форума
 
HatebreederДата: Четверг, 20.11.2008, 13:02:27 | Сообщение # 6
Подполковник
Группа: Пользователи
Сообщений: 120
Репутация: 0
Статус: Не в сети
скорее всего, все таки
zombie plague mod
 
SVДата: Четверг, 20.11.2008, 16:09:01 | Сообщение # 7
Подполковник
Группа: Пользователи
Сообщений: 106
Репутация: 1
Статус: Не в сети
Quote (Hatebreeder)
скорее всего, все таки zombie plague mod

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




Сообщение отредактировал SV - Четверг, 20.11.2008, 16:09:14
 
CHyCMyMpNkДата: Четверг, 20.11.2008, 17:57:12 | Сообщение # 8
Полковник
Группа: Пользователи
Сообщений: 180
Репутация: 8
Статус: Не в сети
Quote (Hatebreeder)
скорее всего, все таки
zombie plague mod

В плагуе такого нет , в био есть .
Для плагуе я пробовал переделывать , вроде получилось ... но с ошибкой http://forums.alliedmods.net/showpost.php?p=711036&postcount=1 . Буду благодарен если кто поможет её исправить :
Code
[AMXX] Displaying debug trace (plugin "zp_antiblock.amxx")
[AMXX] Run time error 10: native error (native "zp_get_user_zombie")
[AMXX]    [0] zp_antiblock.sma::fwd_touch (line 40)

Вот линия :
Code
if(!is_user_alive(blocker) || !is_user_alive(id) && !zp_get_user_zombie(id) || !get_pcvar_num(cvar_antiblock))

Вот плаг :
Code
#include <amxmodx>
#include <fakemeta>
#include <zombieplague>
     
enum CsTeams
{
      CS_TEAM_UNASSIGNED    = 0,
      CS_TEAM_T         = 1,
      CS_TEAM_CT         = 2,
      CS_TEAM_SPECTATOR     = 3
}
     
#define OFFSET_TEAM 114
#define cs_get_user_team(%1) CsTeams:get_pdata_int(%1, OFFSET_TEAM)
     
new cvar_antiblock, Float:g_lasttimetouched[33] // lol
     
public plugin_init()
{
      register_plugin("anti block", "0.1", "cheap_suit")
      register_forward(FM_Touch, "fwd_touch")
      register_forward(FM_PlayerPreThink, "fwd_playerprethink")
      cvar_antiblock = register_cvar("zp_antiblock", "1")
}
     
public fwd_playerprethink(id)
{
      if(!is_user_alive(id))
          return FMRES_IGNORED
     
      static solid; solid = pev(id, pev_solid)
      if(solid == SOLID_NOT && (get_gametime() - g_lasttimetouched[id]) > 0.34)
          set_pev(id, pev_solid, SOLID_BBOX)
     
      return FMRES_IGNORED
}
     
public fwd_touch(blocker, id)
{
      if(!is_user_alive(blocker) || !is_user_alive(id) && !zp_get_user_zombie(id) || !get_pcvar_num(cvar_antiblock))
          return PLUGIN_CONTINUE
     
      static button[2]
      button[0] = pev(id, pev_button), button[1] = pev(blocker, pev_button)
     
      if(button[0] & IN_USE || button[1] & IN_USE)
      {
          static CsTeams:team[2]
          team[0] = cs_get_user_team(id), team[1] = cs_get_user_team(blocker)
     
          if(team[0] != team[1])
              return FMRES_IGNORED
     
          set_pev(blocker, pev_solid, SOLID_NOT), set_pev(id, pev_solid, SOLID_NOT)
     
          static Float:gametime; gametime = get_gametime()
          g_lasttimetouched[id] = gametime, g_lasttimetouched[blocker] = gametime
      }
      return FMRES_IGNORED
}

А вот собственно для био :

Code
#include <amxmodx>
#include <fakemeta>
#include <xs>
#tryinclude <biohazard>

#if !defined _biohazard_included
          #assert Biohazard functions file required!
#endif

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

#define OFFSET_TEAM 114
#define cs_get_user_team(%1) CsTeams:get_pdata_int(%1, OFFSET_TEAM)

new cvar_antiblock, Float:g_lasttimetouched[33] // lol
public plugin_init()
{
   register_plugin("anti block", "0.1", "cheap_suit")
   is_biomod_active() ? plugin_init2() : pause("ad")
}

public plugin_init2()
{
   register_forward(FM_Touch, "fwd_touch")
   register_forward(FM_PlayerPreThink, "fwd_playerprethink")
   cvar_antiblock = register_cvar("bh_antiblock", "1")
}

public fwd_playerprethink(id)
{
   if(!is_user_alive(id))
    return FMRES_IGNORED
     
   static solid; solid = pev(id, pev_solid)
   if(solid == SOLID_NOT && (get_gametime() - g_lasttimetouched[id]) > 0.34)
    set_pev(id, pev_solid, SOLID_BBOX)
     
   return FMRES_IGNORED
}

public fwd_touch(blocker, id)
{
   if(!is_user_alive(blocker) || !is_user_alive(id) || !get_pcvar_num(cvar_antiblock))
    return FMRES_IGNORED
     
   static button[2]
   button[0] = pev(id, pev_button), button[1] = pev(blocker, pev_button)
     
   if(button[0] & IN_USE || button[1] & IN_USE)
   {
    static CsTeams:team[2]
    team[0] = cs_get_user_team(id), team[1] = cs_get_user_team(blocker)
     
    if(team[0] != team[1])
     return FMRES_IGNORED
      
    set_pev(blocker, pev_solid, SOLID_NOT), set_pev(id, pev_solid, SOLID_NOT)
      
    static Float:gametime; gametime = get_gametime()
    g_lasttimetouched[id] = gametime, g_lasttimetouched[blocker] = gametime
   }
   return FMRES_IGNORED
}
   

По идеи если убрать эти строчки , то можно при нажатии "Е" проходить сквозь игроков и в обычном CS'e .
Code
#tryinclude <biohazard>

#if !defined _biohazard_included
          #assert Biohazard functions file required!
#endif
Code
    is_biomod_active() ? plugin_init2() : pause("ad")


вечное спасибо r013x'y : )

Сообщение отредактировал CHyCMyMpNk - Четверг, 20.11.2008, 17:58:41
 
gOOdRichДата: Вторник, 09.12.2008, 11:39:10 | Сообщение # 9
Генерал-майор
Группа: Пользователи
Сообщений: 251
Репутация: 2
Статус: Не в сети
Теперь каждый раз сталкиваясь с коллегами на старте, вспоминаю об этом плагине! crazy
Может кто все же взялся?
 
slogicДата: Вторник, 09.12.2008, 12:35:04 | Сообщение # 10
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (CHyCMyMpNk)
if(!is_user_alive(blocker) || !is_user_alive(id) && !zp_get_user_zombie(id) || !get_pcvar_num(cvar_antiblock))

неочевидное условие. && приоритетнее чем ||, т.о. твое условие вылядит так:

if(!is_user_alive(blocker) || (!is_user_alive(id) && !zp_get_user_zombie(id)) || !get_pcvar_num(cvar_antiblock))

Скорее всего по моей логике вместо && надо поставить ||.

А ошибка навреное из-за того, что ты не подкчлюил какой-от inc файл, в котором объявлена функция zp_get_user_zombie() или она сама дала сбой (в этом случае надо смотреть что внутри этой функции и из-за чего может быть ошибка).

 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2026