←  Problemy z pluginami

AMXX.pl: Support AMX Mod X i SourceMod

»

Problem z dodaniem Broni od lvla SURF XP MOD

  • +
  • -
crouCH - zdjęcie crouCH 05.07.2014

Siemq. Mam pewien problem. 

Tworzę serwer SURF XP MOD, wszystko idzie pięknie. Jednak gdy chcę dodać Broń z modelem, zwiększonymi obrażeniami i od lvla, to po prostu go nie ma...

Robię tak:

Na start wgrywam folder o nazwie: Bronie do models. W folderze mam swój model broni: v_glock18.

Potem w głównym pluginie dopisuje precache_model("models/Bronie/v_glock18.mdl"), zjeżdżam niżej i wpisuje 

 

        if(Weapon_Id == CSW_GLOCK18 && PLEVEL[ id ] >= 15 ) 
        
        set_pev(id, pev_viewmodel2, "models/customs/v_glock183.mdl")
 
następnie jadę niżej i wpisuje:
 
}
            if(get_user_weapon(attacker) == CSW_GLOCK18 && PLEVEL[ attacker ] >= 15)
{
            SetHamParamFloat(4, damage * 1.5)
            return HAM_HANDLED
 
Zapisuje, restartuje serwer, wbijam ten 15lv, jednak mojego modelu nie ma.. Może mi ktoś dokładnie napisać jak dodać taki model lv i obrazenia do broni? Czy po prostu robię coś źle?

 

Odpowiedz

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

Pamiętaj aby było to w funkcji CurWeapon:

public CurWeapon(id)
{
        if(get_user_weapon(id) == CSW_GLOCK18)
            {
                entity_set_string(id, EV_SZ_viewmodel, "models/Bronie/v_glock18.mdl")
            }
return PLUGIN_CONTINUE;
}

i zarejestruj event w plugin_init()

register_event("CurWeapon","CurWeapon","be", "1=1");

Model pobierasz dobrze, inaczej by się crashowało.

A funkcja od obrażeń powinna wyglądać mniej więcej tak:

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
    if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker))
        return HAM_IGNORED;
    
    new weapon = get_user_weapon(idattacker);

if(weapon(idattacker) == CSW_GLOCK && PLEVEL[ idattacker ] >= 15)
     damage *= 1.5


SetHamParamFloat(4, damage);
    return HAM_IGNORED;
}

I także nie zapomnij zarejestrować jej w plugin_init:

RegisterHam(Ham_TakeDamage, "player", "TakeDamage");

Jeżeli dalej nie działa, dodaj debug po nazwie pluginu w plugins.ini i obserwuj error logi.

Odpowiedz

  • +
  • -
HS4U - zdjęcie HS4U 05.07.2014

Proszę, tu masz wszystko ładnie wytłumaczone.

http://amxx.pl/topic...e-nowych-broni/

Odpowiedz

  • +
  • -
crouCH - zdjęcie crouCH 05.07.2014

Dzięki Sniper za pomoc. Zadziałało. Jednak mam kolejny problem.. po restarcie serwera wszystkie LVL'e się usuwają.

Odpowiedz