Timed_Healing() { new Players[32], playerCount, a get_players(Players, playerCount, "ah") for (new i=0; i<playerCount; i++) { a = Players[i] if (c_totem[a] <= 0) continue change_health(a,c_totem[a],0,"") if (player_b_heal[a] <= 0) continue change_health(a,player_b_heal[a],0,"") } }oraz dodałem to
public item_totem(id) { if (used_item[id]) { hudmsg(id,2.0,"Leczacy Totem mozesz uzyc raz na runde!") return PLUGIN_CONTINUE } used_item[id] = true new origin[3] pev(id,pev_origin,origin) new ent = Spawn_Ent("info_target") set_pev(ent,pev_classname,"Effect_Leczacy_Totem") set_pev(ent,pev_owner,id) set_pev(ent,pev_solid,SOLID_TRIGGER) set_pev(ent,pev_origin,origin) set_pev(ent,pev_ltime, halflife_time() + 7 + 0.1) engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_heal.mdl") set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 ) engfunc(EngFunc_DropToFloor,ent) set_pev(ent,pev_nextthink, halflife_time() + 0.1) return PLUGIN_CONTINUE } public Effect_Leczacy_Totem_Think(ent) { new id = pev(ent,pev_owner) new totem_dist = 300 new amount_healed = c_totem[id] //We have emitted beam. Apply effect (this is delayed) if (pev(ent,pev_euser2) == 1) { new Float:forigin[3], origin[3] pev(ent,pev_origin,forigin) FVecIVec(forigin,origin) //Find people near and damage them new entlist[513] new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin) for (new i=0; i < numfound; i++) { new pid = entlist[i] if (get_user_team(pid) != get_user_team(id)) continue if (is_user_alive(pid)) change_health(pid,amount_healed,0,"") } set_pev(ent,pev_euser2,0) set_pev(ent,pev_nextthink, halflife_time() + 1.5) return PLUGIN_CONTINUE } //Entity should be destroyed because livetime is over if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id)) { remove_entity(ent) return PLUGIN_CONTINUE } //If this object is almost dead, apply some render to make it fade out if (pev(ent,pev_ltime)-2.0 < halflife_time()) set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 ) new Float:forigin[3], origin[3] pev(ent,pev_origin,forigin) FVecIVec(forigin,origin) //Find people near and give them health message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin ); write_byte( TE_BEAMCYLINDER ); write_coord( origin[0] ); write_coord( origin[1] ); write_coord( origin[2] ); write_coord( origin[0] ); write_coord( origin[1] + totem_dist ); write_coord( origin[2] + totem_dist ); write_short( sprite_white ); write_byte( 0 ); // startframe write_byte( 0 ); // framerate write_byte( 10 ); // life write_byte( 10 ); // width write_byte( 255 ); // noise write_byte( 255 ); // r, g, b write_byte( 100 ); // r, g, b write_byte( 100 ); // r, g, b write_byte( 128 ); // brightness write_byte( 5 ); // speed message_end(); set_pev(ent,pev_euser2,1) set_pev(ent,pev_nextthink, halflife_time() + 0.5) return PLUGIN_CONTINUE }nad tym
public item_totemheal(id) { if (used_item[id]) { hudmsg(id,2.0,"Leczacy Totem mozesz uzyc raz na runde!") return PLUGIN_CONTINUE } used_item[id] = true new origin[3] pev(id,pev_origin,origin) new ent = Spawn_Ent("info_target") set_pev(ent,pev_classname,"Effect_Healing_Totem") set_pev(ent,pev_owner,id) set_pev(ent,pev_solid,SOLID_TRIGGER) set_pev(ent,pev_origin,origin) set_pev(ent,pev_ltime, halflife_time() + 7 + 0.1) engfunc(EngFunc_SetModel, ent, "addons/amxmodx/diablo/totem_heal.mdl") set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 ) engfunc(EngFunc_DropToFloor,ent) set_pev(ent,pev_nextthink, halflife_time() + 0.1) return PLUGIN_CONTINUE } public Effect_Healing_Totem_Think(ent) { new id = pev(ent,pev_owner) new totem_dist = 300 new amount_healed = player_b_heal[id] //We have emitted beam. Apply effect (this is delayed) if (pev(ent,pev_euser2) == 1) { new Float:forigin[3], origin[3] pev(ent,pev_origin,forigin) FVecIVec(forigin,origin) //Find people near and damage them new entlist[513] new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist,512,forigin) for (new i=0; i < numfound; i++) { new pid = entlist[i] if (get_user_team(pid) != get_user_team(id)) continue if (is_user_alive(pid)) change_health(pid,amount_healed,0,"") } set_pev(ent,pev_euser2,0) set_pev(ent,pev_nextthink, halflife_time() + 1.5) return PLUGIN_CONTINUE } //Entity should be destroyed because livetime is over if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id)) { remove_entity(ent) return PLUGIN_CONTINUE } //If this object is almost dead, apply some render to make it fade out if (pev(ent,pev_ltime)-2.0 < halflife_time()) set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 ) new Float:forigin[3], origin[3] pev(ent,pev_origin,forigin) FVecIVec(forigin,origin) //Find people near and give them health message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin ); write_byte( TE_BEAMCYLINDER ); write_coord( origin[0] ); write_coord( origin[1] ); write_coord( origin[2] ); write_coord( origin[0] ); write_coord( origin[1] + totem_dist ); write_coord( origin[2] + totem_dist ); write_short( sprite_white ); write_byte( 0 ); // startframe write_byte( 0 ); // framerate write_byte( 10 ); // life write_byte( 10 ); // width write_byte( 255 ); // noise write_byte( 255 ); // r, g, b write_byte( 100 ); // r, g, b write_byte( 100 ); // r, g, b write_byte( 128 ); // brightness write_byte( 5 ); // speed message_end(); set_pev(ent,pev_euser2,1) set_pev(ent,pev_nextthink, halflife_time() + 0.5) return PLUGIN_CONTINUE }
i jeszcze zrobiłem coś takiego
register_think("Effect_Healing_Totem","Effect_Healing_Totem_Think") register_think("Effect_Leczacy_Totem","Effect_Leczacy_Totem_Think")no i problem polega na tym że totemy leczą ale hp nie regeneruje się co 5 sec oczywiście plusiki dla każdego kto choć trochę pomoże
Dodano 29 grudzień 2010 - 10:59:
refresh