←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
Pare pytan odnosnie Cod Moda :)

Zablokowany

DanGe - zdjęcie DanGe 10.07.2011

Witam. Mam pare pytań odnośnie CoDa (MW), tworzenia klas, itd.

Czy mógłby mi ktoś podać kody które dodaje się do plików .sma takie jak Podwójny skok, rakietki, miny, leczenie, wskszerzanie, XX % niewidzialności, itp i objaśnienia, ponieważ umiem już robić proste klasy, ale zacząłem się zajmować zaawansowanym tworzeniem klas i mam problemy.

Drugie pytanie odnośnie dodawaniu lvli. Próbowałem wszystkich komend, Codset_lvl "nick" "ilość", innych tez próbowałem i żaden z nic... musze ją jakoś odblokować? Jeżeli tak proszę o wskazówki.

Trzeci problem jest taki, iż klase premium mam na ADMIN_LEVEL_H, czyli teoretycznie klasa premium powinna być dostępna po dodaniu flagi "T", lecz dodaje tą flage na dany nick ("DANYNICK" "" "T" "") o ile się nie myle robie to dobrze, więc nie wiem dlaczego nie chce działac.

Za pomocne odpowiedzi +
Pozdrawiam.
Odpowiedz

  • +
  • -
NewaX - zdjęcie NewaX 11.07.2011

No to ja tak nie pokoleji

3. Jezeli dajesz na nick musisz dac haslo
"DanGe" "123" "flagi" "a"
do tego osoba dla ktorej ma byc ta flaga do configa musi dodac
setinfo _pw "haslo"

2. Do tego porzebny jest plugin admin_commadns. Lecz ja polecam ci cale menu admna: [CoD Nowy] Admin Menu - v 1.5 - AMXX.pl: Support AMX Mod X

1.
Niewidzialnosc [CoD Nowy] Jak dodać niewidzialność do klasy [Śmieszne] - AMXX.pl: Support AMX Mod X

Miny:

Do include dodajemy
#include <engine>
Pod wszystkie include dodajemy new
bool:ma_klase[33]
Do plugin_ini na koniec dodajemy
register_forward(FM_AddToFullPack, "FwdAddToFullPack", 1);
Pod plugin_ini dodajemy
public cod_class_enabled(id)
	ma_klase[id] = true;

public cod_class_disabled(id)
	ma_klase[id] = false;
A pod to
public FwdAddToFullPack(es_handle, e, ent, host, hostflags, player, pSet)
{
	if(!is_user_connected(host))
		return;
	
	if(!ma_klase[host])
		return;
	
	if(!pev_valid(ent))
		return;
	
	new classname[5];
	pev(ent, pev_classname, classname, 4);
	if(equal(classname, "mine"))
	{
		set_es(es_handle, ES_RenderMode, kRenderTransAdd);
		set_es(es_handle, ES_RenderAmt, 90.0);
	}
}

Podwojny skok:

Do include dodajemy
#include <engine>
Pod include dodajemy
new bool:ma_klase[33];
new bool:moze_skoczyc[33];
Do plugin_ini dodajemy
register_forward(FM_CmdStart, "CmdStart");
Pod plugin_ini dodajemy
public cod_class_enabled(id)
	ma_klase[id] = true;

public cod_class_disabled(id)
	ma_klase[id] = false;
Potem pod to dodajemy
public CmdStart(id, uc_handle)
{
	if(!ma_klase[id])
		return FMRES_IGNORED;
	
	new button = get_uc(uc_handle, UC_Buttons);
	new oldbutton = pev(id, pev_oldbuttons);
	new flags = pev(id, pev_flags);
	if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && moze_skoczyc[id])
	{
		moze_skoczyc[id] = false;
		new Float:velocity[3];
		pev(id, pev_velocity, velocity);
		velocity[2] = random_float(265.0,285.0);
		set_pev(id, pev_velocity, velocity);
	}
	else if(flags & FL_ONGROUND)	
		moze_skoczyc[id] = true;
		
	return FMRES_IGNORED;
}


Apteczki ( chyba to nazwales leczeniem):

Do include dodajemy
#include <engine>
Pod include dodajemy
new sprite_white;
new ilosc_apteczek_gracza[33];
Do plugin_ini dodajemy
register_think("medkit","MedkitThink");
	
	register_event("ResetHUD", "ResetHUD", "abe");
