Pacman

De DigiWiki.

Pacman Game Server:

// open pacman game server script by kefcom belgium (kefcom@hotmail.com)
 
string currentplayer;
integer score;
integer maxscore;
integer timesplayed;
integer timecounter;
string playername1;
string playername2;
string playername3;
string playername4;
string playername5;
integer playerscore1;
integer playerscore2;
integer playerscore3;
integer playerscore4;
integer playerscore5;
integer maxtime;
 
default
{
    state_entry()
    {
		// change this value to the number of balls you have on the field
        maxscore = 137; 
        maxtime = 500;
 
        playername1 = "nobody";
        playername2 = "nobody";
        playername3 = "nobody";
        playername4 = "nobody";
        playername5 = "nobody";
        playerscore1 = 300;
        playerscore2 = 300;
        playerscore3 = 300;
        playerscore4 = 300;
        playerscore5 = 300;
        timesplayed = 0;
        score = 0;
        llSetText("Game Server", <1,1,1>,1.0);
        llListen(1966, "","","");
    }
 
    listen( integer channel, string name, key id, string msg)
    {
        if(msg=="STOP")
        {
            llSetTimerEvent(0);
            llSay(0, "Game stopped!");
            timecounter = 0;
            score = 0;
            currentplayer = "nobody";
            llSetText("Game Server, click for stats", <1,1,1>,1.0);
        }
 
        if(msg=="START")
        {
            score = 0;
            llSetText("Score: " + (string) score, <1,1,1>, 1.0);
            currentplayer = name;
            timecounter = 0;
            timesplayed = timesplayed + 1;
            llSetTimerEvent(1);
        }
 
        if(msg=="POINTS!")
        {
            score = score + 1;
            llSetText("Score: " + (string) score, <1,1,1>, 1.0);
 
            if(score >= maxscore)
            {
                // GAME OVER!
                llShout(0, "Game over");
                llSetTimerEvent(0);
                llShout(0, "You needed " + (string) timecounter + " Seconds to complete the game!");
                llSetText("Game Server, Click me for stats", <1,1,1>, 1.0);
 
		if(timecounter < playerscore5)
		{
		    if(timecounter < playerscore4)
		    {
		        if(timecounter < playerscore3)
			{
			    if(timecounter < playerscore2)
			    {
				if(timecounter < playerscore1)
				{
			            // first place
				    playerscore5 = playerscore4;
				    playerscore4 = playerscore3;
				    playerscore3 = playerscore2;
				    playerscore2 = playerscore1;
				    playerscore1 = timecounter;
                                    playername5 = playername4;
			            playername4 = playername3;
			            playername3 = playername2;
			            playername2 = playername1;
				    playername1 = currentplayer;
 
				    llSay(0, "You are in first place on the scoreboard!");
				}
 
                                else
			        {
			            // second place
				    playerscore5 = playerscore4;
				    playerscore4 = playerscore3;
				    playerscore3 = playerscore2;
				    playerscore2 = timecounter;
 
                                    playername5 = playername4;
				    playername4 = playername3;
				    playername3 = playername2;
				    playername2 = currentplayer;
 
                                    llSay(0, "You are in second place on the scoreboard!");
                                 }
                              }
 
			      else
			      {
				  // third place
				  playerscore5 = playerscore4;
				  playerscore4 = playerscore3;
				  playerscore3 = timecounter;
                                  playername5 = playername4;
				  playername4 = playername3;
				  playername3 = currentplayer;
 
                                  llSay(0, "You are in third place on the scoreboard!");                 
			      }
			   }
 
                           else
			   {
			       // fourth place
			       playerscore5 = playerscore4;
			       playerscore4 = timecounter;
 
			       playername5 = playername4;
			       playername4 = currentplayer;
 
                               llSay(0, "You are in fourth place on the scoreboard!");                 
			   }
			}
 
                        else
			{
			    // fifth place
			    playerscore5 = timecounter;
 
                            playername5 = currentplayer;
 
                            llSay(0, "You are in fifth place on the scoreboard!");                 
			}
		    }
 
                    else
		    {
		        llSay(0, "You were not fast enough to get on the scoreboard");
		    }
		}
	    }
	}
 
    touch_start(integer numdetected)
    {
        //TYPE SCORE LIST!!!
        llSay(0, "SCORE LIST:");
        llSay(0, "1. " + playername1 + " - " + (string) playerscore1 + " seconds.");
        llSay(0, "2. " + playername2 + " - " + (string) playerscore2 + " seconds.");
        llSay(0, "3. " + playername3 + " - " + (string) playerscore3 + " seconds.");
        llSay(0, "4. " + playername4 + " - " + (string) playerscore4 + " seconds.");
        llSay(0, "5. " + playername5 + " - " + (string) playerscore5 + " seconds.");
        llSay(0, "Game has been played " + (string) timesplayed + " times since reset");
    }
 
    timer()
    {
        timecounter = timecounter + 1;
        if(timecounter >= maxtime)
        {
            llShout(1966, "STOP");
            llSay (0, "Game over due to timeout...");
            llSetTimerEvent(0);
            llSetText("Game Server, Touch for stats", <1,1,1>, 1.0);
        }
    }   
}

Pacman Yellow Balls:

// open pac-man script by kefcom belgium (kefcom@hotmail.com)
 
string currentplayer;
 
default
{
    state_entry()
    {
        llListen(1966, "","","");
    }
 
    collision(integer num_detected)
    { 
        if(llKey2Name(llDetectedKey(0)) == currentplayer)
        {
            if(llGetColor(0) != <1.0,0.0,0.0>)
            {
                //food has not been eaten yet
                llShout(1966, "POINTS!");
                llSetColor(<99,00,00>, ALL_SIDES);
            }else{
                // is allready eaten
            }
        }
    }
 
    listen( integer channel, string name, key id, string msg)
    {
        if(msg=="STOP")
        {
            currentplayer = "nobody";
            llSetColor(<99,00,00>, ALL_SIDES);
        }
        if(msg=="START")
        {
            currentplayer = name;
            llSetColor(<1,1,0>, ALL_SIDES);
        }   
    }
}

Pacman Start Button:

// open pacman game by kefcom belgium (kefcom@hotmail.com)
 
default
{
    state_entry()
    {
        llSetText("Klick me to play", <1,1,1>,1.0);
    }
    touch_start(integer num_detected)
    {
        llDialog(llDetectedKey(0), "Press Start to play", ["START", "STOP"],1966);
    }
}
Outils personnels
  • Cette page a été consultée 1 058 fois.
donate
Google Ads