[ROZWIĄZANE] Działo - przesłanie natywem i...
Sniper Elite
01.07.2012
Witam.
Mam działo przy klasie i nie wiem jak dodać do niej inteligencje, która zwiększy właściwości działka.
Natyw już przesłałem, ale nie wiem do jakiego id się odwołać w dodawaniu hp, obrażeń i szybkości stawiania działa.
Niżej podaję sma działka.
Dzięki za pomoc.
Edited by Sniper Elite, 01.07.2012 07:06.
Mam działo przy klasie i nie wiem jak dodać do niej inteligencje, która zwiększy właściwości działka.
Natyw już przesłałem, ale nie wiem do jakiego id się odwołać w dodawaniu hp, obrażeń i szybkości stawiania działa.
Niżej podaję sma działka.
Dzięki za pomoc.
Attached Files
Edited by Sniper Elite, 01.07.2012 07:06.
xstrime 01.07.2012
hp, obrażeń
pcvarHealth = register_cvar("inzynier_health","200")
pcvarDamage = register_cvar("inzynier_damage","10.0");
Sniper Elite
01.07.2012
Tyle wiem, ale chodzi mi jak to dodać do odpowiednich funkcji (jak w nich się odwołać do odpowiedniego id).
d0naciak
01.07.2012
Nad plugin_init() dodajesz
do publica Spawn(id) do if(nowa_klasa_gracza[id]) dodajesz
do switch(klasa_gracza[id]) do case klasy dodajesz (tam gdzie bronie)
Edited by d0n tHe Pr0oo, 01.07.2012 08:07.
native ma_dzialko(id,flaga,int);
do publica Spawn(id) do if(nowa_klasa_gracza[id]) dodajesz
ma_dzialko(id, 0);
do switch(klasa_gracza[id]) do case klasy dodajesz (tam gdzie bronie)
ma_dzialko(id, 1, 100); //to tylko przyklad, wartosci mozna zmienic
Edited by d0n tHe Pr0oo, 01.07.2012 08:07.
Sniper Elite
01.07.2012
pobieram z coda wartość inteligencji gracza, ktorego jest dzialo.
Jakie tu wpisać pobrac id, gracza, ktory stawia dzialko, aby mogl uzaleznic hp od inteligencji.
I w którym miejscu te inteligencje dodac.
To samo tutaj.
Jak pobrać id gracza, którego jest działo, abym mógł dodać jego inteligencje do obrazen.
mam nadzieje, że teraz mnie zrozumiecie.
Edited by Sniper Elite, 01.07.2012 09:09.
public stawdzialo2(ent) { new Float:origin[3]; pev(ent,pev_origin,origin); new sentry_shot2 = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"func_breakable")) if (!sentry_shot2) { return 0 } new szHealth[16] get_pcvar_string(pcvarHealth + inteligencja_gracza[ent]*2,szHealth,charsmax(szHealth)) fm_set_kvd(sentry_shot2, "health", szHealth, "func_breakable") fm_set_kvd(sentry_shot2, "material", "6", "func_breakable") fm_DispatchSpawn(sentry_shot2) set_pev(sentry_shot2, pev_classname, "sentry_shot") engfunc(EngFunc_SetModel, sentry_shot2, "models/sentry2.mdl") engfunc(EngFunc_SetSize, sentry_shot2, {-16.0, -16.0, 0.0}, {16.0, 16.0, 20.0}) origin[2] += 25.0; engfunc(EngFunc_SetOrigin, sentry_shot2, origin) new Float:fAngle[3]; pev(pev(ent,pev_iuser1), pev_v_angle, fAngle) fAngle[0] = 0.0 fAngle[1] += 180.0 fAngle[2] = 0.0 set_pev(sentry_shot2, pev_angles, fAngle) set_pev(sentry_shot2, pev_solid, SOLID_BBOX) set_pev(sentry_shot2, pev_movetype, MOVETYPE_TOSS) set_pev(sentry_shot2, pev_iuser1, pev(ent,pev_iuser1)) set_pev(sentry_shot2, pev_iuser2, ent) set_pev( sentry_shot2, pev_sequence, 0 ); set_pev( sentry_shot2, pev_animtime, get_gametime() ); set_pev( sentry_shot2, pev_framerate, 1.0 ); set_pev(sentry_shot2, pev_nextthink, get_gametime() + SENTRY_THINK) return sentry_shot2; }
Jakie tu wpisać pobrac id, gracza, ktory stawia dzialko, aby mogl uzaleznic hp od inteligencji.
I w którym miejscu te inteligencje dodac.
public sentry_shot3(ent,target) { new Float:sentryOrigin[3], Float:targetOrigin[3], Float:hitOrigin[3] pev(ent, pev_origin, sentryOrigin) sentryOrigin[2] += 18.0 pev(target, pev_origin, targetOrigin) targetOrigin[0] += random_float(-16.0, 16.0) targetOrigin[1] += random_float(-16.0, 16.0) targetOrigin[2] += random_float(-16.0, 16.0) new hit = fm_trace_line(ent, sentryOrigin, targetOrigin, hitOrigin) if(hit == target) { knockback_explode(target, sentryOrigin, 5.0) new Float:dam = get_pcvar_float(pcvarDamage) + float(inteligencja_gracza[ent])/10 ExecuteHam(Ham_TakeDamage, target, 0, pev(ent,pev_iuser1), dam, 1); set_pev( ent, pev_sequence, 1 ); set_pev( ent, pev_animtime, get_gametime() ); set_pev( ent, pev_framerate, 1.0 ); } FX_Trace(sentryOrigin, hitOrigin) engfunc(EngFunc_EmitSound, ent, CHAN_STATIC, "sentry_shoot.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) }
To samo tutaj.
Jak pobrać id gracza, którego jest działo, abym mógł dodać jego inteligencje do obrazen.
mam nadzieje, że teraz mnie zrozumiecie.
Edited by Sniper Elite, 01.07.2012 09:09.
dasiek
01.07.2012
ExecuteHam(Ham_TakeDamage, target, 0, pev(ent,pev_iuser1), dam+cod_get_int(pev(ent,pev_iuser1)), 1);
Powinno być chyba coś takiego. Ofc jak masz natyw cod_get_int jak się inaczej nazywa to zmień.
Powinno być chyba coś takiego. Ofc jak masz natyw cod_get_int jak się inaczej nazywa to zmień.
Sniper Elite
01.07.2012
dmg dziala, dzięki, a jak z tym hp?
Edited by Sniper Elite, 01.07.2012 09:34.
Edited by Sniper Elite, 01.07.2012 09:34.
d0naciak
01.07.2012
jezeli hp ustawiasz entowi, to nie potrzebne id gracza, przy obrazeniach jest potrzebne po to, aby plugin wiedział komu naliczyć obrazenia
dasiek
01.07.2012
dmg dziala, dzieki, a jak z tym hp?
Co chcesz z Tym hp? Chcesz pobrać HP ownera działka? Samego działka czy co?
Sniper Elite
01.07.2012
chcę dodać działkowi hp ustalane cvarem + inteligencja_gracza[id] *2
Ale jak robie tak jak pokazałem to nie działa.
Ale jak robie tak jak pokazałem to nie działa.
dasiek
01.07.2012
fm_set_kvd(sentry_shot2, "health", szHealth+get_int(entity_get_edict(ent, EV_ENT_owner);)/2, "func_breakable")
ja bym to tak spróbował. w public stawdzialo2(ent)
Sniper Elite
02.07.2012
fm_set_kvd(sentry_shot2, "health", szHealth + inteligencja_gracza[entity_get_edict(ent, EV_ENT_owner)]*2, "func_breakable")
array must be indexed <variable "szHealth">
O to się czepia teraz.
dasiek
02.07.2012
Nie zauważyłęm że szHealth jest tekstem. Cały kod Stawiania działka. Powinno działać.
public stawdzialo2(ent) { new Float:origin[3]; pev(ent,pev_origin,origin); new sentry_shot2 = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"func_breakable")) if (!sentry_shot2) { return 0 } new szHealth[16] get_pcvar_string(pcvarHealth,szHealth,charsmax(szHealth)) new health = pcvarHealth + inteligencja_gracza[entity_get_edict(ent, EV_ENT_owner)]; num_to_str(health,szHealth,15) fm_set_kvd(sentry_shot2, "health",szHealth , "func_breakable") fm_set_kvd(sentry_shot2, "material", "6", "func_breakable") fm_DispatchSpawn(sentry_shot2) set_pev(sentry_shot2, pev_classname, "sentry_shot") engfunc(EngFunc_SetModel, sentry_shot2, "models/sentry2.mdl") engfunc(EngFunc_SetSize, sentry_shot2, {-16.0, -16.0, 0.0}, {16.0, 16.0, 20.0}) origin[2] += 25.0; engfunc(EngFunc_SetOrigin, sentry_shot2, origin) new Float:fAngle[3]; pev(pev(ent,pev_iuser1), pev_v_angle, fAngle) fAngle[0] = 0.0 fAngle[1] += 180.0 fAngle[2] = 0.0 set_pev(sentry_shot2, pev_angles, fAngle) set_pev(sentry_shot2, pev_solid, SOLID_BBOX) set_pev(sentry_shot2, pev_movetype, MOVETYPE_TOSS) set_pev(sentry_shot2, pev_iuser1, pev(ent,pev_iuser1)) set_pev(sentry_shot2, pev_iuser2, ent) set_pev( sentry_shot2, pev_sequence, 0 ); set_pev( sentry_shot2, pev_animtime, get_gametime() ); set_pev( sentry_shot2, pev_framerate, 1.0 ); set_pev(sentry_shot2, pev_nextthink, get_gametime() + SENTRY_THINK) return sentry_shot2; }
Gość_21977_* 02.07.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL