←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Kiedy używamy "return"


Najlepsza odpowiedź Fili:P 24.04.2013 17:40

Ten error mówi że w jednym miejscu w kodzie używasz "return", a w innym "return wartość". Przyjmij jeden sposób na plugin.

Przejdź do postu
Zablokowany

Koniarek - zdjęcie Koniarek 24.04.2013

Siemka, chcę się dowiedzieć kiedy używamy return,return PLUGIN_HANDLED itp... Mam kod niżej ale sypią się błędy

 

public toucharrow(arrow, id)
{
new kid = entity_get_edict(arrow, EV_ENT_owner)
new lid = entity_get_edict(arrow, EV_ENT_enemy)
 
if(is_user_alive(id)){
if(kid == id || lid == id) return
 
entity_set_edict(arrow, EV_ENT_enemy,id)
 
new Float:dmg = entity_get_float(arrow,EV_FL_dmg)
entity_set_float(arrow,EV_FL_dmg,(dmg*3.0)/5.0)
 
if(get_cvar_num("mp_friendlyfire") == 0 && get_user_team(id) == get_user_team(kid)) return
 
if(anty_bolt[id] > 0) return PLUGIN_CONTINUE;
//if(anty_bolt[id] > 0) continue;
//if(anty_bolt[id] > 0) return PLUGIN_HANDLED;
 
Effect_Bleed(id,248)
bowdelay[kid] -=  0.5 - floatround(player_intelligence[kid]/5.0)
 
ExecuteHam(Ham_TakeDamage,id,kid,kid,dmg,(1<<1) | (1<<12))
 
message_begin(MSG_ONE,get_user_msgid("ScreenShake"),{0,0,0},id);
write_short(7<<14);
write_short(1<<13);
write_short(1<<14);
message_end();
 
emit_sound(id, CHAN_ITEM, "weapons/knife_hit4.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
if(dmg<30) remove_entity(arrow)
}
}

 

error 078: function uses both "return" and "return <value>"
 

 

Odpowiedz

  • +
  • -
Najlepsza odpowiedź Fili:P - zdjęcie Fili:P 24.04.2013

Ten error mówi że w jednym miejscu w kodzie używasz "return", a w innym "return wartość". Przyjmij jeden sposób na plugin.

Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 24.04.2013

Kiedy używamy return? Kiedy coś zwracamy.

_HANDLED, _CONTINUE, _HANDLED_MAIN? Zależy co chcesz osiągnąć, wałkowane to już było parę razy, szukajka się kłania, jak i też biblioteki, a dokładniej amxconst.inc (const - stałe, czyli właśnie te enumy tam się znajdują :) )

 

Proszę wycinek o PLUGIN_CONTINUE etc.

#define PLUGIN_CONTINUE        0    /* Results returned by public functions */
#define PLUGIN_HANDLED        1    /* stop other plugins */
#define PLUGIN_HANDLED_MAIN    2    /* to use in client_command(), continue all plugins but stop the command */

 

(return 0 == return PLUGIN_CONTINUE - poczytaj o enum :D )

Jeżeli nie rozumiesz komentarzy użyj wyszukiwarki, a znajdziesz z pewnością temat, w którym zostało tam pięknie opisane.

Odpowiedz
Zablokowany