Chcę sprawdzić czy przy Graczu I znajdują się jacyś inni gracze w okolicy(tj 100 unitów). A jeśli tak i stoją przez jakiś czas w tej okolicy to wykonać jakąś funkcję na tym Graczu I.
Oraz drugi problem:
Czy da się zamiast normalnej śmierci tj < 1 hp zrobić coś innego, np przeciwnik nie ginie a np zapada się pod ziemię.
Tera git ?
Dodano 02 kwiecień 2011 - 00:03:
Może jakoś da radę zastosować find_sphere_class ? Proszę o pomoc bo bardzo mi to potrzebne
Dodano 02 kwiecień 2011 - 12:11:
Mam cos takiego:
public check( id ) { new num, list[ 32 ], Float:dist = 250.0; num = find_sphere_class( id, "player", dist+0.0, list, 32 ); new player; for ( new i ; i < num ; i++ ) { player = list[ i ]; if( !is_user_alive( player ) || get_user_team( player ) != get_user_team( id ) || gfFrost[id] == 0 ) { continue; } set_task(5.0,"odmroz",id) } } public odmroz(id) { gfFrost[id]=0; set_user_health(id,100); set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) set_pev(id, pev_maxspeed, 250.0) }
Czemu niezaleznie gdzie sie kto znajduje po 5 sekundach ma unfreeze ? Tak jakby ten zasieg nie dzialal
Dodano 02 kwiecień 2011 - 21:09:
Dobra poradziłem sobie już, gdyby ktoś miał podobny problem:
W prethinku jakimś:
public fwPreThink(id){ if (!task_exists(id)){ set_task(1.0,"check",id); }
No i reszta skryptu:
public check( id ) { if( !gfFrost[id] ) return PLUGIN_HANDLED; new num, list[32], Float:dist = 250.0; num = find_sphere_class( id, "player", dist, list, 32 ); new player; for ( new i ; i < num ; i++ ) { player = list[ i ]; if( !is_user_alive( player ) || get_user_team( player ) != get_user_team( id ) || id == player) { continue; } if (num == 2) { tuf[id]=tuf[id]+1; } else if(num >= 3) { tuf[id]=tuf[id]+1*(((num-1)/5)+1); } if (tuf[id] >= 7){ tuf[id]=0; odmroz(id); } } } public odmroz(id) { gfFrost[id] = false; set_user_health(id,100); set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0) set_pev(id, pev_maxspeed, 250.0) }
Działą perfekcyjnie i tak jak chce Wieć już zaniedługo testy moda - TDM Freeze i wypuszcze wersję 0.1 ;D