Pod plugin_ini dodajemy
public plugin_precache()
{
	sprite_white = precache_model("sprites/white.spr");
	precache_model("models/w_medkit.mdl");
}
Nastepnie pod to dodajemy
public cod_class_enabled(id)
	ilosc_apteczek_gracza[id] = 2;
A pod to reszte
public cod_class_skill_used(id)
{
	if (!ilosc_apteczek_gracza[id])
	{
		client_print(id, print_center, "Masz tylko 2 apteczki na runde!");
		return PLUGIN_CONTINUE;
	}
		
	ilosc_apteczek_gracza[id]--;
	
	new Float:origin[3];
	entity_get_vector(id, EV_VEC_origin, origin);
	
	new ent = create_entity("info_target");
	entity_set_string(ent, EV_SZ_classname, "medkit");
	entity_set_edict(ent, EV_ENT_owner, id);
	entity_set_int(ent, EV_INT_solid, SOLID_NOT);
	entity_set_vector(ent, EV_VEC_origin, origin);
	entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1);
	
	
	entity_set_model(ent, "models/w_medkit.mdl");
	set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 ) 	;
	drop_to_floor(ent);
	
	entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);
	
	return PLUGIN_CONTINUE;
}

public MedkitThink(ent)
{
	new id = entity_get_edict(ent, EV_ENT_owner);
	new dist = 300;
	new heal = 5+floatround(cod_get_user_intelligence(id)*0.5);

	if (entity_get_edict(ent, EV_ENT_euser2) == 1)
	{		
		new Float:forigin[3];
		entity_get_vector(ent, EV_VEC_origin, forigin);
		
		new entlist[33];
		new numfound = find_sphere_class(0,"player", float(dist),entlist, 32,forigin);
		
		for (new i=0; i < numfound; i++)
		{		
			new pid = entlist[i];
			
			if (get_user_team(pid) != get_user_team(id))
				continue;
			
			new maksymalne_zdrowie = 100+cod_get_user_health(pid);
			new zdrowie = get_user_health(pid);
			new Float:nowe_zdrowie = (zdrowie+heal<maksymalne_zdrowie)?zdrowie+heal+0.0:maksymalne_zdrowie+0.0;
			if (is_user_alive(pid)) entity_set_float(pid, EV_FL_health, nowe_zdrowie);	
		}
		
		entity_set_edict(ent, EV_ENT_euser2, 0);
		entity_set_float(ent, EV_FL_nextthink, halflife_time() + 1.5);
		
		return PLUGIN_CONTINUE;
	}
	
	if (entity_get_float(ent, EV_FL_ltime) < halflife_time() || !is_user_alive(id))
	{
		remove_entity(ent);
		return PLUGIN_CONTINUE;
	}
	
	if (entity_get_float(ent, EV_FL_ltime)-2.0 < halflife_time())
		set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 );
		
	new Float:forigin[3];
	entity_get_vector(ent, EV_VEC_origin, forigin);
					
	new iOrigin[3];
	for(new i=0;i<3;i++)
		iOrigin[i] = floatround(forigin[i]);
		
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
	write_byte( TE_BEAMCYLINDER );
	write_coord( iOrigin[0] );
	write_coord( iOrigin[1] );
	write_coord( iOrigin[2] );
	write_coord( iOrigin[0] );
	write_coord( iOrigin[1] + dist );
	write_coord( iOrigin[2] + dist );
	write_short( sprite_white );
	write_byte( 0 ); // startframe
	write_byte( 0 ); // framerate
	write_byte( 10 ); // life
	write_byte( 10 ); // width
	write_byte( 255 ); // noise
	write_byte( 255 ); // r, g, b
	write_byte( 100 );// r, g, b
	write_byte( 100 ); // r, g, b
	write_byte( 128 ); // brightness
	write_byte( 0 ); // speed
	message_end();
	
	entity_set_edict(ent, EV_ENT_euser2 ,1);
	entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.5);
	
	    
	return PLUGIN_CONTINUE;

}

public ResetHUD(id)
	ilosc_apteczek_gracza[id] = 2;

public client_disconnect(id)
{
	new ent = find_ent_by_class(0, "medkit");
	while(ent > 0)
	{
		if(entity_get_edict(id, EV_ENT_owner) == id)
			remove_entity(ent);
		ent = find_ent_by_class(ent, "medkit");
	}
}

Jesli chcesz zmienic ilosc apteczek zmieniasz w
public ResetHUD(id)
	ilosc_apteczek_gracza[id] = 2;
