Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 28 мар 2024, 23:43

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Transparency+noclip для игроков?
СообщениеДобавлено: 03 сен 2010, 20:14 
Не в сети
Зарегистрирован:
01 июн 2010, 03:10
Последнее посещение:
08 авг 2011, 01:24
Сообщения: 386
Вопросец есть...
Меня интересует как можно реализовать noclip между игроками. То есть, игрок не может коснуться другого игрока а проходит через него. Прозрачность я знаю как сделать но ведь это не делает тело игрока нематериальным, так?
Есть мысли по этому поводу?
Вообще я такое видел на kz_ сервере у oTkPoBeHuE, 217.25.221.31:27015.
Заранее спасибо.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Transparency+noclip для игроков?
СообщениеДобавлено: 03 сен 2010, 22:32 
Не в сети
Аватара пользователя
Зарегистрирован:
01 июн 2010, 23:25
Последнее посещение:
05 июл 2018, 16:02
Сообщения: 1035
Код:
#include <amxmodx>
#include <engine>
#include <fun>
#include <fakemeta>
#include <hamsandwich>

new const VERSION[] = "1.2"
new hologramas
new semiclip
const MAX_PLAYERS = 32

new g_iPlayers[MAX_PLAYERS], g_iNum, g_iPlayer, i
new const g_szAliveFlags[] = "a"
#define RefreshPlayersList()    get_players(g_iPlayers, g_iNum, g_szAliveFlags)

public plugin_init()


{   
    hologramas = register_cvar("hologram","0")
    semiclip = register_cvar("semiclip","0")
    register_plugin("Hologram", VERSION, "G.")
    register_forward(FM_AddToFullPack, "FM_client_AddToFullPack_Post", 1)
    RegisterHam(Ham_Player_PreThink, "player", "Ham_CBasePlayer_PreThink_Post", 1)
}





public FM_client_AddToFullPack_Post(es, e, iEnt, id, hostflags, player, pSet)
{
    if( player && id != iEnt && get_orig_retval() && is_user_alive(id) )
    {
        if( get_pcvar_num(semiclip) == 1)
        {
            set_es(es, ES_Solid, SOLID_NOT)
   }
   if( get_pcvar_num(hologramas) == 1 )
        {
            set_es(es, ES_RenderMode, kRenderTransAdd)
            set_es(es, ES_RenderAmt, 80)
            set_es(es, ES_RenderColor, 0, 0, 0)
            set_es(es, ES_RenderFx, kRenderFxDistort)
        }
        if(is_user_alive(id) && get_pcvar_num(semiclip) == 0 )
        {
            set_pev(id, pev_solid, SOLID_SLIDEBOX)
        }     

    }
   
}

public Ham_CBasePlayer_PreThink_Post(id)
{
    if( !is_user_alive(id)  )
    {
        return
    }
    if(get_pcvar_num(semiclip) == 1)
    {   
    RefreshPlayersList()

    for(i = 0; i<g_iNum; i++)
    {
        g_iPlayer = g_iPlayers[i]
        if( id != g_iPlayer )
        {
            set_pev(g_iPlayer, pev_solid, SOLID_NOT)
        }
    }
    }

}

public client_PostThink(id)
{
    if( !is_user_alive(id) )
    {
        return
    }
    if(get_pcvar_num(semiclip) == 1)
    {
    RefreshPlayersList()

    for(i = 0; i<g_iNum; i++)
    {
        g_iPlayer = g_iPlayers[i]
        if( g_iPlayer != id )
        {
            set_pev(g_iPlayer, pev_solid, SOLID_SLIDEBOX)
        }
    }
    }

}

_________________
Изображение


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Transparency+noclip для игроков?
СообщениеДобавлено: 03 сен 2010, 22:33 
Не в сети
Аватара пользователя
Зарегистрирован:
01 июн 2010, 23:25
Последнее посещение:
05 июл 2018, 16:02
Сообщения: 1035
http://forums.alliedmods.net/showthread.php?t=134874 Тут обсуждение

