←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

podwójny frag za zabicie

  • +
  • -
Rob Zombie ` - zdjęcie Rob Zombie ` 03.06.2012

Witam,

Na pomysł pewnego człowieka zrobiłem plugin, lecz coś mi w nim nie działa

/* Plugin generated by AMXX-Studio */

#include <amxmisc>
#include <fun>
#include <ColorChat>

#define minut(%1) ((%1)*60.0)

new hs_kills
new pcvarOdgodziny,
	   pcvarDogodziny;


public plugin_init()
{
    
    register_event("DeathMsg","deathmsg","ae")
    
    hs_kills = register_cvar("amx_hs-kills", "2")

    pcvarOdgodziny = register_cvar("hs_odgodziny", "18");
    pcvarDogodziny = register_cvar("hs_dogodziny", "19");
    
    
    register_concmd("hs_przeladuj", "Sprawdz", ADMIN_IMMUNITY);
    
    set_task(1.0, "Sprawdz");
    
    set_task(240.0, "PokazInfo", _, _, _, "b");
}

public deathmsg(id)
{     
    new id = read_data(1)    
    new victim = read_data(2)    
    new headshot = read_data(3)   
    
    new frags = get_user_frags(id)
    new hsKills = get_pcvar_num(hs_kills) -1
    
    if (!is_user_alive(id) || !headshot )	    
        return PLUGIN_CONTINUE	     
    
    if (get_user_team(id) == get_user_team(victim))	     
        set_user_frags(id, frags - hsKills)    
    else	     
        set_user_frags(id, frags + hsKills)				    
    return PLUGIN_CONTINUE
}

public Sprawdz()
{    
    new timestr[3];
    
    get_time("%H", timestr, 2);
    new godzina = str_to_num(timestr);
    
    new bool:aktywne;
    
    new odgodziny = get_pcvar_num(pcvarOdgodziny),
   	  dogodziny = get_pcvar_num(pcvarDogodziny);
    
    if(odgodziny > dogodziny)
    {
        if(godzina >= odgodziny || godzina < dogodziny)
            aktywne = true;
    }
    else
    {
        if(godzina >= odgodziny && godzina < dogodziny)
            aktywne = true;
    }        
    
    if(aktywne)
    
    get_time("%M", timestr, 2);
    new minuta = str_to_num(timestr);
    
    set_task(minut(60-minuta), "Sprawdz");
}

public PokazInfo()
    ColorChat(0, GREEN, "[HS] Na serwerze dzialaja 2 zabicia za HS O GODZINACH !");


podwójne zabicie działa, lecz w każdej porze, a mi chodzi żeby był w wyznaczonych godzinach przez cvar ;> Pomocy!
Odpowiedz

  • +
  • -
wlochen - zdjęcie wlochen 04.06.2012

nie znam sie na tym ale czy nie powinno się pierw sprawdzać godzine a później if 18 || 19 to 2x ?
Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 04.06.2012

1. bool:aktywne powinno być zmienną globalną, nie lokalną
2. w deathmsg musisz sprawdzać, czy aktywne jest ustawione na true, czy na false. Jeśli na true to zezwalasz na 2x za headshota, jeśli nie jest to liczysz normalnie.
Odpowiedz