Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
Klasa

[ROZWIĄZANE] Prośba o poprawienia klasy

klasa

  • Zamknięty Temat jest zamknięty
3 odpowiedzi w tym temacie

#1 MrGrafi2K

    Pomocny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:46
  • Lokalizacja:Krokowo
Offline

Napisano 02.08.2013 09:43

Witam mam problem w prze kompilowaniu klasy premium

Czolgista [P]  -   wyskakują jakieś błędy:

#include <amxmodx>
#include <cstrike>
#include <fakemeta_util>
#include <hamsandwich>
#include <codmod>
#include <ColorChat>

#define MAX 32

#define nazwa "Czolgista [P]"
#define opis "Dostaje Bazuke za P228"

new const bronie = 1<<CSW_GALIL|1<<CSW_P228;
new const zdrowie = 20;
new const kondycja = -10;
new const inteligencja = 5;
new const wytrzymalosc = 10;

if(!(get_user_flags(id) & ADMIN_LEVEL_H))

new bool:wystrzelony[MAX+1][MAX+1];	
new bool:ma_klase[MAX+1], bool:has_weapon[MAX+1], bool:reloading[MAX+1], rockets[MAX+1], Float:idle[MAX+1];
new sprite_blast, sprite_nadeexp, sprite_smoke, sprite_trail;

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

	RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
	RegisterHam(Ham_Item_Deploy, "weapon_p228", "Weapon_Deploy", 1);
	RegisterHam(Ham_Weapon_WeaponIdle, "weapon_p228", "Weapon_WeaponIdle");
	
	register_forward(FM_CmdStart, "CmdStart");
	register_forward(FM_SetModel, "SetModel");
	register_forward(FM_Touch, "fw_Touch")
	
	register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
	
	register_cvar("cod_law_damage", "120.0");
	register_cvar("cod_law_radius", "250.0");
	register_cvar("cod_law_rockets", "15");
}

public plugin_precache()
{
	sprite_blast = precache_model("sprites/dexplo.spr");
	sprite_smoke = precache_model("sprites/steam1.spr");
	sprite_nadeexp = precache_model("sprites/law_exp.spr");
	sprite_trail = precache_model("sprites/smoke.spr");

	precache_model("models/p_law.mdl");
	precache_model("models/w_law.mdl");
	precache_model("models/v_law.mdl");
	precache_model("models/s_grenade.mdl");
	precache_sound("weapons/law_shoot1.wav");
}

public cod_class_enabled(id)
{
	ColorChat(id, RED, "Aby kupić klase premium, pisz gg 45255899", nazwa);
	if(!(get_user_flags(id) & ADMIN_LEVEL_H)) //FLAGA
	{
		ColorChat(id, RED, "Czolgista [E]", nazwa) 
		return COD_STOP;
	}
	ma_klase[id] = true;
	return COD_CONTINUE;
}

	Odrodzenie(id)
}

public cod_class_disabled(id)
{
	ma_klase[id] = false;
	has_weapon[id] = false;
	rockets[id] = 0;
}

public Odrodzenie(id)
{
	if(is_user_alive(id) && ma_klase[id])
	{
		has_weapon[id] = true;
		rockets[id] = get_cvar_num("cod_law_rockets");
	}	
}
	