_________________
Изображение


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Transparency+noclip для игроков?
СообщениеДобавлено: 04 сен 2010, 17:33 
Не в сети
Зарегистрирован:
01 июн 2010, 03:10
Последнее посещение:
08 авг 2011, 01:24
Сообщения: 386
спасибо, работает :)


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Transparency+noclip для игроков?
СообщениеДобавлено: 19 ноя 2010, 11:21 
Не в сети
Зарегистрирован:
01 июн 2010, 03:10
Последнее посещение:
08 авг 2011, 01:24
Сообщения: 386
Еще вопрос в эту же тему: на моем climb сервере используется godmode, чтобы игроки не причиняли друг другу вреда, но это мешает на некоторых картах, где ущерб игроку должен причиняться опасными местами на карте. Например, на некоторых картах можно так считерить, а на некоторых можно упасть вниз и не умереть, где должен. Не всякий игрок юзает телепортирование и не всякий юзает команду kill. Итого, мне нужна дополнительная фича, которая заменила бы убогий godmode. У godmode есть лишь один существенный плюс: когда игрок задевает игрока нет крови. Вообще, можно ли отключить кровь на сервере стандартными средствами? У меня есть некий плагин, который уже выполняет функцию защиты игроков друг от друга, но есть кровь и нет исходников.
Помогите советом или кодом, пожалуйста!


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Transparency+noclip для игроков?
СообщениеДобавлено: 19 ноя 2010, 15:24 
Не в сети
Аватара пользователя
Зарегистрирован:
06 июн 2010, 16:53
Последнее посещение:
26 мар 2024, 14:36
Сообщения: 1143
Откуда: Владивосток
Вот пробуй, урон от игроков убран, кровь полностью отключена:
Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <hamsandwich>

#define PLUGIN "Test plugin"
#define VERSION "0.1"
#define AUTHOR "KORD_12.7"

new g_maxPlayers

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   
   RegisterHam(Ham_BloodColor, "player", "fw_BloodColorPre")
   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage")
   
   g_maxPlayers = get_maxplayers()
}

public fw_BloodColorPre(id)
{
   SetHamReturnInteger(-1)
   return HAM_SUPERCEDE
}

public fw_PlayerTakeDamage(victim, inflictor, agressor, Float: damage)
{   
   if(agressor != victim && 0 < agressor <= g_maxPlayers)
      return HAM_SUPERCEDE
      
   return HAM_IGNORED   
}

_________________
Изображение
Vi Veri Veniversum Vivus Vici


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Transparency+noclip для игроков?
СообщениеДобавлено: 20 ноя 2010, 01:09 
Не в сети
Зарегистрирован:
01 июн 2010, 03:10
Последнее посещение:
08 авг 2011, 01:24
Сообщения: 386
Спасибо, работает! Тебе впору релизить плагин =) Я тут соединил этот код воедино, во вложении.
Забыл еще добавить... godmode помогает защитить от смерти при поялении на респе, т.е. от телефрага. В данном случае телефраг происходит. Есть ли лекарство от этой болезни?


Вложения:
Комментарий к файлу: advanced_semiclip.sma
Скачать плагин или Скачать исходник [advanced_semiclip.sma - 2.25 КБ]
Скачиваний: 362
Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Transparency+noclip для игроков?
СообщениеДобавлено: 20 ноя 2010, 08:26 
Не в сети
Аватара пользователя
Зарегистрирован:
06 июн 2010, 16:53
Последнее посещение:
26 мар 2024, 14:36
Сообщения: 1143
Откуда: Владивосток
Вот код с фиксом от телефрага:
Код:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new hologram
new semiclip
new nodamage
const MAX_PLAYERS = 32

new g_iPlayers[MAX_PLAYERS], g_iNum, g_iPlayer, i, g_maxPlayers
new const g_szAliveFlags[] = "a"
#define RefreshPlayersList()    get_players(g_iPlayers, g_iNum, g_szAliveFlags)

