←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Stary
Miny - errory w logach

  • +
  • -
Sniper Elite - zdjęcie 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?

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.
Odpowiedz

  • +
  • -
d0naciak - zdjęcie d0naciak 13.07.2012

jak macie dawac takie kody to dawajcie je w notatniku...
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
Odpowiedz

  • +
  • -
Sniper Elite - zdjęcie Sniper Elite 13.07.2012

teraz to miny nie zadają obrażeń
Odpowiedz