Przydatne funkcje
kyku
05.04.2010
Publikuję tu parę przydatnych funkcji/definicji. Nie które moje, nie które nie
Użycie: set_user_frags2(id, 100); - daje graczowi 100 fragów + odświeża na tabeli wyników (TAB'ie)
Odległość do ziemi
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
Ożywia gracza.
Sprawdza czy "coś" (byt) jest na ziemi. Np. gracz
Przyklad
if(entity_is_on_ground(id)){
client_print(0, print_chat, "Jestes na ziemi");
}
Tworzy laser
Sprawdza czy gracz kuca, czy też nie.
Sprawdza czy gracz1 ogląda gracza2 na "spekcie"
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ę
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ę
daedhelil
27.05.2010
Fajne , mnie na pewno się przyda. Mógłbyś napisać w jaki sposób zmienić kolor noktowizora?
Harsay
28.05.2010
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:
Edited by Harsay, 28.05.2010 16:16.
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) }
Edited by Harsay, 28.05.2010 16:16.
G[o]Q
28.05.2010
tak a potem to co niby takie respawnowanie nie dziala i twoj sposob nie zadziala bo w tasku podajesz nie zadeklarowana funkcje
Harsay
28.05.2010
Chodzi tobie o "ustawienia" ?
Przepraszam akurat przez przypadek nie usunąłem.
Oczywiście już poprawiłem.
Edited by Harsay, 28.05.2010 16:17.
Przepraszam akurat przez przypadek nie usunąłem.
Oczywiście już poprawiłem.
Edited by Harsay, 28.05.2010 16:17.
mgr inż. Pavulon
20.07.2010
Automatyczna wiadomość
Ten temat został przeniesiony z forum:
Scripting -> Tutoriale
do
Scripting -> Gotowe funkcje
Ten temat został przeniesiony z forum:
Scripting -> Tutoriale
do
Scripting -> Gotowe funkcje