public plugin_init() {
   hologram = register_cvar("as_hologram","1")
   semiclip = register_cvar("as_semiclip","1")
   nodamage = register_cvar("as_nodamage","1")
   g_maxPlayers = get_maxplayers()
   
   register_plugin("Advanced Semiclip", "1.0", "KORD_12.7 & Flipper_SPb")
   register_forward(FM_AddToFullPack, "FM_client_AddToFullPack_Post", 1)
   RegisterHam(Ham_Player_PreThink, "player", "Ham_CBasePlayer_PreThink_Post", 1)
   RegisterHam(Ham_BloodColor, "player", "fw_BloodColorPre")
   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage")
}

public FM_client_AddToFullPack_Post(es, e, iEnt, id, hostflags, player, pSet) {
   if( player && id != iEnt && get_orig_retval() && is_user_alive(id) ) {
      if( get_pcvar_num(semiclip) == 1)
         set_es(es, ES_Solid, SOLID_NOT)
      
      if( get_pcvar_num(hologram) == 1 ) {
         set_es(es, ES_RenderMode, kRenderTransAlpha)
         set_es(es, ES_RenderAmt, 127)
         set_es(es, ES_RenderColor, 0, 0, 0)
         set_es(es, ES_RenderFx, kRenderFxNone)
      }
      
      if(is_user_alive(id) && get_pcvar_num(semiclip) == 0 )
         set_pev(id, pev_solid, SOLID_SLIDEBOX)
   }
}

public Ham_CBasePlayer_PreThink_Post(id) {
   if( !is_user_alive(id)  )
      return

   if(get_pcvar_num(semiclip) == 1) {
      RefreshPlayersList()
      for(i = 0; i<g_iNum; i++) {
         g_iPlayer = g_iPlayers[i]
         if( id != g_iPlayer )
            set_pev(g_iPlayer, pev_solid, SOLID_NOT)
      }
   }
}

public client_PostThink(id) {
   if( !is_user_alive(id) )
      return
   
   if(get_pcvar_num(semiclip) == 1) {
      RefreshPlayersList()
      for(i = 0; i<g_iNum; i++) {
         g_iPlayer = g_iPlayers[i]
         if( id != g_iPlayer )
            set_pev(g_iPlayer, pev_solid, SOLID_SLIDEBOX)
      }
   }
}

public fw_BloodColorPre(id) {
   if(get_pcvar_num(nodamage) == 1) {
      SetHamReturnInteger(-1)
      return HAM_SUPERCEDE
   }
   
   return HAM_IGNORED
}

public fw_PlayerTakeDamage(victim, inflictor, agressor, Float: damage, damagebits) {
   if(get_pcvar_num(nodamage) == 1) {
      if((damagebits == DMG_GENERIC && !agressor && damage == 300.0) || (agressor != victim && 0 < agressor <= g_maxPlayers))
         return HAM_SUPERCEDE
   }
   
   return HAM_IGNORED
}

_________________
Изображение
Vi Veri Veniversum Vivus Vici


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Transparency+noclip для игроков?
СообщениеДобавлено: 20 ноя 2010, 14:55 
Не в сети
Зарегистрирован:
01 июн 2010, 03:10
Последнее посещение:
08 авг 2011, 01:24
Сообщения: 386
Релиз! Спасибо еще раз!
KORD_12.7, пожалуйста, добавь в основной раздел плагинов :)


Вложения:
Скачать плагин или Скачать исходник [advanced_semiclip.sma - 2.34 КБ]
Скачиваний: 387
Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Transparency+noclip для игроков?
СообщениеДобавлено: 21 ноя 2010, 09:32 
Не в сети
Аватара пользователя
Зарегистрирован:
06 июн 2010, 16:53
Последнее посещение:
26 мар 2024, 14:36
Сообщения: 1143
Откуда: Владивосток
Добавил :)

_________________
Изображение
Vi Veri Veniversum Vivus Vici


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB