←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Problem z klasą

Locked

  • +
  • -
Cinasek's Photo Cinasek 17.09.2011

Witam. mam problem z klasą Expert TT, ponieważ chciałbym wgrać do niej eliminator rozrzutu ale jednak coś nie idzie. Niech ktoś mnie poprawi.
Od razu proszę o przypisanie go na jakąś flagę obojętnie na jaką byle gracz który go będzie miał nie posiadał jakiś większych uprawnień.


#include <amxmodx>
#include <codmod>
#include <hamsandwich>

#define DMG_BULLET (1<<9)

new const nazwa[] = "Expert TT (VIP)";
new const opis[] = "Posiada AK47, Glock, Granat HE oraz Eliminator rozrzutu";
new const bronie = 1<<CSW_AK47 | 1<<CSW_GLOCK18 | 1<<CSW_HEGRENADE;
new const zdrowie = 20;
new const kondycja = 20;
new const inteligencja = 5;
new const wytrzymalosc = 5;

new bool:ma_klase[33];

public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
}

public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_connected(idattacker))
return HAM_IGNORED;

if(!ma_klase[idattacker])
return HAM_IGNORED;


if(damagebits & DMG_BULLET)
{
new weapon = get_user_weapon(idattacker);
if(weapon == CSW_GLOCK18)
cod_inflict_damage(idattacker, this, float(get_user_health(this))-damage+1.0, 0.0, idinflictor, damagebits);
}

return HAM_IGNORED;
}

public cod_perk_enabled(id)
ma_perk[id] = true;



public PreThink(id)
{
if(ma_perk[id])
set_pev(id, pev_punchangle, {0.0,0.0,0.0})
}

public UpdateClientData(id, sw, cd_handle)
{
if(ma_perk[id])
set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})
}
Edited by Cinasek, 17.09.2011 13:47.
Quote

  • +
  • -
sharkowy's Photo sharkowy 17.09.2011

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
AMX Mod XProblemy z pluginami
do
ModyCall of Duty ModProblemy

Quote

  • +
  • -
radim's Photo radim 17.09.2011

Nie działa Ci bo masz ma_perk[id], a to jest klasa a nie perk :/ Klasa przypisana na flagę "t"
#include <amxmodx>
#include <codmod>
#include <engine>
#include <hamsandwich>
 
#define DMG_BULLET (1<<9)
 
new const nazwa[] = "Expert TT (VIP)";
new const opis[] = "Posiada AK47, Glock, Granat HE oraz Eliminator rozrzutu";
new const bronie = 1<<CSW_AK47 | 1<<CSW_GLOCK18 | 1<<CSW_HEGRENADE;
new const zdrowie = 20;
new const kondycja = 20;
new const inteligencja = 5;
new const wytrzymalosc = 5;
 
new bool:ma_klase[33];
 
public plugin_init()
{
register_plugin(nazwa, "1.0", "QTM_Peyote");
 
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
register_forward(FM_PlayerPreThink, "PreThink");
register_forward(FM_UpdateClientData, "UpdateClientData", 1)
}
 
public cod_class_enabled(id)
{
ma_klase[id] = true;
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[%s] Nie masz uprawnien, aby uzywac tej klasy.", nazwa)
}
return COD_STOP;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public PreThink(id)
{
if(ma_klase[id])
set_pev(id, pev_punchangle, {0.0,0.0,0.0})
}
 
public UpdateClientData(id, sw, cd_handle)
{
if(ma_klase[id])
set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})
}

Edited by radim, 17.09.2011 15:25.
Quote

  • +
  • -
Cinasek's Photo Cinasek 17.09.2011

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

codclass_experttt.sma(6) : warning 201: redefinition of constant/macro (symbol "DMG_BULLET")
codclass_experttt.sma(24) : error 017: undefined symbol "register_forward"
codclass_experttt.sma(24) : warning 215: expression has no effect
codclass_experttt.sma(24) : error 001: expected token: ";", but found ")"
codclass_experttt.sma(24) : error 029: invalid expression, assumed zero
codclass_experttt.sma(24) : fatal error 107: too many error messages on one line

Compilation aborted.
4 Errors.


Coś nadal nie tak jest :/
Quote

  • +
  • -
SeeK's Photo SeeK 17.09.2011

Proszę
#include <amxmodx>
#include <codmod>
#include <engine>
#include <fakemeta_util>
 
new const nazwa[] = "Expert TT (VIP)";
new const opis[] = "Posiada AK47, Glock, Granat HE oraz Eliminator rozrzutu";
new const bronie = 1<<CSW_AK47 | 1<<CSW_GLOCK18 | 1<<CSW_HEGRENADE;
new const zdrowie = 20;
new const kondycja = 20;
new const inteligencja = 5;
new const wytrzymalosc = 5;
 
new bool:ma_klase[33];
 
