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ę


Dodatki SourceMod













