Przerobka HE conc jumping
ZiuTeK
23.09.2010
Mam wielka prosbe, moze ktos sie tego podejmie, chcialbym przerobic plugin jak w temacie w taki sposob zeby dzialal na flashe zamiast na HE
Z tego co czytalem to pobierane sa jakos obrazenia i na tej podstawie jest obliczany kierunek i sila odrzutu
We flashach nie wiem jak to mozna by bylo zrealizowac stad moja prosba.
Jesli ktos ma jakies pomysly albo potrafi samodzielnie go przerobic będę bardzo wdzieczny.
Odswiezam, znalazlem odpowiedni plugin w z ktorego moge wykorzystac dane, jest to virussmokenade, teraz potrzebuje znalezc takie cos jak odleglosc gracza od wybuchajacego flasha, smoke-a.
W oryginalnym kodzie virussmokenade mamy:
Ok, jakos sobie poradzilem, na razie nie jest to jeszcze dokladnie to co chcialem ale powiedzmy, ze dziala w 50 % dziekuje za zainteresowanie tym ktorzy nad tym mysleli i temacik chyba mozna zamknac.
Ostatecznie to wyszlo w ten sposob:
http://www.youtube.com/watch?v=VhkCnRUGXpw
Użytkownik ZiuTeK edytował ten post 25.09.2010 23:55
Z tego co czytalem to pobierane sa jakos obrazenia i na tej podstawie jest obliczany kierunek i sila odrzutu
We flashach nie wiem jak to mozna by bylo zrealizowac stad moja prosba.
Jesli ktos ma jakies pomysly albo potrafi samodzielnie go przerobic będę bardzo wdzieczny.
#include <amxmodx> #include <amxmisc> #include <engine> #define SPEED 800.0 public plugin_init() { register_plugin("HE Knockback", "1.0", "ThantiK") register_event("Damage", "hedamage_event", "b", "2!0", "4!0", "5!0", "6!0") register_cvar("he_push","20.0") } stock get_velocity_from_origin( ent, Float:fOrigin[3], Float:fSpeed, Float:fVelocity[3] ) { new Float:fEntOrigin[3]; entity_get_vector( ent, EV_VEC_origin, fEntOrigin ); // Velocity = Distance / Time new Float:fDistance[3]; fDistance[0] = fEntOrigin[0] - fOrigin[0]; fDistance[1] = fEntOrigin[1] - fOrigin[1]; fDistance[2] = fEntOrigin[2] - fOrigin[2]; new Float:fTime = ( vector_distance( fEntOrigin,fOrigin ) / fSpeed ); fVelocity[0] = fDistance[0] / fTime; fVelocity[1] = fDistance[1] / fTime; fVelocity[2] = fDistance[2] / fTime; return ( fVelocity[0] && fVelocity[1] && fVelocity[2] ); } // Sets velocity of an entity (ent) away from origin with speed (speed) stock set_velocity_from_origin( ent, Float:fOrigin[3], Float:fSpeed ) { new Float:fVelocity[3]; get_velocity_from_origin( ent, fOrigin, fSpeed, fVelocity ) entity_set_vector( ent, EV_VEC_velocity, fVelocity ); return ( 1 ); } public hedamage_event(id) { new MAXPLAYERS MAXPLAYERS = get_maxplayers() new inflictor = entity_get_edict(id, EV_ENT_dmg_inflictor) if (inflictor <= MAXPLAYERS) return PLUGIN_CONTINUE new classname2[8] entity_get_string(inflictor, EV_SZ_classname, classname2, 7) if (!equal(classname2, "grenade")) return PLUGIN_CONTINUE new Float:upVector[3] upVector[0] = float(read_data(4)) upVector[1] = float(read_data(5)) upVector[2] = float(read_data(6)) new damagerept = read_data(2) set_velocity_from_origin(id, upVector, get_cvar_float("he_push")*damagerept) return PLUGIN_CONTINUE }
Odswiezam, znalazlem odpowiedni plugin w z ktorego moge wykorzystac dane, jest to virussmokenade, teraz potrzebuje znalezc takie cos jak odleglosc gracza od wybuchajacego flasha, smoke-a.
W oryginalnym kodzie virussmokenade mamy:
public fw_emitsound(Ent,Channel,const Sound[],Float:Volume,Float:Attenuation,Flags,Pitch) { if(p_toggle != 1) return FMRES_IGNORED; if(!equali(Sound,"weapons/sg_explode.wav")) return FMRES_IGNORED; new Float:origin[3],i,name[32]; pev(Ent, pev_origin, origin); new owner = pev(Ent,pev_owner); Light(origin); Render(Ent,kRenderFxNone,255,255,255,15); while((i = fm_find_ent_in_sphere(i,origin,radius)) != 0) {gdzie znajduje mi graczy (i) w promieniu o wartosci radius, czy da sie jakos odkryc prawdziwa odleglosc gracza od mojego granatu bo od tego bedzie zalezala sila odpychajaca ?
Ok, jakos sobie poradzilem, na razie nie jest to jeszcze dokladnie to co chcialem ale powiedzmy, ze dziala w 50 % dziekuje za zainteresowanie tym ktorzy nad tym mysleli i temacik chyba mozna zamknac.
Ostatecznie to wyszlo w ten sposob:
http://www.youtube.com/watch?v=VhkCnRUGXpw
Użytkownik ZiuTeK edytował ten post 25.09.2010 23:55