←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
[ROZWIĄZANE] Blokowanie broni poprzez perk


Najlepsza odpowiedź (Kalifta) 07.09.2013 16:32

#include <amxmodx>


#include <amxmisc>


#include <codmod>


#include <hamsandwich>


#include <cstrike>


#include <fakemeta>


#include <fun>



new ostatnio_prawym[33];



new ma_perk[33];



new const perk_name[] = "Predator"


new const perk_desc[] = "Masz tylko kose, 1/1 z niej, dodatkowe 600HP i widzisz niewidzialnych."



public plugin_init()

    

{


register_plugin(perk_name, "1.0", "Kalifta")


cod_register_perk(perk_name, perk_desc)


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


RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fwPrimaryAttack_JedenCios");


RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fwSecondaryAttack_JedenCios");


RegisterHam(Ham_Spawn, "player", "Spawn",1);


register_forward(FM_AddToFullPack, "FwdAddToFullPack", 1)


}



public cod_perk_enabled(id)


{


ma_perk[id] = true


cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0) +600)


}






public cod_perk_disabled(id)


{


ma_perk[id] = false;


cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0) -600);


}






public Spawn(id)


{


if(ma_perk[id])

    

    strip_user_weapons(id)

    

    cod_give_weapon(id, CSW_KNIFE)

    

}


public FwdAddToFullPack(es_handle, e, ent, host, hostflags, player, pSet)

    


{



if(!is_user_connected(host) || !is_user_connected(ent))

    

    

    return;

    

    

    

    

    

    if(!ma_perk[host])

        

    

    return;

    

    

    

    

    

    set_es(es_handle, ES_RenderAmt, 255.0);

    

    

}

public fwTakeDamage_JedenCios(id, ent, attacker)
{
    if(is_user_alive(attacker) && ma_klase[attacker] && get_user_weapon(attacker) == CSW_KNIFE && !ostatnio_prawym[id])
    {
        cs_set_user_armor(id, 0, CS_ARMOR_NONE);
        SetHamParamFloat(4, float(get_user_health(id) + 1));
        return HAM_HANDLED;
    }
    return HAM_IGNORED;
}

public fwPrimaryAttack_JedenCios(ent)
{
    new id = pev(ent, pev_owner);
    ostatnio_prawym[id] = 0;
}

public fwSecondaryAttack_JedenCios(ent)
{
    new id = pev(ent, pev_owner);
    ostatnio_prawym[id] = 1;
}

Przejdź do postu
Zablokowany

  • +
  • -
QuatZo - zdjęcie QuatZo 01.09.2013

Witajcie. Od dwóch dni nie potrafię poradzić sobie z dwoma perkami. Dokładniej chodzi mi o to, iż w opisie mają teksty typu: "Posiada TYLKO kosę" lub "Posiada USP", lecz perk nie wyrzuca (ani nie blokuje) broni, które ma klasa. Próbowałem już na wszelkie (znane mi) sposoby. Nie potrafię tego zrobić, dlatego mam pytanie do Was: Jak takie coś zrobić? Dodaję pliki *.sma w załączniku, gdyby ktoś był ciekaw kodu.

Załączone pliki

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 01.09.2013

Skorzystaj z fakamety_util lub:

http://amxx.pl/topic...a-ma-tylko-noz/

Odpowiedz

  • +
  • -
QuatZo - zdjęcie QuatZo 01.09.2013

Z tego korzystałem i nadal nie działało :(

Odpowiedz

  • +
  • -
QuatZo - zdjęcie QuatZo 05.09.2013

Dałby ktoś radę pomóc?
Odpowiedz

(Kalifta) - zdjęcie (Kalifta) 06.09.2013

Prosty, a za razem skuteczny sposób, może niezbyt optymalny ale działa:

Edytujesz klasę.

Do includów:

#include <hamsandwich>
#include <fun>

Do plugin_init:

    RegisterHam(Ham_Spawn, "player", "Spawn", 1);

I na koniec sma

public Spawn(id)
{
    if(ma_klase[id])
    {
        strip_user_weapons(id);
        give_item(id,"weapon_knife");
    }
}

Tylko sprawdź czy nie zabiera ci paki.


Użytkownik (Kalifta) edytował ten post 06.09.2013 13:16
Odpowiedz

  • +
  • -
QuatZo - zdjęcie QuatZo 06.09.2013

@(Kalifta):

Dzięki, działa. Teraz, gdy dodałem to, nie dodaje HP, gdy ktoś ma perk Predator, a powinno dodawać :(

Odpowiedz

(Kalifta) - zdjęcie (Kalifta) 06.09.2013

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <fun>

new ostatnio_prawym[33];

new ma_perk[33];

new const perk_name[] = "Predator"
new const perk_desc[] = "Masz tylko kose, 1/1 z niej, dodatkowe 600HP i widzisz niewidzialnych."

public plugin_init()
{
    register_plugin(perk_name, "1.0", "Kalifta")
    cod_register_perk(perk_name, perk_desc)
    RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenCios");
    RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fwPrimaryAttack_JedenCios");
    RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fwSecondaryAttack_JedenCios");
    RegisterHam(Ham_Spawn, "player", "Spawn",1);
    register_forward(FM_AddToFullPack, "FwdAddToFullPack", 1)
}

public cod_perk_enabled(id)
{
    ma_perk[id] = true
    cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0) +600)
}
              


public cod_perk_disabled(id)
{
    ma_perk[id] = false;
    cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0) -600);
}

public fwTakeDamage_JedenCios(id, ent, attacker)
{
    if(is_user_alive(attacker) && ma_perk[attacker] && get_user_weapon(attacker) == CSW_KNIFE && ostatnio_prawym[id])
    {
        cs_set_user_armor(id, 0, CS_ARMOR_NONE);
        SetHamParamFloat(4, float(get_user_health(id) + 1));
        return HAM_HANDLED;
    }
    return HAM_IGNORED;
}

public fwPrimaryAttack_JedenCios(ent)
{
    new id = pev(ent, pev_owner);
    ostatnio_prawym[id] = 1;
}

public fwSecondaryAttack_JedenCios(ent)
{
    new id = pev(ent, pev_owner);
    ostatnio_prawym[id] = 0;
}

public Spawn(id)
{
    if(ma_perk[id])
    strip_user_weapons(id)
    cod_give_weapon(id, CSW_KNIFE)
}
public FwdAddToFullPack(es_handle, e, ent, host, hostflags, player, pSet)

{

    if(!is_user_connected(host) || !is_user_connected(ent))

        return;

        

    if(!ma_perk[host])

        return;

        

    set_es(es_handle, ES_RenderAmt, 255.0);

}

 

Dołączam poprawioną wersję.

Mała rada, dla perków stosujemy cod_set_user_bonus_health.

 

 

Odpowiedz

  • +
  • -
QuatZo - zdjęcie QuatZo 07.09.2013

Nie działa 1/1 z PPM w tym pluginie (biję po 30 w 1-szy lvl), a klasy z 1/1 z PPM działają. Dałbyś radę to naprawić?

Odpowiedz

(Kalifta) - zdjęcie (Kalifta) 07.09.2013

Spoiler

 

Zobacz to.

Odpowiedz

  • +
  • -
QuatZo - zdjęcie QuatZo 07.09.2013

Działa 1/1 z PPM, tak jak z LPM, a ja chciałbym tylko PPM.

Odpowiedz

Najlepsza odpowiedź (Kalifta) - zdjęcie (Kalifta) 07.09.2013

#include <amxmodx>


#include <amxmisc>


#include <codmod>


#include <hamsandwich>


#include <cstrike>


#include <fakemeta>


#include <fun>



new ostatnio_prawym[33];



new ma_perk[33];



new const perk_name[] = "Predator"


new const perk_desc[] = "Masz tylko kose, 1/1 z niej, dodatkowe 600HP i widzisz niewidzialnych."



public plugin_init()

    

{


register_plugin(perk_name, "1.0", "Kalifta")


cod_register_perk(perk_name, perk_desc)


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


RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fwPrimaryAttack_JedenCios");


RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fwSecondaryAttack_JedenCios");


RegisterHam(Ham_Spawn, "player", "Spawn",1);


register_forward(FM_AddToFullPack, "FwdAddToFullPack", 1)


}



public cod_perk_enabled(id)


{


ma_perk[id] = true


cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0) +600)


}






public cod_perk_disabled(id)


{


ma_perk[id] = false;


cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0) -600);


}






public Spawn(id)


{


if(ma_perk[id])

    

    strip_user_weapons(id)

    

    cod_give_weapon(id, CSW_KNIFE)

    

}


public FwdAddToFullPack(es_handle, e, ent, host, hostflags, player, pSet)

    


{



if(!is_user_connected(host) || !is_user_connected(ent))

    

    

    return;

    

    

    

    

    

    if(!ma_perk[host])

        

    

    return;

    

    

    

    

    

    set_es(es_handle, ES_RenderAmt, 255.0);

    

    

}

public fwTakeDamage_JedenCios(id, ent, attacker)
{
    if(is_user_alive(attacker) && ma_klase[attacker] && get_user_weapon(attacker) == CSW_KNIFE && !ostatnio_prawym[id])
    {
        cs_set_user_armor(id, 0, CS_ARMOR_NONE);
        SetHamParamFloat(4, float(get_user_health(id) + 1));
        return HAM_HANDLED;
    }
    return HAM_IGNORED;
}

public fwPrimaryAttack_JedenCios(ent)
{
    new id = pev(ent, pev_owner);
    ostatnio_prawym[id] = 0;
}

public fwSecondaryAttack_JedenCios(ent)
{
    new id = pev(ent, pev_owner);
    ostatnio_prawym[id] = 1;
}

Odpowiedz

  • +
  • -
mastah7991 - zdjęcie mastah7991 07.09.2013

strip user weapons

zuy pomysl
powody:
jesli jestes w tt i masz pake to ja tracisz
gdy jestes ostatnim tt i zlapiesz pakke to ci ja zabiera ;x
Odpowiedz
Zablokowany