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.
Rozpoczynaj nowe tematy i odpowiedaj na inne
Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
Dodawaj wydarzenia do kalendarza społecznościowego
Stwórz swój własny profil i zdobywaj nowych znajomych
A jeszcze jedno mam pytanie do tego kodu. Czy jakby dodał ten public pod inną nazwą, powiedzmy że "public UTIL_FindNearestOpponents(id, maxdist)" czyli byłby taki kod
Spoiler
public UTIL_FindNearestOpponents(id, maxdist) { new best = 99999 new entfound = -1 new MyOrigin[3] get_user_origin(id,MyOrigin)
new TempOrigin[3],Float:fTempOrigin[3] get_user_origin(i,TempOrigin) IVecFVec(TempOrigin,fTempOrigin)
if(!UTIL_IsInView(id,i)) continue
new dist = get_distance(MyOrigin,TempOrigin)
if(dist < maxdist && dist < best) { best = dist entfound = i UTIL_FindNearestOpponents(i, 600) } }
return entfound }
to wtedy będzie szukało drugiego gracz obok tego pierwszego znalezionego?
Dodano 12 grudzień 2010 - 14:53:
public UTIL_FindNearestOpponent(id, maxdist)
{
new best = 99999
new entfound[33]
new ile = 0;
new MyOrigin[3]
get_user_origin(id,MyOrigin)
for(new i=0; i<MAX_PLAYERS; i++)
{
if(i == id || !is_user_connected(i) || !is_user_alive(i) || get_user_team(id) == get_user_team(i))
continue
new TempOrigin[3],Float:fTempOrigin[3]
get_user_origin(i,TempOrigin)
IVecFVec(TempOrigin,fTempOrigin)
if(!UTIL_IsInView(id,i))
continue
new dist = get_distance(MyOrigin,TempOrigin)
if(dist < maxdist && dist < best)
{
best = dist
entfound[ile] = i
ile++;
}
}
return entfound
}
Po zrobieniu czegoś takiego przy probie kompilacji wyskakuje taki błąd
Error: Array must be indexed (variable "-unknown-") on line 6290
czyli dotyczy to tej funkcji
Spoiler
public item_dagon(id) { if(player_b_dagfired[id]) { hudmsg(id, 2.0, "Tego przedmiotu mozesz uzywac raz na runde"); return PLUGIN_HANDLED; } //Target nearest non-friendly player new target = UTIL_FindNearestOpponent(id,600+player_intelligence[id]*10);
if(target == -1) return PLUGIN_HANDLED;
new DagonDamage = player_b_dagon[id]*(30+floatround(player_intelligence[id]/3.0)); new Red = 0, Width = 0;