Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

2 страниц V   1 2

Доделать shoot grenade

Статус пользователя ssx
сообщение 5.4.2015, 13:56
Сообщение #1


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Всем привет!

Есть такой плагин Shoot Grenades

Суть плагина в том что бы взрывать гранаты на лету.

Но плагин не хочет взрывать гранаты которые лежат на полу .

Кто может помочь исправить ситуацию ?

Код плагина
Код:

#include <amxmodx>

#include <fakemeta>
#include <engine>
#include <hamsandwich>

#include <cstrike>

#include <xs>

new const Plugin[] = "Shoot Grenades"
new const Author[] = "joaquimandrade"
new const Version[] = "1.1"

enum Grenade
{
Flashbang,
He,
Smoke,
C4
}

new Cvars[Grenade]

new CvarsNames[Grenade][] =
{
"flash",
"he",
"smoke",
"c4"
}

// Arkshine
const m_flC4Blow = 100

new Trie:RegisteredClasses

public plugin_precache()
{
RegisteredClasses = TrieCreate()

register_forward(FM_Spawn,"spawn")
}

public spawn(id)
{
if(pev_valid(id))
{
static classname[32]
pev(id,pev_classname,classname,charsmax(classname))

if(!TrieKeyExists(RegisteredClasses,classname))
{
RegisterHam(Ham_TraceAttack,classname,"globalTraceAttack")
TrieSetCell(RegisteredClasses,classname,true)
}
}
}

public plugin_init()
{
register_plugin(Plugin,Version,Author)

RegisterHam(Ham_TraceAttack,"worldspawn","globalTraceAttack")
RegisterHam(Ham_TraceAttack,"player","globalTraceAttack")

register_cvar("shootGrenades_version",Version,FCVAR_SERVER|FCVAR_SPONLY)
}

public plugin_cfg()
{
new cvarName[15]

for(new Grenade:i=Grenade:0;i<Grenade;i++)
{
formatex(cvarName,charsmax(cvarName),"shoot_%s",CvarsNames[i])
Cvars[i] = register_cvar(cvarName,"1")
}
}

public globalTraceAttack(this,attackerID,Float:damage,Float:direction[3],tracehandle,da
magebits)
{
if(1 <= attackerID <= 32)
{
static Float:origin[3]
pev(attackerID,pev_origin,origin)

static Float:viewOfs[3]
pev(attackerID,pev_view_ofs,viewOfs)

xs_vec_add(origin,viewOfs,origin)

static Float:end[3]
get_tr2(tracehandle,TR_vecEndPos,end)

new trace = create_tr2()

new grenade = -1

while((grenade = find_ent_by_class(grenade,"grenade")))
{
engfunc(EngFunc_TraceModel,origin,end,HULL_POINT,grenade,trace)

if(get_tr2(trace,TR_pHit) == grenade)
{
new Grenade:id = fm_cs_get_grenade_type_myid(grenade)

if(id == C4)
{
new cvarValue = get_pcvar_num(Cvars[C4])

if((cvarValue == 2) || (cvarValue && (cs_get_user_team(attackerID) == CS_TEAM_CT)))
{
set_pdata_float(grenade,m_flC4Blow,0.0)
dllfunc(DLLFunc_Think,grenade)
}
}
else
{
if(get_pcvar_num(Cvars[id]))
{
if(id == Smoke)
set_pev(grenade,pev_flags,pev(grenade,pev_flags) | FL_ONGROUND)

// Connor
set_pev(grenade,pev_dmgtime,0.0)
dllfunc(DLLFunc_Think,grenade)
}
}
}
}

free_tr2(trace)
}
}

// VEN
Grenade:fm_cs_get_grenade_type_myid(index)
{
if(get_pdata_int(index, 96) & (1<<8))
{
return C4
}

return Grenade:(get_pdata_int(index, 114) & 3)
}



Прикрепленные файлы:
Прикрепленный файл  shootGrenades.sma ( 2,75 килобайт ) Кол-во скачиваний: 8


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Radius
сообщение 5.4.2015, 14:05
Сообщение #2
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

А какой плагин делает так, чтобы они были на полу?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r0no^
сообщение 5.4.2015, 14:09
Сообщение #3


Стаж: 14 лет
Город: Vilnius

Сообщений: 359
Благодарностей: 162
Полезность: 626

Цитата(Radius @ 5.4.2015, 15:05) *
А какой плагин делает так, чтобы они были на полу?


Nademodes.amxx


Лишь утратив всё до конца, человек обретает свободу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 5.4.2015, 14:16
Сообщение #4
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

r0no^, достоверно известно что автор использует именно его?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 5.4.2015, 14:28
Сообщение #5


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

что бы на пол можно было выбрасывать и выбрасывались при смерьте
Real Weapon Drop

// поправил пост

Отредактировал: ssx, - 5.4.2015, 14:33


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 5.4.2015, 14:31
Сообщение #6
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