public plugin_init()
{
    register_plugin(nazwa, "1.0", "SeeK");
    
    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
    register_forward(FM_PlayerPreThink, "PreThink");
    register_forward(FM_UpdateClientData, "UpdateClientData", 1)
}
 
public cod_class_enabled(id)
{
    ma_klase[id] = true;
    if(!(get_user_flags(id) & ADMIN_LEVEL_H))
    {
        client_print(id, print_chat, "[%s] Nie masz uprawnien, aby uzywac tej klasy.", nazwa)
        return COD_STOP
    }
    return COD_CONTINUE
}

public cod_class_disabled(id)
    ma_klase[id] = false;
    
public PreThink(id)
{
    if(ma_klase[id])
        set_pev(id, pev_punchangle, {0.0,0.0,0.0})
}
 
public UpdateClientData(id, sw, cd_handle)
{
    if(ma_klase[id])
        set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})
}

Edited by SeeK, 17.09.2011 16:02.
Quote

  • +
  • -
radim's Photo radim 17.09.2011

Zamiast #include <hamsandwich> wpisujesz #include <fakemeta_util>
Edited by radim, 17.09.2011 15:52.
Quote

  • +
  • -
Cinasek's Photo Cinasek 17.09.2011

Proszę

#include <amxmodx>
#include <codmod>
#include <engine>
#include <fakemeta_util>
 
new const nazwa[] = "Expert TT (VIP)";
new const opis[] = "Posiada AK47, Glock, Granat HE oraz Eliminator rozrzutu";
new const bronie = 1<<CSW_AK47 | 1<<CSW_GLOCK18 | 1<<CSW_HEGRENADE;
new const zdrowie = 20;
new const kondycja = 20;
new const inteligencja = 5;
new const wytrzymalosc = 5;
 
new bool:ma_klase[33];
 
public plugin_init()
{
	register_plugin(nazwa, "1.0", "SeeK");
	
	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
	register_forward(FM_PlayerPreThink, "PreThink");
	register_forward(FM_UpdateClientData, "UpdateClientData", 1)
}
 
public cod_class_enabled(id)
{
	ma_klase[id] = true;
	if(!(get_user_flags(id) & ADMIN_LEVEL_H))
	{
		client_print(id, print_chat, "[%s] Nie masz uprawnien, aby uzywac tej klasy.", nazwa)
		return COD_STOP
	}
	return COD_CONTINUE
}
 
public cod_class_disabled(id)
	ma_klase[id] = false;
	
public PreThink(id)
{
	if(ma_klase[id])
		set_pev(id, pev_punchangle, {0.0,0.0,0.0})
}
 
public UpdateClientData(id, sw, cd_handle)
{
	if(ma_klase[id])
		set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})
}



Już sobie poradziłem :)
Usunąłem linikę return COD_STOP działa bez zarzutów oczywiście plus dla obu :) Dziękuję wam :)
Edited by Cinasek, 17.09.2011 16:11.
Quote

  • +
  • -
radim's Photo radim 17.09.2011

#include <amxmodx>
#include <codmod>
#include <engine>
#include <fakemeta_util>
 
new const nazwa[] = "Expert TT (VIP)";
new const opis[] = "Posiada AK47, Glock, Granat HE oraz Eliminator rozrzutu";
new const bronie = 1<<CSW_AK47 | 1<<CSW_GLOCK18 | 1<<CSW_HEGRENADE;
new const zdrowie = 20;
new const kondycja = 20;
new const inteligencja = 5;
new const wytrzymalosc = 5;
 
new bool:ma_klase[33];
 
public plugin_init()
{
		register_plugin(nazwa, "1.0", "SeeK");
		
		cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
		register_forward(FM_PlayerPreThink, "PreThink");
		register_forward(FM_UpdateClientData, "UpdateClientData", 1)
}
 
public cod_class_enabled(id)
{
		ma_klase[id] = true;
		if(!(get_user_flags(id) & ADMIN_LEVEL_H))
		{
				client_print(id, print_chat, "[%s] Nie masz uprawnien, aby uzywac tej klasy.", nazwa)
				return COD_STOP;
		}
		return COD_CONTINUE;
}
 
public cod_class_disabled(id)
		ma_klase[id] = false;
		
public PreThink(id)
{
		if(ma_klase[id])
				set_pev(id, pev_punchangle, {0.0,0.0,0.0})
}
 
public UpdateClientData(id, sw, cd_handle)
{
		if(ma_klase[id])
				set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})
}
Teraz na 100% będzie działać. SeeK zapomniał średnika ";" po COD_STOP i COD_CONTINUE
Edited by radim, 17.09.2011 16:11.
Quote

  • +
  • -
Cinasek's Photo Cinasek 17.09.2011

Zgadza się działa wystarczyło COD_STOP usunąć ;) Można zamknąć :)
Quote

Adminek AMXX.PL's Photo Adminek AMXX.PL 17.09.2011

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Mozna zamknąć.

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Quote
Locked