Jak to zoptymalizowac?
VirusX
08.03.2012
public fart_fume(param[1]) { new FartEnt = param[0] new Float:forigin[3], origin[3] entity_get_vector(FartEnt, EV_VEC_origin, forigin) FVecIVec(forigin, origin) new players[32], inum get_players(players,inum) for(new i = 0 ;i < inum; ++i) { message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},players[i]) write_byte(17) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) write_short(fart_spr) write_byte(30) write_byte(75) message_end() } return PLUGIN_CONTINUE }
Mam taki o sobie fragment kodu, jak mniemam tworzy on obloczek dymu.
Jak moglbym to zoptymalizowac aby bylo mniej zasobozerne?
Z informacji jakie uzyskalem od jednego z tutejszych administratorow mozna to napisac z wykorzystaniem MSG_BROADCAST zamiast num*MSG_ONE, jakkolwiek niestety nie bawilem sie nigdy messegami i nie chce czegos popsuc stad prosba o pomoc.
Z gory dziekuje i pozdrawiam,
Adam.
DarkGL
08.03.2012
jeśli chodzi ci o samo wyświetlanie sprite to wiele nie zdziałasz
jeśli chcesz wysyłać ten message do wszystkich do usuń pętle i pobieranie graczy i daj MSG_BROADCAST
jeśli chcesz wysyłać ten message do wszystkich do usuń pętle i pobieranie graczy i daj MSG_BROADCAST
VirusX
08.03.2012
public fart_fume(param[1]) { new FartEnt = param[0] new Float:forigin[3], origin[3] entity_get_vector(FartEnt, EV_VEC_origin, forigin) FVecIVec(forigin, origin) message_begin(MSG_BROADCAST,SVC_TEMPENTITY,{0,0,0}) write_byte(17) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) write_short(fart_spr) write_byte(30) write_byte(75) message_end() return PLUGIN_CONTINUE }
Łi ?
DarkGL
09.03.2012
zamiast przekształcać float -> int możesz przekazać origin jako float za pomocą
engfunc( EngFunc_WriteCoord , fOrigin[ 0 ] );
public fart_fume(param[1]) { new FartEnt = param[0] new Float:forigin[ 3 ]; entity_get_vector(FartEnt, EV_VEC_origin, forigin) message_begin(MSG_BROADCAST,SVC_TEMPENTITY,{0,0,0}) write_byte(17) engfunc( EngFunc_WriteCoord , forigin[0]) engfunc( EngFunc_WriteCoord , forigin[1]) engfunc( EngFunc_WriteCoord , forigin[2]) write_short(fart_spr) write_byte(30) write_byte(75) message_end() }