ssx, в этом плагине нет кода отвечающего за выбрасывание гранат.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 5.4.2015, 14:45
Сообщение #7
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Готового варианта у меня нет, а текущие плагины не позволяют быстро сделать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r0no^
сообщение 5.4.2015, 15:01
Сообщение #8


Стаж: 14 лет
Город: Vilnius

Сообщений: 359
Благодарностей: 162
Полезность: 626

Цитата(Radius @ 5.4.2015, 15:16) *
r0no^, достоверно известно что автор использует именно его?


sorry, не правильно понял вопрос)


Лишь утратив всё до конца, человек обретает свободу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 5.4.2015, 15:05
Сообщение #9
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

set_pev(grenade,pev_flags,pev(grenade,pev_flags) | FL_ONGROUND)

чекает на полу или нет, но это для дыма, убери из кода и попробуй


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Radius
сообщение 5.4.2015, 15:20
Сообщение #10
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

csnet, а как weaponbox взорвется без кода? Единственное что у него есть из логики это удалиться при касании.

Отредактировал: Radius, - 5.4.2015, 15:22
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ssx
сообщение 5.4.2015, 16:43
Сообщение #11


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

То есть проще перепиливать "Real Weapon Drop" что бы можно было взрывать лежачие гранаты ?


У меня знаний в этом нету совсем :(


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 5.4.2015, 17:14
Сообщение #12


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Нашел аналог Shoot Grenades

Shoot At Nades
https://forums.alliedmods.net/showthread.php?p=371525

Но так же лежачие невозможно привести к детонации с помощью выстрела.


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 5.4.2015, 17:29
Сообщение #13


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

или лучше в плагине "Weapon Physics" в функции отлова попадания по гранатам как-то проверять или по гранате попало и если да то что бы детонировала ?


Помогите плиз у кого есть знания как заставлять взываться гранаты при попадании!


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 5.4.2015, 17:30
Сообщение #14
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

уточни, не взрываются все гранаты или только один вид.
в nademodes аналогичный код для гранат

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

в Теории чтобы все взрывалось, достаточно регнуть HAM_takedamage на гранату и получить урон при попадании и взрывать

Это будет меньше кода чем trace attack && TR_vecEndPos на ентити гранаты

пол или текстуру можно чекать через if(PointContents ==

Отредактировал: csnet, - 5.4.2015, 17:33


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 5.4.2015, 17:39
Сообщение #15


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

Все виды гранат не взрываются когда они лежат на земле и по ним стреляешь .


выше\ниже плагины в plugins.ini не помогает.

пока что вот так у меня:
real_weapon_drop.amxx // что бы можно было дропать гранаты на землю
weaponphys.amxx // разлетаются гранаты и оружие если по ним стрельнуть или рядом граната взорвалась


Хочу сделать что бы гранаты взрывались когда по ним наносят урон не важно чем (стреляют или рядом HE граната взорвалась)

То есть в weaponphys.amxx проще будет сделать при нанесении урона проверку на гранаты и если по ним нанесли урон то что бы они детонировали.
Только вот как это реализовать - я хз.


Отредактировал: ssx, - 5.4.2015, 17:41


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 5.4.2015, 17:42
Сообщение #16
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

У летящей гранаты classname grenade, у лежащей граната classname weaponbox. Weaponbox не взрывается, нужно самостоятельно писать код взрыва HE, FB и SG или делать через Orpheu. Тут важно понять что без геморроя не обойтись, это причина почему до сих пор нет плагина с таким функционалом.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 5.4.2015, 17:46
Сообщение #17
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

дык какая проблема приподнять гранату над землей на 2 юнита? if( FL_onground )

new Float:origin[3]
pev( ent, pev_origin, origin )
origin[2] += 2.0
set_pev( ent, pev_origin , origin )

и какой будет класс тогда?

Отредактировал: csnet, - 5.4.2015, 17:46


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 5.4.2015, 17:57
Сообщение #18
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

csnet, weaponbox. Вы не понимаете как работают гранаты вообще. Когда игрок выкидывает (drop) гранату, а не бросает (throw), она уже в полете имеет classname weaponbox и логика работы не изменится какие бы Вы свойства ей не назначали, даже если поменять classname. Как говориться: "Как вы яхту назовете, так она и поплывет."

Отредактировал: Radius, - 5.4.2015, 17:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ssx
сообщение 5.4.2015, 19:09
Сообщение #19


Стаж: 12 лет

Сообщений: 2237
Благодарностей: 1343
Полезность: 836

И что никак заставить взрываться гранату когда она лежит на земле ?


[Half-Life DM FFA] 78.152.169.100:27016
[CS 1.6 GunGame] 78.152.169.100:27018
[CS 1.6 DM AIM] 78.152.169.100:27017
[CS 1.6 DM FFA] 78.152.169.100:27015
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 5.4.2015, 19:11
Сообщение #20
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Цитата
Weaponbox не взрывается, нужно самостоятельно писать код взрыва HE, FB и SG


Я делать точно не буду, это не быстро + тесты.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: