←  Prośby o Klasę/Perk

AMXX.pl: Support AMX Mod X i SourceMod

»

Klasa
Prośba o zedytowanie klasy Bałwan

  • +
  • -
Kappel - zdjęcie Kappel 15.12.2014

Witam prosiłbym o zedytowanie klasy Bałwan tak aby granat nie wybóchał lecz przy trafieniu prosto w wroga zabijał![I jaszcze aby dostawal he od razu po rzuceniu]

#include <amxmodx>
#include <codmod>
#include <fun>

new const nazwa[] = "Balwan";
new const opis[] = "Co 15s dostaje he ktory nie wybucha ale jesli trafisz w przeciwnika zabija go";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new bool:ma_klase[33];

public plugin_init() {
	register_plugin(nazwa, "1.0", "MarWit");
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}


public cod_class_enabled(id){
	ma_klase[id] = true;
	set_task(10.0, "DajHE", id+857, _, _, "b")
}

public cod_class_disabled(id){
	ma_klase[id] = false;
	remove_task(id+857);
}


public DajHE(id)
{
	id-=857
	new granat[] = { CSW_HEGRENADE }
	
	if(!ma_klase[id] || !is_user_alive(id) || sprawdz_bronie(id, granat)) return PLUGIN_CONTINUE
	
	cod_give_weapon(id, CSW_HEGRENADE)
	return PLUGIN_CONTINUE
}

stock bool:sprawdz_bronie(id, disallowed[], ile = sizeof(disallowed)) {
	new weapons[32], num, pwpns, bool:has = false;
	pwpns = get_user_weapons(id, weapons, num);
	for(new i=0; i<ile; i++) {
		if(pwpns & (1<<disallowed[i])) {
			has = true;
			break;
		}
	}
	return has;
}


Odpowiedz

Kubaa - zdjęcie Kubaa 16.12.2014

www.amxx.pl/topic/80824-dodatkowe-dmg-dla-klasy/
Odpowiedz

  • +
  • -
Kappel - zdjęcie Kappel 16.12.2014

Nie chodzi mi o zwiększony dmg..

Odpowiedz

Kubaa - zdjęcie Kubaa 16.12.2014

Kappel możesz ustawić dmg 99999999


Ale proszę:
www.amxx.pl/topic/61435-jak-ustawic-1x-szans-na-zabicie-z-wybranej-broni/
Odpowiedz

  • +
  • -
Linux' - zdjęcie Linux' 16.12.2014

Sprawdz.

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

new Array:gaMyCoolGrenades[33];
new gszGrenadeTemp[33];
new ma_klase[33];

new const nazwa[] = "Balwan";
new const opis[] = "Co 15s dostaje he ktory nie wybucha ale jesli trafisz w przeciwnika zabija go";
new const bronie = 1<<CSW_KNIFE;
new const zdrowie = 0;
new const kondycja = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;

public plugin_init()
{
    register_plugin(nazwa, "1.0", "MarWit & Window");
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

    RegisterHam(Ham_Think, "grenade", "hamGrenadeThink");
    RegisterHam(Ham_Killed, "player", "hamPlayerKilled");

    for( new i = 0; i < 32; i++ )
        gaMyCoolGrenades[ i ] = ArrayCreate();
}
public cod_class_enabled(id)
{
    ma_klase[id] = true;
    set_task(10.0, "DajHE", id+857, _, _, "b")
}
public cod_class_disabled(id)
{
    ma_klase[id] = false;
    remove_task(id+857);
}
public DajHE(id)
{
    id-=857
    new granat[] = {CSW_HEGRENADE}
    
    if(!ma_klase[id] || !is_user_alive(id) || sprawdz_bronie(id, granat))
        return PLUGIN_CONTINUE;
    
    cod_give_weapon(id, CSW_HEGRENADE)
    return PLUGIN_CONTINUE
}
stock bool:sprawdz_bronie(id, disallowed[], ile = sizeof(disallowed))
{
    new weapons[32], num, pwpns, bool:has = false;
    pwpns = get_user_weapons(id, weapons, num);
    for(new i=0; i<ile; i++)
    {
        if(pwpns & (1<<disallowed[i]))
        {
            has = true;
            break;
        }
    }
    return has;
}
public plugin_end()
    for( new i = 0; i < 32; i++ )
        ArrayDestroy(gaMyCoolGrenades[i]);

public hamGrenadeThink(iGrenade)
{
    pev(iGrenade, pev_model, gszGrenadeTemp, 32);

    if(containi(gszGrenadeTemp, "w_hegren") == -1)
        return HAM_IGNORED;

    ArrayPushCell(gaMyCoolGrenades[pev(iGrenade, pev_owner)], iGrenade);
    SetHamParamFloat(4, float(get_user_health(read_data(2))+1));

    return HAM_SUPERCEDE;
}
public hamPlayerKilled(id, iAttacker, bShouldgibs)
{
    while(ArraySize(gaMyCoolGrenades[id]))
    {
        ExecuteHam(Ham_Think, ArrayGetCell(gaMyCoolGrenades[id], 0));
        ArrayDeleteItem(gaMyCoolGrenades[id], 0);
    }

}
Odpowiedz

  • +
  • -
Kappel - zdjęcie Kappel 16.12.2014

Która linijka odpowiada za czas dodania granatu? Jakbym chciał np ustawić granat dostaje co 3s

 

 

 

@window nie da się skomplikować


Użytkownik Kappel edytował ten post 16.12.2014 20:45
Odpowiedz

  • +
  • -
Linux' - zdjęcie Linux' 16.12.2014

Która linijka odpowiada za czas dodania granatu? Jakbym chciał np ustawić granat dostaje co 3s

 

 

 

@window nie da się skomplikować

set_task(10.0, "DajHE", id+857, _, _, "b")

10.0 to czas, jak chcesz zmienic na 3s to ustawiasz 3.0.

 

 

Kompiluje się tylko to też trzeba umieć. Pobierz plik amxx.

Załączone pliki

  • Załączony plik  1.sma   2,27 KB   26 Ilość pobrań
Odpowiedz

  • +
  • -
Kappel - zdjęcie Kappel 17.12.2014

A dało by radę zmienić granatowi model v_ w_ i p_ ?

 

Odpowiedz

  • +
  • -
Kappel - zdjęcie Kappel 17.12.2014

@window granat wybucha a nie ma dało by radę to naprawić? Albo zamiast he dać np flasha który nie oślepia?

Odpowiedz