Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Funkcja na podstawie Smoke.
#1
Napisano 30.05.2010 21:45
#2
Napisano 30.05.2010 22:03
Funkcji od podpalenia poszukaj w ATAC.
if(equal(szClassName, "grenade") && equal(szClassNameOther, "player"))
{
new greModel[64]
entity_get_string(ptd, EV_SZ_model, greModel, 63)
if(equali(greModel, "models/w_smokegrenade.mdl" ))
{
new id = entity_get_edict(ptd,EV_ENT_owner)
if (is_user_connected(id)
&& is_user_alive(ptr)
&& player_b_smokopodpalacz[id] > 0
&& get_user_team(id) != get_user_team(ptr))
// FUNKCJA PODPALAJĄCA
}
}
#3
Napisano 31.05.2010 14:09
if(equal(szClassName, "grenade") && equal(szClassNameOther, "player")) { new greModel[64] entity_get_string(ptd, EV_SZ_model, greModel, 63) if(equali(greModel, "models/w_smokegrenade.mdl" )) { new id = entity_get_edict(ptd,EV_ENT_owner) if (is_user_connected(id) && is_user_alive(ptr) && player_b_smokopodpalacz[id] > 0 && get_user_team(id) != get_user_team(ptr)) fire_effects(id) fire_damage(id) } }
Na samym dole *.sma:
public fire_effects( id ) { if (is_user_alive(id)) { new origin[ 3 ] get_user_origin(id, origin) draw_fire(origin) set_task(0.2, "fire_effects", id) } } public fire_damage( id ) { if (is_user_alive(id)) { new health = get_user_health(id) set_pev(id, pev_dmg_inflictor, 0) // Reset attacker, else ATAC will rapidly start adding Team Attacks! if ( health - 5 <= 0 ) user_kill( id, 1 ) else { set_pev( id, pev_health, float( health ) - 5.0 ) set_task(1.0, "fire_damage", id) } } } draw_fire(origin[3]) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_SPRITE) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) write_short(g_mflash) write_byte(20) write_byte(200) message_end() smoke_effect(origin, 20) // Smoke } smoke_effect(origin[3], amount) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_SMOKE) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) write_short(g_smoke) write_byte(amount) write_byte(10) message_end() }
Oczywiście precache i zmienne dodałem, kompiluje się, ale będzie działać? I tylko dźwięk usunąłem
1. Będzie zadawać dmg?
I co to jest:
set_pev(id, pev_dmg_inflictor, 0) // Reset attacker, else ATAC will rapidly start adding Team Attacks!\
?
I jakby mi mógł ktoś powiedzieć gdzie tu jest ile dmg zadaje? I że, jak ma koleś mało hp, żeby go zabijało, znaczy odejmuje i jak juz ma 1 hp i dalej jest to odejmuje i go zabija.
2. Jak długo będzie działać?
3. Jak zrobić, aby dym smoke'a też podpalał?
Użytkownik Screeaam... edytował ten post 31.05.2010 15:11
#4
Napisano 31.05.2010 17:21
// jak chcesz sie wzorowac na czyms to polecam fireshielda lub totem ognisty
Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka
GG:6022845 (nie pomagam za free osobom ponizej rangi MoD)
#5
Napisano 31.05.2010 20:05
w zasadzie zada to 5 obrazen ale tylko w momencie dotkniecia wiec gracz sie palil nie bedzie tylko zabierze mu hp raz najlepiej zrobic taska ktory wykona to pare razy albo thinka + jak bedziesz stac na obiekcie to mam natychmiastowego deada
// jak chcesz sie wzorowac na czyms to polecam fireshielda lub totem ognisty
Czyli co i jak mam zmienić?
Czyli, jeżeli wyciągnę funkcje z podpalania od totemu, podczepie to do taska i wykonam task kilkakrotnie w mojej funkcji, to będzie podpalanie działać?
Po drugie nie wiem która funkcja odpowiada za palenie się. ;/
@EDIT:
Czy to to:
stock Effect_Ignite(id,attacker,damage) { new ent = Spawn_Ent("info_target") set_pev(ent,pev_classname,"Effect_Ignite") set_pev(ent,pev_owner,id) set_pev(ent,pev_ltime, halflife_time() + 99 + 0.1) set_pev(ent,pev_solid,SOLID_NOT) set_pev(ent,pev_euser1,attacker) set_pev(ent,pev_euser2,damage) set_pev(ent,pev_nextthink, halflife_time() + 0.1) AddFlag(id,Flag_Ignite) }
I jeszcze mam coś takiego, ale nie wiem do czego:
public Effect_Ignite_Think(ent) { new id = pev(ent,pev_owner) attacker = pev(ent,pev_euser1) new damage = pev(ent,pev_euser2) if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id) || !HasFlag(id,Flag_Ignite)) { RemoveFlag(id,Flag_Ignite) Remove_All_Tents(id) Display_Icon(id ,0 ,"dmg_heat" ,200,0,0) remove_entity(ent) return PLUGIN_CONTINUE } //Display ignite tent and icon Display_Tent(id,sprite_ignite,2) Display_Icon(id ,1 ,"dmg_heat" ,200,0,0) new origin[3] get_user_origin(id,origin) //Make some burning effects message_begin( MSG_BROADCAST,SVC_TEMPENTITY) write_byte( TE_SMOKE ) // 5 write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) write_short( sprite_smoke ) write_byte( 22 ) // 10 write_byte( 10 ) // 10 message_end() //Decals message_begin( MSG_BROADCAST,SVC_TEMPENTITY) write_byte( TE_GUNSHOTDECAL ) // decal and ricochet sound write_coord( origin[0] ) //pos write_coord( origin[1] ) write_coord( origin[2] ) write_short (0) // I have no idea what thats supposed to be write_byte (random_num(199,201)) //decal message_end() //Do the actual damage change_health(id,-damage,attacker,"world") set_pev(ent,pev_nextthink, halflife_time() + 1.5) return PLUGIN_CONTINUE }
01 czerwiec 2010 - 14:46:
Pomoże ktoś?
Użytkownik Screeaam... edytował ten post 31.05.2010 20:42
Użytkownicy przeglądający ten temat: 2
0 użytkowników, 2 gości, 0 anonimowych