public CmdStart(id, uc)
{
	if(!is_user_alive(id))
		return FMRES_IGNORED;
	
	new weapon = get_user_weapon(id);
	if(weapon == 1 && has_weapon[id])
	{ 
		new button = get_uc(uc, UC_Buttons);
		new ent = fm_find_ent_by_owner(-1, "weapon_p228", id);
		
		if(button & IN_ATTACK)
		{
			button &= ~IN_ATTACK;
			set_uc(uc, UC_Buttons, button);
			
			if(!rockets[id] || reloading[id] || !idle[id]) 
				return FMRES_IGNORED;
			if(idle[id] && (get_gametime()-idle[id]<=0.4)) 
				return FMRES_IGNORED;
		
			new Float:Origin[3], Float:Angle[3], Float:Velocity[3];
			pev(id, pev_origin, Origin);
			pev(id, pev_v_angle, Angle);
			velocity_by_aim(id, 1000, Velocity);
			
			Angle[0] *= -1.0
			
			new ent = fm_create_entity("info_target")
			set_pev(ent, pev_classname, "rocket");
			engfunc(EngFunc_SetModel, ent, "models/s_grenade.mdl");
			
			set_pev(ent, pev_solid, SOLID_BBOX);
			set_pev(ent, pev_movetype, MOVETYPE_TOSS);
			set_pev(ent, pev_owner, id);
			set_pev(ent, pev_mins, Float:{-1.0, -1.0, -1.0});
			set_pev(ent, pev_maxs, Float:{1.0, 1.0, 1.0});
			set_pev(ent, pev_gravity, 0.35);
			
			set_pev(ent, pev_origin, Origin);
			set_pev(ent, pev_velocity, Velocity);
			set_pev(ent, pev_angles, Angle);
			
			message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
			write_byte(TE_BEAMFOLLOW)
			write_short(ent)
			write_short(sprite_trail)
			write_byte(6)
			write_byte(3)
			write_byte(224)	
			write_byte(224)	
			write_byte(255)
			write_byte(100)
			message_end()	
			
			set_pev(id, pev_weaponanim, 7);
			new entwpn = fm_find_ent_by_owner(-1, "weapon_p228", id)
			if(entwpn)
				set_pdata_float(entwpn, 48, 1.5+3.0, 4)
			set_pdata_float(id, 83, 1.5, 4)
			
			reloading[id] = true;
			emit_sound(id, CHAN_WEAPON, "weapons/law_shoot1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
			
			if(task_exists(id+3512)) 
				remove_task(id+3512)
			
			set_task(1.5, "task_launcher_reload", id+3512)
			rockets[id]--;
		}
		else if(button & IN_RELOAD)
		{
			button &= ~IN_RELOAD;
			set_uc(uc, UC_Buttons, button);
			
			set_pev(id, pev_weaponanim, 0);
			set_pdata_float(id, 83, 0.5, 4);
			if(ent)
				set_pdata_float(ent, 48, 0.5+3.0, 4);
		}
		
		if(ent)
			cs_set_weapon_ammo(ent, -1);
		cs_set_user_bpammo(id, 1, rockets[id]);		
	}
	else if(weapon != 1 && has_weapon[id])
		idle[id] = 0.0;
		
	return FMRES_IGNORED;
}	

public Weapon_Deploy(ent)
{
	new id = get_pdata_cbase(ent, 41, 4);
	if(has_weapon[id])
	{
		set_pev(id, pev_viewmodel2, "models/v_law.mdl");
		set_pev(id, pev_weaponmodel2, "models/p_law.mdl");
	}
	return PLUGIN_CONTINUE;
}

public Weapon_WeaponIdle(ent)
{
	new id = get_pdata_cbase(ent, 41, 4);
	if(get_user_weapon(id) == 1 && has_weapon[id])
	{
		if(!idle[id]) 
			idle[id] = get_gametime();
	}
}

public SetModel(ent, model[])
{
	if(!pev_valid(ent))
		return FMRES_IGNORED
	
	if(!equal(model, "models/w_p228.mdl")) 
		return FMRES_IGNORED;

	new id = pev(ent, pev_owner);
	if(!has_weapon[id])
		return FMRES_IGNORED;

	engfunc(EngFunc_SetModel, ent, "models/w_law.mdl");
	set_pev(ent, pev_iuser4, rockets[id]);
	has_weapon[id] = false;
	return FMRES_SUPERCEDE;
}

public task_launcher_reload(id)
{
	id -= 3512;
	reloading[id] = false;
	set_pev(id, pev_weaponanim, 0);
}

public fw_Touch(ent, id)
{
	if(!pev_valid(ent))
		return FMRES_IGNORED
	
	new class[32]
	pev(ent, pev_classname, class, charsmax(class))

	if(!equal(class, "rocket"))
		return FMRES_IGNORED
		
	new attacker = pev(ent, pev_owner);
	new Float:entOrigin[3], Float:fDamage, Float:Origin[3];
	pev(ent, pev_origin, entOrigin);
	entOrigin[2] += 1.0;
	
	new Float:g_damage = get_cvar_float("cod_law_damage");
	new Float:g_radius = get_cvar_float("cod_law_radius");
	
	new victim = -1
	while((victim = engfunc(EngFunc_FindEntityInSphere, victim, entOrigin, g_radius)) != 0)
	{		
		if(!is_user_alive(victim) || get_user_team(attacker) == get_user_team(victim))
			continue;
		
		pev(victim, pev_origin, Origin);
		fDamage = g_damage - floatmul(g_damage, floatdiv(get_distance_f(Origin, entOrigin), g_radius));
		fDamage *= estimate_take_hurt(entOrigin, victim);
		if(fDamage>0.0)
			UTIL_Kill(attacker, victim, fDamage, DMG_BULLET);
	}
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
	write_byte(TE_EXPLOSION);
	write_coord(floatround(entOrigin[0]));
	write_coord(floatround(entOrigin[1]));
	write_coord(floatround(entOrigin[2]));
	write_short(sprite_nadeexp); 
	write_byte(40); 
	write_byte(30); 
	write_byte(14); 
	message_end(); 
	
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
	write_byte(TE_EXPLOSION); 
	write_coord(floatround(entOrigin[0])); 
	write_coord(floatround(entOrigin[1])); 
	write_coord(floatround(entOrigin[2])); 
	write_short(sprite_blast); 
	write_byte(40);
	write_byte(30);
	write_byte(TE_EXPLFLAG_NONE); 
	message_end(); 
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(5)
	write_coord(floatround(entOrigin[0])); 
	write_coord(floatround(entOrigin[1])); 
	write_coord(floatround(entOrigin[2]));
	write_short(sprite_smoke);
	write_byte(35);
	write_byte(5);
	message_end();
	fm_remove_entity(ent);
	return FMRES_IGNORED
}

public message_DeathMsg()
{
	static killer, victim;
	killer = get_msg_arg_int(1);
	victim = get_msg_arg_int(2);
        
	if(wystrzelony[killer][victim])
	{
		wystrzelony[killer][victim] = false;
		set_msg_arg_string(4, "grenade");
		return PLUGIN_CONTINUE;
	}
	return PLUGIN_CONTINUE;
}

stock Float:estimate_take_hurt(Float:fPoint[3], ent) 
{
	new Float:fOrigin[3], tr, Float:fFraction;
	pev(ent, pev_origin, fOrigin);
	engfunc(EngFunc_TraceLine, fPoint, fOrigin, DONT_IGNORE_MONSTERS, 0, tr);
	get_tr2(tr, TR_flFraction, fFraction);
	if(fFraction == 1.0 || get_tr2(tr, TR_pHit) == ent)
		return 1.0;
	return 0.6;
}

stock UTIL_Kill(atakujacy, obrywajacy, Float:damage, damagebits)
{
	if(get_user_health(obrywajacy) <= floatround(damage))
		wystrzelony[atakujacy][obrywajacy] = true;
	
	cod_inflict_damage(atakujacy, obrywajacy, damage, 1.0, atakujacy, damagebits);
}

Ja mam prośbe, proszę o naprawienie błędów i prze kompilowanie..

Za to plusa daje ;P

Załączone pliki


  • +
  • -
  • 0

#2 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 02.08.2013 21:04

:wstyd:


  • +
  • -
  • 1
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#3 MrGrafi2K

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:46
  • Lokalizacja:Krokowo
Offline

Napisano 03.08.2013 10:48

Dzięki, można zamknąć ;P


  • +
  • -
  • 0

#4 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 03.08.2013 10:57

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: klasa

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych