Story System

STORY SYSTEM for OpenBoR 2.1

No permission to download
This is delay:
Code:
name        delay
health         10
type        enemy
nomove      1
antigravity    100
offscreenkill    3000


anim    idle
@script
    void self = getlocalvar("self");
    int Health = getentityproperty(self, "health");

    if(frame==1){
      changeentityproperty(self, "health", Health-1);
      if(Health <= 0){
        killentity(self);
      }
    }
@end_script
    loop    1
    delay    9
    offset    1 1
    frame    data/chars/misc/empty.png
    delay    1
    frame    data/chars/misc/empty.png

anim    spawn
    delay    1
    offset    1 1
    frame    data/chars/misc/empty.png
 
Hello!

I came across a recent issue, I'm not sure how relevant it is though. When writing the credits, I noticed that it has this strange habit of ending early and some text overlapping out of the blue.

Here's an example of the credits I have thus far, nothing inherently wrong it seems, but it fails to work properly when it plays:
Code:
THE_END            4    0
_
_
_
_
_
_
CAST                0    114
Blitzo_Buckzo_-_voiced_by_SedthePanda            2    114
Moxxie_Knolastname_-_voiced_by_SedthePanda            2    114
Millie_Knolastname_-_voiced_by_StormAngel96            2    114
Loona_Buckzo_-_voiced_by_Loona_Howl            2    114
Coco_Tyson_-_voiced_by_MysticalMist            2    114
Sifu_Harley_Graham_-_voiced_by_Axelgear11            2    114
Vortex_-_voiced_by_LunarMothVA            2    114
Angel_Dust_-_voiced_by_Axelgear11            2    114
Striker_-_voiced_by_Dboy501110            2    114
Vox_-_voiced_by_StrawberryRazzy            2    114
Velvette_-_voiced_by_VolticGlitch            2    114
Valentino_-_voiced_by_ArkaidenVA            2    114
Alastor_(Announcer)_-_voiced_by_IvanFlynnPro            2    114
_
DIRECTOR            0    114
MysticalMist            2    114
_
ORIGINAL_SPRITES_&_ANIMATION            0    114
MysticalMis            2    114
Zeof            2    114
_
CHARACTERS            0    114
VivziePop/Vivienne_Medrano            2    114
MysticalMist            2    114
_
SCRIPTS_&_CODING            0    114
MysticalMist            2    114
Volcanic            2    114
doranikofu            2    114
O_Illusionista            2    114
CRxTRDude            2    114
Piccolo    2            114
White_Dragon            2    114
maxman            2    114
Damon_Caskey            2    114
msmalik681            2    114
_
FAN_MUSIC            0    114
Kick_Streets_-_made_by_JoxaDaizz            2    114
SOR1_Boss_(The_Clown)_-_made_by_JoxaDaizz            2    114
Aggressive_Desert_2_-_made_by_JoxaDaizz            2    114
Results_-_made_by_JoxaDaizz            2    114
_
SPECIAL_THANKS            0    114
ChronoCrash.com_&_Senile_Team            2    114
bdhl            2    114
Stormxzy            2    114
Jasper            2    114
2's_a_Party_But_3_is_a_Crowd            2    114
O_Illusionista            2    114
Reddthesipan            2    114
You_:)            2    114
___
 
You mean some texts are cut off?
Yes, or "THANK YOU FOR PLAYING" would show way too early over the scrolling text or it would end the moment "Scripts & Coding" showed up.

Addendum: the credits end the moment it gets past "Volcanic".


UPDATE: I AM A FOOL. It turns out I accidentally overlooked the linecount part of the command. My apologies.
 
Last edited:
Alright, I'm back again lol.

So, what I've noticed, is that the credits/scrolling text, has a huge issue that seemingly has some sort of relationship with the vsync and frame limit. If either of those are enabled, the text goes EXTREMELY slow. Is there a way to update the script ("story_scroll.c") to where it can be more consistent and be unaffected by those video changes?
 
Alright, I'm back again lol.

So, what I've noticed, is that the credits/scrolling text, has a huge issue that seemingly has some sort of relationship with the vsync and frame limit. If either of those are enabled, the text goes EXTREMELY slow. Is there a way to update the script ("story_scroll.c") to where it can be more consistent and be unaffected by those video changes?

I have never looked at the scripts, but mostly likely it's just a matter of update timing. Look for a timer variable and whatever value is fed to it then, tweak a little.

DC
 
I have never looked at the scripts, but mostly likely it's just a matter of update timing. Look for a timer variable and whatever value is fed to it then, tweak a little.

DC

From what I found, here's the story_scroll.c:
Code:
void scrollText(char txtfile,int linecount,int spacing,char back,float spd)
{ 
    max=linecount*spacing;
  
    line = linecount;
    space = spacing;
  
    void init = getlocalvar("inited");
    //void added = getlocalvar("lineadded");

    initBack=back;
  
    int cr=getlocalvar("cr_file");
    float ll_oldtick=getlocalvar("oldtick");
    float ll_tick=openborvariant("elapsed_time");
    float ll_offset;
    long scr=getSpriteScreen();
  
    void back = getindexedvar(story_back);

    if (!back){
        if (initBack!=""){
            setindexedvar(story_back, loadsprite("data/story/bgs/"+initBack));
            setindexedvar(story_backfile, back);
        }
    }

    if (!ll_oldtick){ll_oldtick=ll_tick;}
    if (!cr){
        cr=openfilestream("data/story/"+txtfile);
        setlocalvar("cr_file",cr);
    }
    ll_offset=ll_tick - ll_oldtick;
    if (ll_offset<=0.9){ll_offset=1;}

    if (!init)
    {
        initLine();
        init = 1;
        setlocalvar("inited",init);
        log("done!\n");
    }else{
        if (!getlocalvar("end")){
            addLine(cr);
        }
        drawLine(cr,(ll_offset*spd));
        setlocalvar("oldtick",ll_tick);
        drawSpriteScreen();
    }
}

I'll admit I'm not exactly sure or confident as to how to "tweak" this. I tried to find some reference/wiki entries that cover more about vsync or framelimit and how they work with openbor in particular either.

UPDATE: Strangely enough, scrollPicture works oppositely. When both vsync and framelimit are disabled, it goes too fast, but when either or both are on, it works as intended.
 
Last edited:
Back
Top Bottom