AMX MOD X
Среда, 24.04.2024, 16:16:11



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » дотронутся газа\гранаты газовой (функ)
дотронутся газа\гранаты газовой
FreeKILLДата: Пятница, 22.01.2010, 16:14:16 | Сообщение # 1
Подполковник
Группа: Пользователи
Сообщений: 143
Репутация: 4
Статус: Не в сети
хотел найти функцию касания человека к газовой грене. пробовал так:
Code

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#define PLUGIN "gas_damage"
#define VERSION "0.0.1"
#define AUTHOR "~Free*.*KILL~"

public plugin_init() {
  register_plugin(PLUGIN, VERSION, AUTHOR)
   
  //register_forward(FM_Touch, "fwdTouch")
  RegisterHam(Ham_Touch, "gasgrenade", "fwdTouch")
}
public fwdTouch(grenade, id) {
  if(!is_user_alive(id) || !is_user_connected(id))
   return FMRES_IGNORED
    
    
   
  client_print(0,print_chat," touch 0")
  client_print(id,print_chat," touch id")
   
   
  set_task(0.1, "damage_gas", id)
  return FMRES_HANDLED
   
   
   
}

public damage_gas(id) {
  client_print(0,print_chat,"take_damage")
  new hp
  hp = get_user_health(id)
  if(hp == 1)
   return PLUGIN_HANDLED
   
  set_user_health(id, hp - 1)
  return PLUGIN_HANDLED
   
}

пробовал эдак:

Code
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>

#define PLUGIN "gas_damage"
#define VERSION "0.0.1"
#define AUTHOR "~Free*.*KILL~"

#define GAS_CLASSNAME "gasgrenade"

public plugin_init() {
  register_plugin(PLUGIN, VERSION, AUTHOR)
   
  register_forward(FM_Touch, "fwdTouch")
}
public fwdTouch(ent, id) {
  if(!is_user_alive(id) || !is_user_connected(id))
   return FMRES_IGNORED
    
    
  if(!pev_valid(ent)) {
   return FMRES_IGNORED
  }
   
  static classname[33]
  pev(ent, pev_classname, classname, charsmax(classname))
  if(!equal(classname, GAS_CLASSNAME))
   return FMRES_IGNORED
  set_task(0.1, "damage_gas", id)
  return FMRES_HANDLED
   
   
   
}

public damage_gas(id) {
  new hp
  hp = get_user_health(id)
  if(hp == 1)
   return PLUGIN_HANDLED
   
  set_user_health(id, hp - 1)
  return PLUGIN_HANDLED
   
}

и все неработает. точно здаю что можно поймать эту функцию примерно так:
Code
public bool:is_grenade(ent)
{
  if (!pev_valid(ent)) return false
  static classname[32]
  pev(ent, pev_classname, classname, 31)
  return (equal(classname, "grenade")) ? true : false
}

в данном случае здесь проверяется граната этоили нет, а если сделать так, то будет проверятся это граната he или нет
Code
public bool:is_grenade(ent)
{
  if (!pev_valid(ent)) return false
  static classname[32]
  pev(ent, pev_classname, classname, 31)
  return (equal(classname, "grenade") && get_pdata_int(ent, 114) == 25) ? true : false
}

дак вот как сделать проверку на гранату газовую и на проверку на сам дым?
заранее спс
 
defaultNick8433Дата: Пятница, 22.01.2010, 16:19:36 | Сообщение # 2
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
if(!is_user_alive(id))-это уже не живой.

Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
FreeKILLДата: Пятница, 22.01.2010, 16:30:46 | Сообщение # 3
Подполковник
Группа: Пользователи
Сообщений: 143
Репутация: 4
Статус: Не в сети
Quote (FreeKILL)
if(!is_user_alive(id))-это уже не живой.

ну да, дак а что нетак? там после if(!is_user_alive(id)) стоит return FMRES_IGNORED
значит все последующие функции будут работать только на живих юзерах. Я правильно понимаю?
 
defaultNick8433Дата: Пятница, 22.01.2010, 16:49:34 | Сообщение # 4
Генерал-полковник
Группа: Скриптеры
Сообщений: 806
Репутация: 19
Статус: Не в сети
FMRES_IGNORED-игнорирование функции,то есть она будет работать нормально в последующем.

FMRES_SUPERCEDE -это уже блокировка.


Раскручиваю сайты,ставлю трекера на хостинг.Всё бесплатно.Если заинтересовало,то моя аська 400538001
 
PomanoBДата: Пятница, 22.01.2010, 19:44:09 | Сообщение # 5
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
defaultNick8433, не путай человека
Code
RegisterHam(Ham_Touch, "grenade", "fwdTouch")  

public fwdTouch(grenade, ent)
{
  new type = get_pdata_int(grenade, 114)
  if (type == 25)
  {
   //HE
  }
  else
  if (type == 26)
  {
   // Smoke
  }
  else if (type == 0 && get_pdata_int(grenade, 96) != 256)
  {
   //Flash
  }

}


http://romanov4400.mybrute.com
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » дотронутся газа\гранаты газовой (функ)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024