←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Inny
Niedziałające perki na serwerze.

SocketS - zdjęcie SocketS 30.03.2015

Witam!

 

Nie dawno stworzyłem serwer z cod modem. Wcześniej testowałem go na HLDS i wszystko było dobrze. A teraz gdy wrzuciłem go na serwer naPukawce, niektóre perki nie działają np. katalizator boga, Scouter który ma 1/1 ze scouta a nie zabija. Co może być przyczyną. Podaje jeden perk kod jest na 100% dobry bo na hlds działał a na pukawce już nie. 

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>
        
#define DMG_BULLET (1<<1)
	
new const perk_name[] = "Scouter";
new const perk_desc[] = "Ma 1/1 ze scouta";
    
new bool:ma_perk[33];

public plugin_init()
{
	register_plugin(perk_name, "1.0", "glut");

	cod_register_perk(perk_name, perk_desc);

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

public cod_perk_enabled(id)
{

	if(random_num(1,2) == 1)

	ma_perk[id] = true;
	cod_give_weapon(id, CSW_SCOUT)

}

public cod_perk_disabled(id)
{
    	ma_perk[id] = false;
	cod_take_weapon(id,CSW_SCOUT)
}
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
        if(!is_user_connected(idattacker))
                return HAM_IGNORED;
        
        if(!ma_perk[idattacker])
                return HAM_IGNORED;
        
        if(!(damagebits & DMG_BULLET))
                return HAM_IGNORED;
                
        if(get_user_weapon(idattacker) == CSW_SCOUT && random_num(1,1) == 1)
                cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
        
        return HAM_IGNORED;
}

Odpowiedz

  • +
  • -
Rivit - zdjęcie Rivit 30.03.2015

Sprawdź

#include <amxmodx>
#include <codmod>
#include <hamsandwich>
        
#define DMG_BULLET (1<<1)
	
new const perk_name[] = "Scouter";
new const perk_desc[] = "Ma 1/1 ze scouta";
    
new bool:ma_perk[33];

public plugin_init()
{
	register_plugin(perk_name, "1.0", "glut");

	cod_register_perk(perk_name, perk_desc);

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

public cod_perk_enabled(id)
{
	if(!random_num(2))
	{
		ma_perk[id] = true;
		cod_give_weapon(id, CSW_SCOUT)
	}
}

public cod_perk_disabled(id)
{
	ma_perk[id] = false;
	cod_take_weapon(id,CSW_SCOUT)
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
	if(!is_user_connected(idattacker))
			return HAM_IGNORED;
        
	if(!ma_perk[idattacker])
			return HAM_IGNORED;
        
	if(!(damagebits & DMG_BULLET))
			return HAM_IGNORED;
                
	if(get_user_weapon(idattacker) == CSW_SCOUT)
			cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
        
	return HAM_IGNORED;
}

Kompiluj kompilatorem pod swojego amxx'a

Odpowiedz

SocketS - zdjęcie SocketS 31.03.2015

Nie zrozumiałeś mnie. Ten perk wcześniej chodził jak inne, tylko jak wrzuciłem paczkę na hosting, to nwm czemu nie działa. Ostatnio edytowałem tylko silnik zmieniałem wygląd /perk i /perk2 ( wzorowałem się z tego por. http://amxx.pl/topic...akie-jak-klasy/). Nwm może w tym coś złe zrobiłem i dlatego nie działa ? Tutaj jest kod z silnika :

public OpisPerku(id, perk, wartosc)
{
	new opis_perku[MAX_WIELKOSC_OPISU];
	new losowa_wartosc[15];
	if(wartosc > -1)
		num_to_str(wartosc, losowa_wartosc, 14);
	else
		format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_perkow[perk], max_wartosci_perkow[perk]);
	
	format(opis_perku, charsmax(opis_perku), opisy_perkow[perk]);
	replace_all(opis_perku, charsmax(opis_perku), "LW", losowa_wartosc);
	
	new opis[416+MAX_WIELKOSC_OPISU];
	format(opis, charsmax(opis), "\d[ \rCall of Duty \w4001lvli\d]^n^n\r|| \wNazwa \yPerku \r||^n\r|| \w%s\r ||^n\r|| \wOpis \yperku\r ||^n\r|| \w%s\r ||^n^n\r|| \wPerk\y#1 \wuzywasz na x \r||^n\r|| \wPerk\y#2 \wuzywasz na c \r||", nazwy_perkow[perk], opis_perku);
	show_menu(id, 1023, opis);
	
	return PLUGIN_CONTINUE;
}

public OpisPerku2(id, perk, wartosc)
{
	new opis_perku[MAX_WIELKOSC_OPISU];
	new losowa_wartosc[15];
	if(wartosc > -1)
		num_to_str(wartosc, losowa_wartosc, 14);
	else
		format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_perkow[perk], max_wartosci_perkow[perk]);
	
	format(opis_perku, charsmax(opis_perku), opisy_perkow[perk]);
	replace_all(opis_perku, charsmax(opis_perku), "LW", losowa_wartosc);
	
	client_print(id, print_chat, "Perk: %s.", nazwy_perkow[perk]);
	client_print(id, print_chat, "Opis: %s.", opis_perku);
}

public OpisPerkow(id)
{
	new menu = menu_create("Wybierz Perk:", "OpisPerkow_Handle");
	for(new i=1; i <= ilosc_perkow; i++)
		menu_additem(menu, nazwy_perkow[i]);
	menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
	menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
	menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
	menu_display(id, menu);
	client_cmd(id, "spk QTM_CodMod/select");
}

public OpisPerkow_Handle(id, menu, item)
{
	if(item++ == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_CONTINUE;
	}
	OpisPerku2(id, item, -1);
	OpisPerkow(id);
	return PLUGIN_CONTINUE;
}

Czy to jest dobrze?

Odpowiedz