White Dragon
New member
...and another bug!
Quake doesn't work always and everywhere!
Quake doesn't work always and everywhere!
bWWd said:Quake doesnt work if you dont have enough frames in animation to shake anymore, so if your quake takes 5 frames and animation1 has only 4 then quake wont work during animation2.
void quake() {
int loop = getglobalvar("quake_loop");
int refresh_time = getglobalvar("quake_refreshtime");
int intensity = getglobalvar("quake_intensity");
if ( loop != NULL() && refresh_time != NULL() && intensity != NULL() && openborvariant("in_level") ) {
int time = openborvariant("elapsed_time");
int ETA = refresh_time*loop;
if ( getlocalvar("finish_quake_time") == NULL() ) setlocalvar("finish_quake_time",get_next_time(ETA));
if ( time%refresh_time == 0 ) {
changelevelproperty("quake", intensity);
if ( loop > 0 ) --loop;
else loop = NULL();
if ( time > getlocalvar("finish_quake_time") ) loop = NULL();
setglobalvar("quake_loop", loop);
if ( loop == NULL() ) {
setglobalvar("quake_refreshtime", NULL());
setglobalvar("quake_intensity", NULL());
setlocalvar("finish_quake_time", NULL());
}
}
if ( time > getlocalvar("finish_quake_time") ) {
setglobalvar("quake_loop", NULL());
setglobalvar("quake_refreshtime", NULL());
setglobalvar("quake_intensity", NULL());
setlocalvar("finish_quake_time", NULL());
}
} // fine if loop
}
White Dragon said:My quake work on updated.c
[...]
using changelevelproperty("quake", intensity);
but it doesnt work anywhere...
void quake() {
int loop = getglobalvar("quake_loop");
int refresh_time = getglobalvar("quake_refreshtime");
int intensity = getglobalvar("quake_intensity");
if ( loop != NULL() && refresh_time != NULL() && intensity != NULL() && openborvariant("in_level") ) {
int currentTime = openborvariant("elapsed_time");
int lastQuakeTime = getlocalvar("last_quake_time");
if (lastQuakeTime == NULL() || currentTime - lastQuakeTime >= refresh_time ) {
log("\nQuake !");
changelevelproperty("quake", intensity);
setlocalvar("last_quake_time", currentTime );
if ( loop > 1 ) --loop;
else loop = NULL();
setglobalvar("quake_loop", loop);
if ( loop == NULL() ) {
setglobalvar("quake_refreshtime", NULL());
setglobalvar("quake_intensity", NULL());
setlocalvar("last_quake_time", NULL());
}
}
} // fine if loop
}