2 na liczbe potrzebnych ci apteczek
oraz
zmieniasz w
public cod_class_enabled(id)
	ilosc_apteczek_gracza[id] = 2;
2 na liczbe porzebnych ci apteczek


Rakiety:
poradnik do rakiet jest umieszczony na forum w dziale mody/codmod/poradniki tylko nie chce mi sie szukac.
Użytkownik newax edytował ten post 11.07.2011 06:31
Odpowiedz

  • +
  • -
BliBs_Pl - zdjęcie BliBs_Pl 11.07.2011

Jak się nie znasz to nie pisz...
Do min i podwójnego skoku musisz dodać #include <fakemeta> bo to są typowo fakemetowe komendy (zaawansowane)
Odpowiedz

  • +
  • -
A może sma? - zdjęcie A może sma? 11.07.2011

A co to za różnica czy to zrobi fakemetą czy kanapką i enginem??
Odpowiedz

  • +
  • -
NewaX - zdjęcie NewaX 11.07.2011

Nie robi tylko do tego musza byc odpowiednie moduły a najwyrazniej zapomniallem wspomniec o wyzej wymienionym.
Odpowiedz

  • +
  • -
Kewin. (ZeZ) - zdjęcie Kewin. (ZeZ) 11.07.2011

Jak dodac klase premium graczowi :) najlepiej jak kazda klasa ma inny lvl (ADMIN_LEVEL_B , ADMIN_LEVEL_A, itd)

wiec na nick:
"nick" "haslo" "flagi" "uprawnienia"
nick - nick gracza
haslo - haslo ktore musi wpisac , ale nie musi byc
flagi - do klasy premium musi byc zawsze l i dany lvl
uprawnienia - uprawnienie na wpisanie hasla a / na nie wpisanie e

wyglada to tak:
"Kewin." "123" "lm" "a" - klasa na nick z haslem i ADMIN_LEVEL_A
"Kewin." "" "lm" "e" - klasa na nick bez sprawdzania hasla i ADMIN_LEVEL_A

__________________

Podwojny skok:
kolega dobrze ci opisal :)

Niewidzialnosc:
mozan dac niewidzialnosc z kazda bronia, na wybranej broni , na kucaka , lub na kucaka z wybrana bronia , itd

dam ci zeby byc niewidzalnym z wybrana bronia:

public client_PreThink(id)
{
if(!ma_klase[id])
return;

new button = get_user_button(id);
if(weapon == CSW_jaka bron)
set_rendering
(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, wybierasz ile ma byc niewidzalny);
else
set_rendering
(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
}dam ci zeby byc niewidzalnym z wybrana bronia i na kucaka:public client_PreThink(id)
{
if(!ma_klase[id])
return;

new button = get_user_button(id);
if(button & IN_DUCK && if(weapon == CSW_jaka bron)
set_rendering
(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, ile ma byc nie widzialny);
else
set_rendering
(id,kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
}




grawitacja:


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

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

register_event("ResetHUD", "ResetHUD", "abe");

}



public cod_class_enabled(id)
{
ma_klase[id] = true;
entity_set_float(id, EV_FL_gravity, 200.0/800.0);
return COD_CONTINUE;
}

public cod_class_disabled(id)
{
ma_klase[id] = false;
entity_set_float(id, EV_FL_gravity, 800.0/800.0);
}


public ResetHUD(id)
{
if(ma_klase[id])
entity_set_float(id, EV_FL_gravity, 200.0/800.0);
}



AutoBH:


public client_PreThink(id)
{
if(!ma_klase[id])
return PLUGIN_CONTINUE;

if(!(get_user_button(id) & IN_JUMP))
return PLUGIN_CONTINUE;

new flags = get_entity_flags(id);

if (flags & FL_WATERJUMP)
return PLUGIN_CONTINUE;

if (entity_get_int(id, EV_INT_waterlevel) >= 2)
return PLUGIN_CONTINUE;

if (!(flags & FL_ONGROUND))
return PLUGIN_CONTINUE;

new Float:velocity[3];
entity_get_vector(id, EV_VEC_velocity, velocity);
velocity[2] += 250.0
entity_set_vector(id, EV_VEC_velocity, velocity);

entity_set_int(id, EV_INT_gaitsequence, 6);

return PLUGIN_CONTINUE;
}
Odpowiedz
Zablokowany