Miny - errory w logach
Sniper Elite
13.07.2012
Witam.
Edytowałem sobie funkcję od min i zrobiły mi się errory w logach.
Może ktoś w to zerknąć i powiedzieć co źle zrobiłem?
Dokładnie ten if zawadza:
A error wygląda tak:
Dzięki za pomoc.
Edytowałem sobie funkcję od min i zrobiły mi się errory w logach.
Może ktoś w to zerknąć i powiedzieć co źle zrobiłem?
public DotykMiny(ent, id) { new attacker = entity_get_edict(ent, EV_ENT_owner); if (get_user_team(attacker) != get_user_team(id)) { new Float:fOrigin[3], iOrigin[3]; entity_get_vector( ent, EV_VEC_origin, fOrigin); iOrigin[0] = floatround(fOrigin[0]); iOrigin[1] = floatround(fOrigin[1]); iOrigin[2] = floatround(fOrigin[2]); message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin); write_byte(TE_EXPLOSION); write_coord(iOrigin[0]); write_coord(iOrigin[1]); write_coord(iOrigin[2]); write_short(sprite_blast); write_byte(32); // scale write_byte(20); // framerate write_byte(0);// flags message_end(); new entlist[33]; new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32); for (new i=0; i < numfound; i++) { new pid = entlist[i]; if (is_user_alive(pid) && get_user_team(attacker) != get_user_team(pid) && klasa_gracza[pid] != Obronca && klasa_gracza[pid] != General && player_b_antymina[pid] == 0 && (quest_pol[pid] == true && quest_gracza[pid] != 12) && (quest_alkaida[pid] == true && quest_gracza[pid] != 25)) { new Float:dam = 70.0 - (70.0*redukcja_obrazen_gracza[pid]) + float(inteligencja_gracza[id]) ExecuteHam(Ham_TakeDamage, pid, ent, attacker, dam , 1); } remove_entity(ent); if(ilosc_graczy >= 1 && is_user_connected(pid)){ if(quest_gracza[pid] != -1 && quest_pol[pid] == true) { switch(quest_gracza[pid]){ case 12:{ ile_juz[pid]++; zapisz_aktualny_quest(pid) ColorChat(pid, GREEN, "[Misje]^x03 Rozbroiles mine. Pozostala liczba min do zneutralizowania:^x04 %i", questy_pol[quest_gracza[pid]][1]-ile_juz[pid]); } } } } if(ile_juz[pid] >= questy_pol[quest_gracza[pid]][1] && quest_pol[pid] == true) questy_nagrody(pid) if(ilosc_graczy >= 1 && is_user_connected(pid)){ if(quest_gracza[pid] != -1 && quest_alkaida[pid] == true) { switch(quest_gracza[pid]){ case 25:{ ile_juz[pid]++; zapisz_aktualny_quest(pid) ColorChat(pid, GREEN, "[Misje]^x03 Rozbroiles mine. Pozostala liczba min do zneutralizowania:^x04 %i", questy_pol[quest_gracza[pid]][1]-ile_juz[pid]); } } } } if(ile_juz[pid] >= questy_alkaida[quest_gracza[pid]][1] && quest_alkaida[pid] == true) questy_nagrody(pid) } } }
Dokładnie ten if zawadza:
if(ile_juz[pid] >= questy_pol[quest_gracza[pid]][1] && quest_pol[pid] == true) questy_nagrody(pid)
A error wygląda tak:
L 07/13/2012 - 17:40:53: [AMXX] [0] QTMCodMod.sma::DotykMiny (line 7809) L 07/13/2012 - 17:40:53: [AMXX] Displaying debug trace (plugin "QTMCodMod.amxx") L 07/13/2012 - 17:40:53: [AMXX] Run time error 4: index out of bounds
Dzięki za pomoc.
d0naciak
13.07.2012
jak macie dawac takie kody to dawajcie je w notatniku...
Spróbuj
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id) && is_user_connected(attacker))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32);
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
if (is_user_alive(pid) && get_user_team(attacker) != get_user_team(pid) && klasa_gracza[pid] != Obronca && klasa_gracza[pid] != General && player_b_antymina[pid] == 0 && (quest_pol[pid] == true && quest_gracza[pid] != 12) && (quest_alkaida[pid] == true && quest_gracza[pid] != 25))
{
new Float:dam = 70.0 - (70.0*redukcja_obrazen_gracza[pid]) + float(inteligencja_gracza[id])
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, dam , 1);
}
remove_entity(ent);
if(ilosc_graczy >= 1 && is_user_connected(pid)){
if(quest_gracza[pid] != -1 && quest_pol[pid] == true) {
switch(quest_gracza[pid]){
case 12:{
ile_juz[pid]++;
zapisz_aktualny_quest(pid)
ColorChat(pid, GREEN, "[Misje]^x03 Rozbroiles mine. Pozostala liczba min do zneutralizowania:^x04 %i", questy_pol[quest_gracza[pid]][1]-ile_juz[pid]);
}
}
}
}
if(ile_juz[pid] >= questy_pol[quest_gracza[pid]][1] && quest_pol[pid] == true)
questy_nagrody(pid)
if(ilosc_graczy >= 1 && is_user_connected(pid)){
if(quest_gracza[pid] != -1 && quest_alkaida[pid] == true) {
switch(quest_gracza[pid]){
case 25:{
ile_juz[pid]++;
zapisz_aktualny_quest(pid)
ColorChat(pid, GREEN, "[Misje]^x03 Rozbroiles mine. Pozostala liczba min do zneutralizowania:^x04 %i", questy_pol[quest_gracza[pid]][1]-ile_juz[pid]);
}
}
}
}
if(ile_juz[pid] >= questy_alkaida[quest_gracza[pid]][1] && quest_alkaida[pid] == true)
questy_nagrody(pid)
}
}
}
Spróbuj