public item_gravitybomb(id)
{
if (pev(id,pev_flags) & FL_ONGROUND)
{
hudmsg(id,2.0,"Musisz byc w powietrzu!")
return PLUGIN_CONTINUE
}
if (halflife_time()-gravitytimer[id] <= 4)
{
hudmsg(id,2.0,"Ten przedmiot, moze byc uzyty co kazde 4 sekundy")
return PLUGIN_CONTINUE
}
gravitytimer[id] = floatround(halflife_time())
new origin[3]
get_user_origin(id,origin)
if (origin[2] == 0)
earthstomp[id] = 1
else
earthstomp[id] = origin[2]
set_user_gravity(id,5.0)
falling[id] = true
return PLUGIN_CONTINUE
}
public add_bonus_stomp(id)
{
set_gravitychange(id)
new origin[3]
get_user_origin(id,origin)
new dam = earthstomp[id]-origin[2]
earthstomp[id] = 0
//If jump is is high enough, apply some shake effect and deal damage, 300 = down from BOMB A in dust2
if (dam < 85)
return PLUGIN_CONTINUE
dam = dam-85
message_begin(MSG_ONE , get_user_msgid("ScreenShake") , {0,0,0} ,id)
write_short( 1<<14 );
write_short( 1<<12 );
write_short( 1<<14 );
message_end();
new entlist[513]
new numfound = find_sphere_class(id,"player",230.0+player_strength[id]*2,entlist,512)
for (new i=0; i < numfound; i++)
{
new pid = entlist[i]
if (pid == id || !is_user_alive(pid))
continue
if (get_user_team(id) == get_user_team(pid))
continue
if (!(pev(pid, pev_flags) & FL_ONGROUND)) continue
new Float:id_origin[3]
new Float:pid_origin[3]
new Float:delta_vec[3]
pev(id,pev_origin,id_origin)
pev(pid,pev_origin,pid_origin)
delta_vec[x] = (pid_origin[x]-id_origin[x])+10
delta_vec[y] = (pid_origin[y]-id_origin[y])+10
delta_vec[z] = (pid_origin[z]-id_origin[z])+200
set_pev(pid,pev_velocity,delta_vec)
message_begin(MSG_ONE , get_user_msgid("ScreenShake") , {0,0,0} ,pid)
write_short( 1<<14 );
write_short( 1<<12 );
write_short( 1<<14 );
message_end();
change_health(pid,-dam,id,"world")
}
return PLUGIN_CONTINUE
}
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.
|
Archy
#1
Napisano 27.06.2010 14:30
#2
Napisano 28.06.2010 17:21
Wydaje mi sie jednak ze diablo nie ma z tym nic wspolnego i dodales jakis inny plugin ktory podczas upadku zabiera wiecej HP i to przez niego ktos z archami traci hp.
#3
Napisano 29.06.2010 08:30
#4
Napisano 29.06.2010 15:10
#5
Napisano 29.06.2010 22:05
#6
Napisano 29.06.2010 23:03
A czy jest mozliwe ze poprostu w diablomodzie bylo juz cos zbugowane??
Nie. Znaczy, po Twojej przeróbce możliwe, chociaż z kodu wynika, że nie w kodzie od archów.
#7
Napisano 06.07.2010 12:00
#8
Napisano 06.07.2010 14:58
public client_PostThink( id )
{
if((jumps[id] < player_b_jumpx[id]) || (jumps[id] < c_jump[id]))
if (earthstomp[id] != 0 && is_user_alive(id))
{
if (!falling[id]) add_bonus_stomp(id)
else set_pev(id,pev_watertype,-3)
}
}
public client_AddToFullPack(ent_state,e,edict_t_ent,edict_t_host,hostflags,player,pSet)
{
//No players need this rather cpu consuming function - dont run
if (!use_addtofullpack)
return FMRES_HANDLED
if (!pev_valid(e)|| !pev_valid(edict_t_ent) || !pev_valid(edict_t_host))
return FMRES_HANDLED
new classname[32]
pev(e,pev_classname,classname,31)
new hostclassname[32]
pev(edict_t_host,pev_classname,hostclassname,31)
if (equal(classname,"player") && equal(hostclassname,"player") && player)
{
// only take effect if both players are alive & and not somthing else like a ladder
if (is_user_alive(e) && is_user_alive(edict_t_host) && e != edict_t_host)
{
//host looks at e
if (HasFlag(e,Flag_Illusion))
return FMRES_SUPERCEDE
//E Is looking at t and t has the flag
if (HasFlag(edict_t_host,Flag_Illusion))
return FMRES_SUPERCEDE
}
}
return FMRES_HANDLED
}
#9
Napisano 06.07.2010 15:58
if((jumps[id] < player_b_jumpx[id]) || (jumps[id] < c_jump[id])) if (earthstomp[id] != 0 && is_user_alive(id))
Czemu tam masz if'a do if'a?
Tam normalnie jest funkcja od podwójnego skoku, a teraz jest jakis bałagan - albo popraw to co chciales zrobić, albo usuń pierwszego if'a bo tak to nie masz ochrony.
#10
Napisano 06.07.2010 16:16
#11
Napisano 06.07.2010 17:11
public client_PostThink( id ) { if (player_b_jumpx[id] > 0) Postthink_Doubeljump(id) if (earthstomp[id] != 0 && is_user_alive(id)) { if (!falling[id]) add_bonus_stomp(id) else set_pev(id,pev_watertype,-3) } }
wiec jestem nie ufny
#12
Napisano 06.07.2010 18:30
#13
Napisano 06.07.2010 18:39
albo popraw to co chciales zrobić, albo usuń pierwszego if'a bo tak to nie masz ochrony.
#14
Napisano 06.07.2010 18:42
#15
Napisano 06.07.2010 20:07
public client_PostThink( id ) { if((jumps[id] < player_b_jumpx[id]) || (jumps[id] < c_jump[id])) if (earthstomp[id] != 0 && is_user_alive(id)) { if (!falling[id]) add_bonus_stomp(id) else set_pev(id,pev_watertype,-3) } }na:
public client_PostThink( id ) { if (earthstomp[id] != 0 && is_user_alive(id)) { if (!falling[id]) add_bonus_stomp(id) else set_pev(id,pev_watertype,-3) } }
#16
Napisano 10.07.2010 07:27
#17
Napisano 10.07.2010 22:45
Bo ten warunek był też większy niż standardowy, więc nie masz co zaprzeczać, że by zmieniany.albo popraw to co chciales zrobić
A prawdą jest, że najprościej naprawić archy usuwając warunek który nic pożytecznego w tamtym momencie nie robił
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych