Announcement

Collapse
No announcement yet.

Frogbot crashes Qrack

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Frogbot crashes Qrack

    I was just messing around with the frogbot, and after bout 4 minutes of play, Qrack just froze up. This happened to me a couple times yesterday as well. Any thoughts as to why this might be happening?

    Here is my command line:

    glqrack -game frogbot -wavonly -width 1280 -height 960 -bpp 32 -conwidth 640 -conheight 480 -zone 1024 -noipx -nojoy -dinput -heapsize 128000 -listen +map ztndm3

  • #2
    Hmm.. That used to happen to me on my really old computer when using frogbot Version .12 I think. I wasnt using qrack however... It didnt happen with .13.

    Try .13, the bots will do prediction shots also and other neat stuff. It could fix your problem too. Did for me a long time ago

    Comment


    • #3
      increasing -zone 1024 to -zone 8196 might help..

      Comment


      • #4
        Originally posted by =peg= View Post
        increasing -zone 1024 to -zone 8196 might help..
        Actually, that wouldn't help at all. That increases the allocation for dynamic memory used by aliases.
        Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.

        So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...

        Comment


        • #5
          frogbots with netquake client? errrrr

          Comment


          • #6
            it was developed for netquake originally, if i recall correctly

            Comment


            • #7
              a work-around for ya

              quake\wqpro.exe -zone 1024 -dedicated 8 -game frogbot

              then connect to your local dedicated server.

              I'm not really sure what's crashing cause it wont give me any errors just locks up. As a client it doesn't crash, but running as a local server it does :/
              www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

              Comment


              • #8
                I just tried frogbot with JoeQuake v0.15dev and it locked up aswell at 11:53.
                Usually i was getting a lockup in Qrack under 12 minutes. So it maybe the mod's fault?
                www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

                Comment


                • #9
                  This sounds just like one of the old SV_TouchLinks engine bugs, look in my engine source for a fix.

                  Comment


                  • #10
                    --------------------------------
                    EDIT: Fixed I *think... played frogbots for 15+ minutes no freeze..

                    Shadow had an old bugfix on quakesrc.org which was very close to how u had, but a few differences...

                    "(touch->v.solid != SOLID_TRIGGER)"



                    /*
                    ====================
                    SV_TouchLinks
                    ====================
                    */
                    edict_t *nodelinks[MAX_EDICTS];
                    void SV_TouchLinks ( edict_t *ent, areanode_t *node )
                    {
                    link_t *l, *next;
                    edict_t *touch;
                    int old_self, old_other;

                    int linkcount = 0, ln;

                    //Lord Havoc: Make an array of edict pointers and fill it in by going through the links list,
                    // then run a loop over it calling the touches, this protects the list from all possible issues
                    // since the list is entirely over and done with before it even calls anything.


                    //work out who they are first.
                    for (l = node->trigger_edicts.next ; l != &node->trigger_edicts ; l = next)
                    {
                    if (linkcount == MAX_EDICTS)
                    break;
                    next = l->next;
                    touch = EDICT_FROM_AREA(l);
                    if (touch == ent)
                    continue;

                    if ((!touch->v.touch) || (touch->v.solid != SOLID_TRIGGER))
                    continue;

                    if (ent->v.absmin[0] > touch->v.absmax[0]
                    || ent->v.absmin[1] > touch->v.absmax[1]
                    || ent->v.absmin[2] > touch->v.absmax[2]
                    || ent->v.absmax[0] < touch->v.absmin[0]
                    || ent->v.absmax[1] < touch->v.absmin[1]
                    || ent->v.absmax[2] < touch->v.absmin[2] )
                    continue;

                    nodelinks[linkcount++] = touch;
                    }

                    old_self = pr_global_struct->self;
                    old_other = pr_global_struct->other;

                    for (ln = 0; ln < linkcount; ln++)
                    {
                    touch = nodelinks[ln];

                    //make sure nothing moved it away
                    if (touch->free)
                    continue;
                    if ((!touch->v.touch) || (touch->v.solid != SOLID_TRIGGER))
                    continue;
                    if (ent->v.absmin[0] > touch->v.absmax[0]
                    || ent->v.absmin[1] > touch->v.absmax[1]
                    || ent->v.absmin[2] > touch->v.absmax[2]
                    || ent->v.absmax[0] < touch->v.absmin[0]
                    || ent->v.absmax[1] < touch->v.absmin[1]
                    || ent->v.absmax[2] < touch->v.absmin[2] )
                    continue;

                    pr_global_struct->self = EDICT_TO_PROG(touch);
                    pr_global_struct->other = EDICT_TO_PROG(ent);
                    pr_global_struct->time = sv.time;
                    PR_ExecuteProgram (touch->v.touch);

                    if (ent->free)
                    break;
                    }
                    pr_global_struct->self = old_self;
                    pr_global_struct->other = old_other;


                    // recurse down both sides
                    if ((node->axis == -1) || (ent->free))
                    return;

                    if ( ent->v.absmax[node->axis] > node->dist )
                    SV_TouchLinks ( ent, node->children[0] );
                    if ( ent->v.absmin[node->axis] < node->dist )
                    SV_TouchLinks ( ent, node->children[1] );
                    }
                    Last edited by R00k; 09-04-2007, 02:13 PM.
                    www.quakeone.com/qrack | www.quakeone.com/cax| http://en.twitch.tv/sputnikutah

                    Comment

                    Working...
                    X