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

Przydatne funkcje


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
7 odpowiedzi w tym temacie

#1 kyku

    Wszechmogący

  • Użytkownik

Reputacja: 166
Profesjonalista

  • Postów:612
  • Lokalizacja:Jasło
Offline

Napisano 05.04.2010 13:14

Publikuję tu parę przydatnych funkcji/definicji. Nie które moje, nie które nie :^D

 


Użycie: set_user_frags2(id, 100); - daje graczowi 100 fragów + odświeża na tabeli wyników (TAB'ie)
stock set_user_frags2(id, ilosc){
	set_user_frags(id, ilosc);
	message_begin(MSG_BROADCAST,get_user_msgid("ScoreInfo"));
	write_byte(id);
	write_short(get_user_frags(id));
	write_short(cs_get_user_deaths(id));
	write_short(0);
	write_short(get_user_team(id));
	message_end();	
	
}

 

#define seconds(%1) ((1<<12) * (%1))
Przykład użycia: (będzie działało 5 sekund)
	message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id )
	write_short( seconds(5) )	// Duration of fadeout 
	write_short( holdtime )	// Hold time of color
	write_short( fadetype )	// Fade type
	write_byte ( red )		// Red
	write_byte ( green )		// Green
	write_byte ( blue )		// Blue
	write_byte ( alpha )	// Alpha
	message_end()

 

Odległość do ziemi
stock Float:distance_to_floor(Float:start[3], ignoremonsters = 1) {
    new Float:dest[3], Float:end[3];
    dest[0] = start[0];
    dest[1] = start[1];
    dest[2] = -8191.0;

    engfunc(EngFunc_TraceLine, start, dest, ignoremonsters, 0, 0);
    get_tr2(0, TR_vecEndPos, end);

    //pev(index, pev_absmin, start);
    new Float:ret = start[2] - end[2];

    return ret > 0 ? ret : 0.0;
}

 

Przykład użycia: Display_Icon(id ,1 ,"dmg_fire" ,255,0,0) - ikona czerwonego ognia

enable:
0 - wyłączone
1- włączone
2 - migające

stock Display_Icon(id ,enable ,name[] ,red,green,blue)
{
	if (!pev_valid(id) || is_user_bot(id))
	{
		return PLUGIN_HANDLED
	}

	message_begin( MSG_ONE, g_msg_statusicon, {0,0,0}, id ) 
	write_byte( enable ) 	
	write_string( name ) 
	write_byte( red ) // red 
	write_byte( green ) // green 
	write_byte( blue ) // blue 
	message_end()
	
	return PLUGIN_CONTINUE
}

 

Ożywia gracza.
stock respawn_player(id)
{     
	if (!is_user_connected(id) || is_user_alive(id) || cs_get_user_team(id) == CS_TEAM_SPECTATOR)         return;
	set_pev(id, pev_deadflag, DEAD_RESPAWNABLE);
	dllfunc(DLLFunc_Think, id);
	if (is_user_bot(id) && pev(id, pev_deadflag) == DEAD_RESPAWNABLE) {
		dllfunc(DLLFunc_Spawn, id);
	}
}

 

Sprawdza czy "coś" (byt) jest na ziemi. Np. gracz
Przyklad
if(entity_is_on_ground(id)){
client_print(0, print_chat, "Jestes na ziemi");
}

stock entity_is_on_ground(entity) {
	return entity_get_int(entity, EV_INT_flags) & FL_ONGROUND
}

 

Tworzy laser

drawLine(Float:vOrigin1[3], Float:vOrigin2[3], life,r,g,b,t)
{
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_BEAMPOINTS);
	write_coord(floatround(vOrigin1[0], floatround_floor));
	write_coord(floatround(vOrigin1[1], floatround_floor));
	write_coord(floatround(vOrigin1[2], floatround_floor));
	write_coord(floatround(vOrigin2[0], floatround_floor));
	write_coord(floatround(vOrigin2[1], floatround_floor));
	write_coord(floatround(vOrigin2[2], floatround_floor));
	write_short(gSpriteIdBeam);		//sprite index
	write_byte(0);				//starting frame
	write_byte(1);				//frame rate in 0.1's
	write_byte(life);			//life in 0.1's
	write_byte(5);				//line width in 0.1's
	write_byte(0);				//noise amplitude in 0.01's
	write_byte(r);			//red
	write_byte(g);			//green
	write_byte(b);			//blue
	write_byte(t);			//brightness
	write_byte(0);				//scroll speed in 0.1's
	message_end();
}

 

