←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
[ULEPSZENIE] Klasa od danego lvl v2

  • +
  • -
dredek - zdjęcie dredek 27.01.2015

Dodatek: http://amxx.pl/topic...danego-poziomu/

Poradnik różni się tym, że po wejściu na serwer z wymaganym lvl'em nie trzeba pierw wchodzić na klasę z wbitym lvl'em tylko można od razu wybrać klasę od lvl'a i nią grać (takie małe ułatwienie).

 

Dodajemy zmienną:

 

new ma_klase[33];

 

Szukamy:

 

public cod_class_enabled(id)

 

 

Pod tym dodajemy:

 

 

        new dostepna = 101;   /// od ktorego lvla ma byc dostepna klasa

        if(cod_is_user_has_level(id, dostepna) != 1)
        {
                client_print(id, print_chat, "[%s] Klasa dostepna od %i poziomu.", nazwa, dostepna)
                return COD_STOP;
        }

        ma_klase[id] = true;
        return COD_CONTINUE;

 

Na końcu dodajemy stock:

 

stock cod_is_user_has_level(id, level)
{
    static iPlugin, iFunction, bool:iChecked;
    new szFunction[] = "WczytajDane";
    
    if(!iChecked)
    {
        new szPlugin[] = "QTM_CodMod.amxx";
    
        new iPlugins = get_pluginsnum();
        new szPluginName[64];
        for(new i=0;i<iPlugins;i++)
        {
            get_plugin(i, szPluginName, charsmax(szPluginName));
            
            if(equal(szPlugin, szPluginName))
            {
                iPlugin = i;
                break;
            }
        }
        
        iFunction = get_func_id(szFunction, iPlugin);
        
        iChecked = true;
    }
    
    if(iFunction == -1)
    {
        new szMessage[128];
        formatex(szMessage, charsmax(szMessage), "Could not find %s function.", szFunction);
        log_error(AMX_ERR_NOTFOUND, szMessage);
        return -1;
    }
        
    new iClasses = cod_get_classes_num();
    new iPlayerClass = cod_get_user_class(id);
    new iValue;
    
    for(new i=1;i<=iClasses;i++)
    {
        callfunc_begin_i(iFunction, iPlugin);
        callfunc_push_int(id);
        callfunc_push_int(i);
        callfunc_end();
        
        if(cod_get_user_level(id) >= level)
        {
            iValue = 1;
            break;
        }
    }
    callfunc_begin_i(iFunction, iPlugin);
    callfunc_push_int(id);
    callfunc_push_int(iPlayerClass);
    callfunc_end();
    
    return iValue;
}

 

 

Przykładowa klasa od lvl'a:

 

Spoiler

 

Odpowiedz