Forum

Match doesn't begin.

Discuss programming in the QuakeC language.

Moderator: InsideQC Admins

Match doesn't begin.

Postby Orion » Wed Dec 26, 2007 12:09 am

Hi, I did a mod that all weapons does randomly between normal damage and 2x damage, and each client receives 1000 dollars when connecting.

I did like last man standing, when a player dies it respawn as an observer, and when another match begins it automatically teleports to a spawn spot on the map.

And, I put that dollar thing because you can bet from between 1 and 255 dollars using a pre-impulse command. If you're the last man standing, you receive all money the others have bet.

When I start a map and connect 4 bots, the match starts normally, but the second or more matches doesn't start even if everybody gave their bets. :(

Can someone tell me what's wrong in my code?

PlaceBets(), called from impulse 50 and any other impulse that's the value of your bets.
Code: Select all
void(float howmany) PlaceBets =
{
   self.t_length = 0;
   self.last_impulse = 0;
   self.impulse = 0;
   if (howmany > self.cash)
      howmany = self.cash;   // lost all cash
   self.cash = self.cash - howmany;
   self.bet = howmany;
   bet_placed = bet_placed + 1;
   if (bet_placed == total_players)
   {
      bprint ("Everybody placed their bets. Let's fight!!\n");
      everybody_placed = 1;
   }
   
   bprint (self.netname);
   bprint (" bets ");
   bprint (ftos(howmany));
   bprint (" dollars.\n");
};



My modifed StartFrame():
Code: Select all
void() StartFrame =
{
   local entity p, bot, oself;
   local float bets;
   local string s;
   
   teamplay = cvar("teamplay");
   skill = cvar("skill");
   framecount = framecount + 1;
   
   bot = find(world, classname, "player");
   while (bot != world)
   {
      if (!bot.human)
      {
         oself = self;
         self = bot;
         BotThink ();
         self = oself;
      }
      bot = find(bot, classname, "player");
   }
   
   if (dead_players >= total_players - 1 && total_players > 1)
   {
      dead_players = 0;
      everybody_placed = 0;
      p = find(world, classname, "player");
      while (p != world)
      {
         bets = bets + p.bet;
         if (p.health > 0)
         {
            bprint (p.netname);
            bprint (" wins! He gained ");
            s = ftos(bets);
            bprint (s);
            bprint (" dollars!\n");   
            p.bet = p.bet + bets;
         }
         p.spec = 0;
         p.betted = 0;
         oself = spawn ();
         oself.owner = p;
         oself.nextthink = time + 1 + random()*2;
         oself.think = ReSpawn;
         p = find(p, classname, "player");
      }
      PrintCash ();
   }
   
   if (!everybody_placed)
      cease_fire = 1;
   else
      cease_fire = 0;
   
   if (everybody_placed)
      bet_placed = 0;
};



Any help would be appreciated.
User avatar
Orion
 
Posts: 476
Joined: Fri Jan 12, 2007 6:32 pm
Location: Brazil

Return to QuakeC Programming

Who is online

Users browsing this forum: No registered users and 1 guest