Sprawdza czy gracz kuca, czy też nie.

stock is_in_duck(player)
{
	// supplied with invalid entities
	if( !pev_valid(player)  )
		return 0;
	
	// retrieve absolutes
	static Float:absmin[3], Float:absmax[3];
	
	pev(player, pev_absmin, absmin);
	pev(player, pev_absmax, absmax);
	
	absmin[2]+=64.0;
	
	if( absmin[2] < absmax[2] )
		return 0;
	
	return 1;
}

 

Sprawdza czy gracz1 ogląda gracza2 na "spekcie"

stock is_user_spectating_player(spectator, player)
{
	if( !pev_valid(spectator) || !pev_valid(player) )
		return 0;
	if( !is_user_connected(spectator) || !is_user_connected(player) )
		return 0;
	if( is_user_alive(spectator) || !is_user_alive(player) )
		return 0;
	if( pev(spectator, pev_deadflag) != 2 )
		return 0;
	
	static specmode;
	specmode = pev(spectator, pev_iuser1);
	if( !(specmode == 1 || specmode == 2 || specmode == 4) )
		return 0;
	
	if( pev(spectator, pev_iuser2) == player )
		return 1;
	
	return 0;
}

 

Będę starał się ciągle temat uzupełniać. Możecie również podawać swoje ciekawe funkcje, dopisze je do postu
Jak ktoś nie rozumie co robi dana funkcja proszę pisać a wytłumaczę :)
  • +
  • -
  • 4

#2 burnhouse

    Zaawansowany

  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:100
  • Lokalizacja:Dębica, Polska
Offline

Napisano 05.04.2010 14:05

Ładnie przyda się
  • +
  • -
  • 0

#3 daedhelil

    Profesjonalista

  • Użytkownik

Reputacja: 8
Nowy

  • Postów:152
Offline

Napisano 27.05.2010 22:43

Fajne , mnie na pewno się przyda. Mógłbyś napisać w jaki sposób zmienić kolor noktowizora?
  • +
  • -
  • 0

#4 Harsay

    Harsayus pospolitus

  • Użytkownik

Reputacja: 88
Zaawansowany

  • Postów:274
  • Imię:Michał
  • Lokalizacja:Bydgoszcz
Offline

Napisano 28.05.2010 15:40

Radzę pododawać jeszcze jakie moduły są potrzebne.
A co do respawnu pokazałeś funkcję której używano do wersji amxx 1.76b.
Teraz tylko coś takiego starczy (hamsandwich wymagany)
Przykład dla każdego gracza:
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_event("DeathMsg", "DeathMsg", "a")
}

public DeathMsg() {
	new id = read_data(2)
	set_task(1.0, "respawn", id)
}

public respawn(id){
	ExecuteHam(Ham_Spawn, id)
} 

Użytkownik Harsay edytował ten post 28.05.2010 16:16

  • +
  • -
  • 0

#5 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 28.05.2010 16:01

tak a potem to co niby takie respawnowanie nie dziala :?: i twoj sposob nie zadziala bo w tasku podajesz nie zadeklarowana funkcje
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#6 Harsay

    Harsayus pospolitus

  • Użytkownik

Reputacja: 88
Zaawansowany

  • Postów:274
  • Imię:Michał
  • Lokalizacja:Bydgoszcz
Offline

Napisano 28.05.2010 16:17

Chodzi tobie o "ustawienia" ?
Przepraszam akurat przez przypadek nie usunąłem.
Oczywiście już poprawiłem.

Użytkownik Harsay edytował ten post 28.05.2010 16:17

  • +
  • -
  • 0

#7 Lukasz5

    Godlike

  • Power User

Reputacja: 280
Wszechwidzący

  • Postów:1 414
  • Imię:Łukasz
  • Lokalizacja:C: / WINDOWS
Offline

Napisano 30.05.2010 09:25

To 1 jak widzę z przyda mi się resztę dopiero czytam i masz + :)
  • +
  • -
  • 0

#8 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 20.07.2010 09:26

Automatyczna wiadomość


Ten temat został przeniesiony z forum:
Scripting -> Tutoriale
do
Scripting -> Gotowe funkcje

  • +
  • -
  • 0




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

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