Skip to content

Instantly share code, notes, and snippets.

@user-grinch
Last active April 14, 2021 22:38
Show Gist options
  • Save user-grinch/b58a2e02da799301ab987183f2e6f521 to your computer and use it in GitHub Desktop.
Save user-grinch/b58a2e02da799301ab987183f2e6f521 to your computer and use it in GitHub Desktop.
SCRIPT_START
{
/*
Functional Clock
Author: Grinch_
*/
SCRIPT_NAME FCLOCK
CONST_INT hour_tick_model 14730
CONST_INT min_tick_model 14729
LVAR_INT hplayer hour min obj_created hobj_min[4] hobj_hour[4] fps fps_cur timer1 timer2
LVAR_FLOAT distance coord[3] temp temp2 temp3
GET_PLAYER_CHAR 0 hplayer
obj_created = 0
fps_cur = 0
fps = 0
WHILE TRUE
WAIT 0
GET_CURRENT_HOUR hour
GET_CURRENT_MINUTE min
GET_CHAR_COORDINATES hplayer coord[0] coord[1] coord[2]
GET_DISTANCE_BETWEEN_COORDS_3D coord[0] coord[1] coord[2] -215.18384, 1117.58679, 32.95 distance
timer1 = min
IF NOT timer1 = timer2
fps = fps_cur
fps_cur = 0
timer2 = timer1
ELSE
fps_cur += 1
ENDIF
IF distance < 150.0
IF obj_created = 0
REQUEST_MODEL hour_tick_model
REQUEST_MODEL min_tick_model
LOAD_ALL_MODELS_NOW
CREATE_OBJECT hour_tick_model -215.18384 1117.58679 32.95 hobj_hour[0]
CREATE_OBJECT min_tick_model -215.18384 1117.58679 33.25257 hobj_min[0]
CREATE_OBJECT hour_tick_model -215.23315 1120.80310 32.95 hobj_hour[1]
CREATE_OBJECT min_tick_model -215.23315 1120.80310 33.25257 hobj_min[1]
CREATE_OBJECT hour_tick_model -213.62622 1119.19421 32.95 hobj_hour[2]
CREATE_OBJECT min_tick_model -213.62622 1119.19421 33.25257 hobj_min[2]
CREATE_OBJECT hour_tick_model -216.84204 1119.13977 32.95 hobj_hour[3]
CREATE_OBJECT min_tick_model -216.84204 1119.13977 33.25257 hobj_min[3]
MARK_MODEL_AS_NO_LONGER_NEEDED hour_tick_model
MARK_MODEL_AS_NO_LONGER_NEEDED min_tick_model
obj_created = 1
ENDIF
temp =# min
temp -= 1.0
temp *= 6.0
// 6.0 / fps
temp2 = 6.0
temp3 =# fps
temp2 /= temp3
// 6.0/ fps * count
temp3 =# fps_cur
IF fps_cur > fps
temp3 =# fps
ENDIF
IF fps_cur = 0
temp3 = 1.0
ENDIF
temp2 *= temp3
temp += temp2
SET_OBJECT_ROTATION hobj_hour[0] temp 0.0 90.0
SET_OBJECT_ROTATION hobj_hour[3] temp 0.0 0.0
temp *= -1.0
SET_OBJECT_ROTATION hobj_hour[1] temp 0.0 90.0
SET_OBJECT_ROTATION hobj_hour[2] temp 0.0 0.0
temp =# hour
temp *= 30.0
temp2 =# min
temp2 *= 0.5
temp += temp2
SET_OBJECT_ROTATION hobj_min[0] temp 0.0 90.0
SET_OBJECT_ROTATION hobj_min[3] temp 0.0 0.0
temp *= -1.0
SET_OBJECT_ROTATION hobj_min[1] temp 0.0 90.0
SET_OBJECT_ROTATION hobj_min[2] temp 0.0 0.0
ELSE
IF obj_created = 1
DELETE_OBJECT hobj_hour[0]
DELETE_OBJECT hobj_hour[1]
DELETE_OBJECT hobj_hour[2]
DELETE_OBJECT hobj_hour[3]
DELETE_OBJECT hobj_min[0]
DELETE_OBJECT hobj_min[1]
DELETE_OBJECT hobj_min[2]
DELETE_OBJECT hobj_min[3]
obj_created = 0
ENDIF
ENDIF
ENDWHILE
}
SCRIPT_END
SCRIPT_START
{
/*
Functional Clock
Author: Grinch_
*/
SCRIPT_NAME FCLOCK
CONST_INT hour_tick_model 14555
CONST_INT min_tick_model 14557
LVAR_INT hplayer hour min obj_created hobj_min[4] hobj_hour[4]
LVAR_FLOAT distance coord[3] temp temp2
GET_PLAYER_CHAR 0 hplayer
obj_created = 0
WHILE TRUE
WAIT 0
GET_CURRENT_HOUR hour
GET_CURRENT_MINUTE min
GET_CHAR_COORDINATES hplayer coord[0] coord[1] coord[2]
GET_DISTANCE_BETWEEN_COORDS_3D coord[0] coord[1] coord[2] -215.18384, 1117.58679, 33.25257 distance
IF distance < 30.0
IF obj_created = 0
REQUEST_MODEL hour_tick_model
REQUEST_MODEL min_tick_model
LOAD_ALL_MODELS_NOW
CREATE_OBJECT hour_tick_model -215.18384 1117.58679 33.25257 hobj_hour[0]
CREATE_OBJECT min_tick_model -215.18384 1117.58679 32.95 hobj_min[0]
CREATE_OBJECT hour_tick_model -215.23315 1120.80310 33.25257 hobj_hour[1]
CREATE_OBJECT min_tick_model -215.23315 1120.80310 32.95 hobj_min[1]
CREATE_OBJECT hour_tick_model -213.62622 1119.19421 33.25257 hobj_hour[2]
CREATE_OBJECT min_tick_model -213.62622 1119.19421 32.95 hobj_min[2]
CREATE_OBJECT hour_tick_model -216.84204 1119.13977 33.25257 hobj_hour[3]
CREATE_OBJECT min_tick_model -216.84204 1119.13977 32.95 hobj_min[3]
MARK_MODEL_AS_NO_LONGER_NEEDED hour_tick_model
MARK_MODEL_AS_NO_LONGER_NEEDED min_tick_model
obj_created = 1
ENDIF
temp =# min
temp *= 6.0
SET_OBJECT_ROTATION hobj_hour[0] temp 0.0 90.0
SET_OBJECT_ROTATION hobj_hour[3] temp 0.0 0.0
temp *= -1.0
SET_OBJECT_ROTATION hobj_hour[1] temp 0.0 90.0
SET_OBJECT_ROTATION hobj_hour[2] temp 0.0 0.0
temp =# hour
temp *= 30.0
temp2 =# min
temp2 *= 0.5
temp += temp2
SET_OBJECT_ROTATION hobj_min[0] temp 0.0 90.0
SET_OBJECT_ROTATION hobj_min[3] temp 0.0 0.0
temp *= -1.0
SET_OBJECT_ROTATION hobj_min[1] temp 0.0 90.0
SET_OBJECT_ROTATION hobj_min[2] temp 0.0 0.0
ELSE
IF obj_created = 1
DELETE_OBJECT hobj_hour[0]
DELETE_OBJECT hobj_hour[1]
DELETE_OBJECT hobj_hour[2]
DELETE_OBJECT hobj_hour[3]
DELETE_OBJECT hobj_min[0]
DELETE_OBJECT hobj_min[1]
DELETE_OBJECT hobj_min[2]
DELETE_OBJECT hobj_min[3]
obj_created = 0
ENDIF
ENDIF
ENDWHILE
}
SCRIPT_END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment