Post new topic    
Page 1, 2  »
Slime Knight
Send private message
OHR Hero 
 PostThu Jul 22, 2010 5:24 am
Send private message Reply with quote
This was a project I was going to enter into the Fangame contest, until I realized I was in waaay over my head with plotscripting.

Graphics probably will not change much (for now), but I'm still working on scripting.





After the scripts are finished, I'll need to create a system for translating notes from OHR-compatible songs into the notes interface for the game so that the player is pressing buttons with the beat... assuming they're not missing notes...

When/if I get around to making a system, I'll be sure and post it in case anyone wants to add a song to the game's library.

Maybe a cool publicity generator for OHR composers someday?
Slime Knight
Send private message
 
 PostThu Jul 22, 2010 12:54 pm
Send private message Reply with quote
That is just way too awesome.
Liquid Metal Slime
Send private message
 
 PostThu Jul 22, 2010 3:11 pm
Send private message Reply with quote
Way over your head indeed! Rhythm games, I remember hearing a lot of talk about how difficult they were to make. There aren't many examples to learn from, either - Funkatron, the X-mas spinoff, and maybe a few others.

So, hoo. This is quite ambitious.
But booooy would it be awesome, I'd love to plug my compositions on this.
Liquid Metal King Slime
Send private message
 
 PostThu Jul 22, 2010 3:45 pm
Send private message Reply with quote
Baconlabs wrote:
There aren't many examples to learn from, either - Funkatron, the X-mas spinoff, and maybe a few others.

Yes play them. And pay close attention to everything. Devil


I could post the script files for these if it's helpful. I also made a guitar hero system for a colab project that never really came together. I timing on that one is random though, not timed. I basically did the same thing for funkatron. Timing is the hardest thing to do. Due to slight differences in the timing of when sounds are played from system to system on the ohr, it's nearly impossible to sync the music up with the gameplay perfectly. The best idea I've had for this was to split the song up into several dozen tiny sound clips that get played when you hit the note and don't get played when you don't. This however leads to miss timings in the song, such as overlapping and strange gaps. But it's the best I've been able to come up with.
Slime Knight
Send private message
 
 PostThu Jul 22, 2010 4:08 pm
Send private message Reply with quote
Spoonweaver wrote:
This however leads to miss timings in the song, such as overlapping and strange gaps. But it's the best I've been able to come up with.


This is one hurdle I've been dreading. Instead of having the notes play the song themselves, my idea was to play a song and have the notes (which are NPCs) match the rhythm as best they can. If the player misses a note, a bad sound will be played over the song to let them know they've messed-up. This way there is never a break in the song or the notes.

Of course, now that I say that I'm not sure if sounds can be played at the same time as songs...

Spoonweaver wrote:
I could post the script files for these if it's helpful.


That would be wonderful.
Slime Knight
Send private message
 
 PostThu Jul 22, 2010 5:52 pm
Send private message Reply with quote
To be honest, I've never played a Guitar Hero-esque game, so excuse me if this is way off....But couldn't you just adjust the volume? All the way down if a note is missed, and then increment it higher and higher when notes are hit?
Liquid Metal Slime
Send private message
 
 PostThu Jul 22, 2010 11:04 pm
Send private message Reply with quote
Here are the music sync scripts that Powerstick Man XE uses for precision (and consistent) timing, courtesy of TMC:

Code:

global variable (0,waitsecs counter)

script, waitsecs start, begin
waitsecs counter := milliseconds
end

script, waitsecs, ticks, begin
#waitsecs counter += ticks * 56 + 12
waitsecs counter += ticks * 57
while (milliseconds <= waitsecs counter) do (wait)
end


Write "waitsecs start" at the beginning of whichever script needs the precision timing. Then use "waitsecs" in place of "wait" to maintain a consistent time count no matter what computer is playing it. The music scripts in Powerstick Man have been accurate on each of the playtesters' computers, so this is your best option.

The 56 + 12 is good for frame timing and the 57 is good for dialogue timing.

I have two versions: waitsecs and waitsecs2. Waitsecs2 uses the 56 + 12, and I use that for all the air guitar sequences.

So, the whole thing might look like:

Code:
script,Make Music,begin
waitsecs start
play song (12)
set npc frame (0,0)
waitsecs (3)
set npc frame (0,1)
waitsecs (4)
.
.
.
end


You'll still have to do the legwork and figure out how long you need between each frame switch (or whatever you're syncing), but the timing of the computer will rarely, if ever, mess up your sync testing again. And, if for any reason it still isn't syncing to your liking, just change the waitsecs counter values to become accurate. But this shouldn't be necessary.

Enjoy.

And be sure to thank TMC if it works for you.
Place Obligatory Signature Here
 
 PostThu Jul 22, 2010 11:38 pm
Send private message Reply with quote
Quote:
I also made a guitar hero system for a colab project that never really came together.


Retry? I would LOVE to add some songs to that game. I can do graphics and (minor) plotscripting. I would try this myself, but I don't know how to get it to work.
Slime Knight
Send private message
 
 PostFri Jul 23, 2010 5:57 am
Send private message Reply with quote
Pepsi Ranger wrote:
And be sure to thank TMC if it works for you.


I will, and thank you.

@ Everyone - I typed up a list of plans for the game to see what you thought. Some of them will probably never happen, or take a long time to happen, but that's often the nature of plans anyway.

Code:
OHR Hero Plans/Ideas

Some of these are very bold.  I like bold.

Customization
1. Allow player to pick their avatar from a list of mostly OHR-related characters.
   a. Bob the Hamster
   b. Surlaw
   c. Mr. Triangle
   d. (add more)
   e. Original idea was to use slices to create big avatars, but I kinda like the walkabouts now.
2. Allow player to pick a song from a menu
   a. OHR game theme songs
   b. Songs from OHR composers
   c. (add more)
3. Allow player to pick their venue.
   a. Flanat Village
   b. Midgard
   c. Cyport
   d. (add more)
4. Allow player to purchase outfits/instruments/etc. from an in-game store with their points (see below). [really pushing it here]

Gameplay

1. Green, purple, yellow, blue, and red circles represent notes.

2. The notes (which are NPCs) will walk down the screen in-synch with the music's rhythm (as best I can).

3. When a note enters one of the circles at the bottom of the screen that corresponds to its color, the player will press one of keys 1-5.

4. If a note is hit late or early, a point is deducted from the player's score.  If it is hit on time, a point is added.  The score they begin with depends on the difficulty of the song (lower for more difficult, higher for easier).

5. If the player's score reaches 0, they fail the song and must start over.

6. When notes are missed, a loud annoying sound is played to let the player know they suck.

7. Music plays the entire session, no stops (only interrupted by the loud sounds).

8. The player's score at the end of the session can be used to open new levels (story mode (see below)), buy things from a store (see above), etc.

9. Maybe have a way to record highest scores, and/or total accumulated score.

Story Mode
Haven't touched this yet.  Maybe you could be a trans-dimensional wandering minstrel seeking to bring the love of music to creatures in every plane of existence.


J_Taylor wrote:
Retry? I would LOVE to add some songs to that game. I can do graphics and (minor) plotscripting.


By all means, if you want to contribute graphics/songs/whatever, go ahead. Just let me know who to credit.

As for scripting, I would like to write most of it since this is sort of becoming my learn-to-program project. Help is always welcome and often need in my case, but I'm certainly not expecting anyone to put this together for me.

Most likely, I'll spend more time working on my HotOHR entry and use this as a side project, so it may spend some time in production.

Alright, I'm making myself stop typing. Thoughts are welcome; criticism is encouraged.
Liquid Metal Slime
Send private message
 
 PostFri Jul 23, 2010 12:22 pm
Send private message Reply with quote
You'd think VoM's skald would be right at home in this game. Maybe he can be the main character for the story mode?
Gameathon 2009 Winner
Send private message
 
 PostFri Jul 23, 2010 3:20 pm
Send private message Reply with quote
I don't mean to be a party pooper here, but you realize there is no way to time things with the music in the OHR, right? No matter what you do, the gameplay will stop syncing up with the music, and the timing will be slightly different every time you launch the game. I really suggest doing this project using something else.
Slime Knight
Send private message
 
 PostFri Jul 23, 2010 4:18 pm
Send private message Reply with quote
No big deal. If music/game sync isn't possible then maybe there's a way to combine Spoonweaver's idea with Pepsi Ranger/TMC's precision wait scripts to manually play a sound effect when the player presses a key.

This could very well be more difficult to implement and appear less grandiose than my original intentions, but that's no reason to give up just yet.
Liquid Metal Slime
Send private message
 
 PostFri Jul 23, 2010 10:59 pm
Send private message Reply with quote
If you do use Mr. Triangle in your game, let me know. Don't know if that code pasting thing was just for example or what.

Also...

This completely ruins one of my surprises I was working on. So you better make cancelling that idea worth it by actually doing this one!
Check out Red Triangle Games!
Metal Slime
Send private message
 
 PostSat Jul 24, 2010 5:13 am
Send private message Reply with quote
Spoonweaver wrote:
I could post the script files for these if it's helpful.


Yes please? Smile
To friends long gone, and those I've yet to meet - thank you.
Liquid Metal King Slime
Send private message
 
 PostSat Jul 24, 2010 12:04 pm
Send private message Reply with quote
I wasn't really sure how I was going to post them, so I ended up just sending them to G-Wreck.

but I just realised that they're txt files so I can just type them. Hurr Hurr




FUNKOTRON's SCRIPT
Code:


include, plotscr.hsd
include, scancode.hsi
#-------------------------------------------------------------------------




#varibles
#-------------------------------------------------------------------------
global variable, begin
 1,timer
 2,steve
 3,tyron
 4,boosh
 5,score
 6,keytimer
10,highscore
end
#-------------------------------------------------------------------------




#start
#-------------------------------------------------------------------------

plotscript, new game, begin
suspend player
suspend obstruction
import globals (1)
showtextbox (2)
wait for textbox
teleport to map (0,11,4)



timer:=0
score:=0
keytimer:=0

wait (16)
write map block (11,1,0)
wait(10)
create npc (3,11,2)
wait(5)
walk npc (3,south,3)
wait(15)
create npc (1,11,2)
wait(5)
walk npc (1,south,3)
walk npc (3,west,2)
wait(20)
create npc (2,11,2)
set NPC direction (3, south)
wait(5)
write map block (11,1,1)
walk npc (2,south,1)
wait(15)
walk npc (2,east,2)
wait(15)
set NPC direction (2, north)
wait(15)
play sound (0,false,false)
wait(10)
walk npc (2,south,2)
wait(40)
variable(tilex,tiley)
for (tilex,0,22,1) do,begin
for (tiley,0,2,1) do, begin
write map block (tilex,tiley,0)
end,end
write map block (10,0,2),write map block (10,1,2),write map block (10,2,2)
write map block (12,0,3),write map block (12,1,3),write map block (12,2,3)

play song (0)

tyron:=NPC reference (1,0)
boosh:=NPC reference (2,0)
steve:=NPC reference (3,0)

funkout
end
#-------------------------------------------------------------------------




#game loop
#-------------------------------------------------------------------------
plotscript, funkout, begin
variable(keyz,rand,kill)
while (1==1) do,begin
show value (score)

if (timer<<2550) then (keytimer:=1+keytimer)

if (timer<<2550>>1300) then (keytimer:=1+keytimer)

rand:=random(90,96)
if (keytimer>>20) then (create npc (rand,22,1,west),keytimer:=0)


kill:=npc at pixel (10,30)
if (get NPC ID (kill)>>0) then (score:=score--3,create npc (98,11,2,west))
destroy npc (kill)
DESTROY NPC (99)
DESTROY NPC (98)

keyz:=npc at pixel (220,30)
if (key is pressed (key:up),and,not (key is pressed (key:right)),and,not (key is pressed (key:down)),and,not (key is pressed (key:left))) then , begin
if (get NPC ID (keyz)==90) then (score:=score+10,change npc id(keyz,99))
end
if (key is pressed (key:right),and,not (key is pressed (key:up)),and,not (key is pressed (key:down)),and,not (key is pressed (key:left))) then , begin
if (get NPC ID (keyz)==91) then (score:=score+10,change npc id(keyz,99))
end
if (key is pressed (key:down),and,not (key is pressed (key:up)),and,not (key is pressed (key:right)),and,not (key is pressed (key:left))) then , begin
if (get NPC ID (keyz)==92) then (score:=score+10,change npc id(keyz,99))
end
if (key is pressed (key:left),and,not (key is pressed (key:up)),and,not (key is pressed (key:right)),and,not (key is pressed (key:down))) then , begin
if (get NPC ID (keyz)==93) then (score:=score+10,change npc id(keyz,99))
end

#G
if (key is pressed (34),and,not (key is pressed (30)),and,not (key is pressed (21))) then , begin
if (get NPC ID (keyz)==94) then (score:=score+10,change npc id(keyz,99))
end

#a
if (key is pressed (30),and,not (key is pressed (21)),and,not (key is pressed (34))) then , begin
if (get NPC ID (keyz)==95) then (score:=score+10,change npc id(keyz,99))
end

#y
if (key is pressed (21),and,not (key is pressed (30)),and,not (key is pressed (34))) then , begin
if (get NPC ID (keyz)==96) then (score:=score+10,change npc id(keyz,99))
end







if (timer==0,or,timer==130,or,timer==390,or,timer==640,or,timer==785,or,timer==1725,or,timer==925,or,timer==1140,or,timer==2385,or,timer==1460,or,timer==2005,or,timer==2274) then , begin

(put npc (3,180,100),put npc (1,220,100),put npc (2,260,100))
set NPC direction (1, south),set NPC direction (2, south),set NPC direction (3, south)

end








if (timer==5,or,timer==15,or,timer==25,or,timer==35,or,timer==45,or,timer==55,or,timer==65,or,timer==75,or,timer==85,or,timer==95,or,timer==105,or,timer==115,or,timer==125) then , begin
put npc (3,180,95),put npc (1,220,100),put npc (2,260,95)
end

if (timer==10,or,timer==20,or,timer==30,or,timer==40,or,timer==50,or,timer==60,or,timer==70,or,timer==80,or,timer==90,or,timer==100,or,timer==110,or,timer==120) then , begin
put npc (3,180,100),put npc (1,220,95),put npc (2,260,100)
end

if (timer==140,or,timer==160,or,timer==180,or,timer==200,or,timer==220,or,timer==240,or,timer==260,or,timer==280,or,timer==300,or,timer==320,or,timer==340,or,timer==360,or,timer==380) then , begin
set NPC direction (1, west),set NPC direction (2, west),set NPC direction (3, west)
end


if (timer==150,or,timer==170,or,timer==190,or,timer==210,or,timer==230,or,timer==250,or,timer==270,or,timer==290,or,timer==310,or,timer==330,or,timer==350,or,timer==370) then , begin
set NPC direction (1, east),set NPC direction (2, east),set NPC direction (3, east)
end

if (timer==400,or,timer==420,or,timer==440,or,timer==460,or,timer==480,or,timer==500,or,timer==520,or,timer==540,or,timer==560,or,timer==580,or,timer==600,or,timer==620) then , begin
set NPC direction (1, north),set NPC direction (2, north),set NPC direction (3, north)
end

if (timer==410,or,timer==430,or,timer==450,or,timer==470,or,timer==490,or,timer==510,or,timer==530,or,timer==550,or,timer==570,or,timer==590,or,timer==610,or,timer==630) then , begin
set NPC direction (1, south),set NPC direction (2, south),set NPC direction (3, south)
end


if (timer==655,or,timer==665,or,timer==675,or,timer==685,or,timer==695,or,timer==705,or,timer==715,or,timer==725,or,timer==735,or,timer==745,or,timer==755,or,timer==765,or,timer==775,or,timer==2275,or,timer==2285,or,timer==2295,or,timer==2305,or,timer==2315,or,timer==2325,or,timer==2335,or,timer==2345,or,timer==2355,or,timer==2365,or,timer==2375) then,begin
set NPC direction (1, west),set NPC direction (3, west)
put npc (1,190,100)
end


if (timer==660,or,timer==670,or,timer==680,or,timer==690,or,timer==700,or,timer==710,or,timer==720,or,timer==730,or,timer==740,or,timer==750,or,timer==760,or,timer==770,or,timer==780,or,timer==2280,or,timer==2290,or,timer==2300,or,timer==2310,or,timer==2320,or,timer==2330,or,timer==2340,or,timer==2350,or,timer==2360,or,timer==2370,or,timer==2380) then,begin
set NPC direction (1, west),set NPC direction (3, west)
put npc (1,220,100)
end


if (timer==795,or,timer==805,or,timer==815,or,timer==825,or,timer==835,or,timer==845,or,timer==855,or,timer==865,or,timer==876,or,timer==885,or,timer==895,or,timer==905,or,timer==915) then,begin
set NPC direction (1,east),set NPC direction (2,east)
put npc (1,220,100)
end

if (timer==800,or,timer==810,or,timer==820,or,timer==830,or,timer==840,or,timer==850,or,timer==860,or,timer==870,or,timer==880,or,timer==890,or,timer==900,or,timer==910,or,timer==920) then,begin
set NPC direction (1,east),set NPC direction (2,east)
put npc (1,250,100)
end

if (timer==930,or,timer==990,or,timer==1050,or,timer==1110,or,timer==1430) then,begin
set NPC direction (3,east)
end

if (timer==940,or,timer==1000,or,timer==1060,or,timer==1120,or,timer==1440) then,begin
set NPC direction (1,east)
end

if (timer==950,or,timer==1010,or,timer==1070,or,timer==1130,or,timer==1450) then,begin
set NPC direction (2,east)
end

if (timer==960,or,timer==1020,or,timer==1080,or,timer==1400) then,begin
set NPC direction (3,west)
end

if (timer==970,or,timer==1030,or,timer==1090,or,timer==1410) then,begin
set NPC direction (1,west)
end

if (timer==980,or,timer==1040,or,timer==1100,or,timer==1420) then,begin
set NPC direction (2,west)
end








if (timer==1160,or,timer==1220,or,timer==1280,or,timer==1340) then,begin
set NPC direction (3,north)
end

if (timer==1170,or,timer==1230,or,timer==1290,or,timer==1350) then,begin
set NPC direction (1,north)
end

if (timer==1180,or,timer==1240,or,timer==1300,or,timer==1360) then,begin
set NPC direction (2,north)
end

if (timer==1190,or,timer==1250,or,timer==1310,or,timer==1370) then,begin
set NPC direction (3,south)
end

if (timer==1200,or,timer==1260,or,timer==1320,or,timer==1380) then,begin
set NPC direction (1,south)
end

if (timer==1210,or,timer==1270,or,timer==1330,or,timer==1390) then,begin
set NPC direction (2,south)
end





if (timer==1460,or,timer==1470,or,timer==1480,or,timer==1490,or,timer==1500,or,timer==1510,or,timer==1520,or,timer==1530,or,timer==1540,or,timer==1550,or,timer==1560,or,timer==1570,or,timer==1580,or,timer==1590,or,timer==1600,or,timer==1610,or,timer==1620) then,begin
set NPC direction (2,south),set NPC direction (3,south),set NPC direction (1,north)
end

if (timer==1465,or,timer==1475,or,timer==1485,or,timer==1495,or,timer==1505,or,timer==1515,or,timer==1525,or,timer==1535,or,timer==1545,or,timer==1555,or,timer==1565,or,timer==1575,or,timer==1585,or,timer==1595,or,timer==1605,or,timer==1615,or,timer==1625) then,begin
set NPC direction (2,north),set NPC direction (3,north),set NPC direction (1,south)
end



if (timer==1630,or,timer==1640,or,timer==1650,or,timer==1660,or,timer==1670,or,timer==1680,or,timer==1690,or,timer==1700,or,timer==1710,or,timer==1720) then,begin
set NPC direction (2,west),set NPC direction (3,west),set NPC direction (1,east)
end

if (timer==1635,or,timer==1645,or,timer==1655,or,timer==1665,or,timer==1675,or,timer==1685,or,timer==1695,or,timer==1705,or,timer==1715) then,begin
set NPC direction (2,east),set NPC direction (3,east),set NPC direction (1,west)
end




if (timer==1730,or,timer==1740,or,timer==1760,or,timer==1770,or,timer==1790
,or,timer==1800,or,timer==1810,or,timer==1830,or,timer==1840) then,begin
set NPC direction (3,east),set NPC direction (1,east)
put npc (3,180,100)
end

if (timer==1735,or,timer==1765,or,timer==1795,or,timer==1805,or,timer==1835) then,begin
set NPC direction (3,east),set NPC direction (1,east)
put npc (3,210,100)
end


if (timer==1745,or,timer==1755,or,timer==1775,or,timer==1785,or,timer==1815,or,timer==1825,or,timer==1845,or,timer==1855) then,begin
set NPC direction (2,west),set NPC direction (1,west)
put npc (2,260,100)
end


if (timer==1750,or,timer==1780,or,timer==1820,or,timer==1850) then,begin
set NPC direction (2,west),set NPC direction (1,west)
put npc (2,230,100)
end




if (timer==1860,or,timer==1875,or,timer==1885,or,timer==1895,or,timer==1905,or,timer==1915,or,timer==1925,or,timer==1935,or,timer==1945,or,timer==1955,or,timer==1965,or,timer==1975,or,timer==1985,or,timer==1995) then,begin
set NPC direction (2,west),set NPC direction (1,north),set NPC direction (3,east)
put npc (2,260,100),put npc (3,180,100)
end

if (timer==1870,or,timer==1880,or,timer==1890,or,timer==1900,or,timer==1910,or,timer==1920,or,timer==1930,or,timer==1940,or,timer==1950,or,timer==1960,or,timer==1970,or,timer==1980,or,timer==1990,or,timer==2000) then,begin
set NPC direction (2,west),set NPC direction (1,north),set NPC direction (3,east)
put npc (2,230,100),put npc (3,210,100)
end











if (timer==2020,or,timer==2030,or,timer==2040,or,timer==2050,or,timer==2060,or,timer==2070,or,timer==2080,or,timer==2090,or,timer==2100,or,timer==2110,or,timer==2120,or,timer==2130,or,timer==2140,or,timer==2150,or,timer==2160,or,timer==2170,or,timer==2180,or,timer==2190,or,timer==2200,or,timer==2210,or,timer==2220,or,timer==2230,or,timer==2240,or,timer==2250,or,timer==2260,or,timer==2270) then , begin
put npc (3,180,95),put npc (1,220,100),put npc (2,260,95)
end

if (timer==2015,or,timer==2025,or,timer==2035,or,timer==2045,or,timer==2055,or,timer==2065,or,timer==2075,or,timer==2085,or,timer==2095,or,timer==2105,or,timer==2115,or,timer==2125,or,timer==2135,or,timer==2145,or,timer==2155,or,timer==2165,or,timer==2175,or,timer==2185,or,timer==2195,or,timer==2205,or,timer==2215,or,timer==2225,or,timer==2235,or,timer==2245,or,timer==2255,or,timer==2265) then , begin
put npc (3,180,100),put npc (1,220,95),put npc (2,260,100)
end





if (timer==2390,or,timer==2394,or,timer==2398,or,timer==2402,or,timer==2406,or,timer==2410,or,timer==2414,or,timer==2418,or,timer==2422,or,timer==2426,or,timer==2430,or,timer==2434,or,timer==2438,or,timer==2442,or,timer==2446,or,timer==2450,or,timer==2454,or,timer==2458,or,timer==2462,or,timer==2466,or,timer==2470,or,timer==2474,or,timer==2478,or,timer==2482,or,timer==2486,or,timer==2490,or,timer==2494,or,timer==2498,or,timer==2502,or,timer==2506,or,timer==2510,or,timer==2514,or,timer==2518,or,timer==2522,or,timer==2526,or,timer==2530,or,timer==2534,or,timer==2538,or,timer==2542,or,timer==2546,or,timer==2550,or,timer==2554,or,timer==2558,or,timer==2562,or,timer==2566,or,timer==2570,or,timer==2574,or,timer==2578,or,timer==2582,or,timer==2586,or,timer==2590,or,timer==2594,or,timer==2598,or,timer==2602,or,timer==2606,or,timer==2610,or,timer==2614,or,timer==2618,or,timer==2622,or,timer==2626) then,begin
set NPC direction (2,east),set NPC direction (1,east)
put npc (1,253,100)
end


if (timer==2392,or,timer==2396,or,timer==2400,or,timer==2404,or,timer==2408,or,timer==2412,or,timer==2416,or,timer==2420,or,timer==2424,or,timer==2428,or,timer==2432,or,timer==2436,or,timer==2440,or,timer==2444,or,timer==2448,or,timer==2452,or,timer==2456,or,timer==2460,or,timer==2464,or,timer==2468,or,timer==2472,or,timer==24760,or,timer==2480,or,timer==2484,or,timer==2488,or,timer==2492,or,timer==2496,or,timer==2500,or,timer==2504,or,timer==2508,or,timer==2512,or,timer==2516,or,timer==2520,or,timer==2524,or,timer==2528,or,timer==2532,or,timer==2536,or,timer==2540,or,timer==2544,or,timer==2548,or,timer==2552,or,timer==2556,or,timer==2560,or,timer==2564,or,timer==2568,or,timer==2572,or,timer==2576,or,timer==2580,or,timer==2584,or,timer==2588,or,timer==2592,or,timer==2596,or,timer==2600,or,timer==2604,or,timer==2608,or,timer==2612,or,timer==2616,or,timer==2620,or,timer==2624,or,timer==2628) then,begin
set NPC direction (2,east),set NPC direction (1,east)
put npc (1,238,100)
end





if (timer==2450) then (change NPC ID (boosh,5))
if (timer==2520) then (set NPC direction (3,east))
if (timer==2550) then (walk npc (3,west,10))










timer:=1+timer


#2620.8 song ends
if (timer>>2621) then (scoreboard)
wait(1)
#-V cleanup

#-^ cleanup
end,end
#-------------------------------------------------------------------------



#end of game
#-------------------------------------------------------------------------
plotscript, scoreboard, begin
stop song
show no value
if (score>>highscore) then (highscore:=score)
export globals (1,1,1)
save in slot (1)

Show text box (1)
teleport to map (1,6,5)
wait for textbox
new game

end
#-------------------------------------------------------------------------







Mysterious Colab Lab Project featuring Guitar Hero's SCRIPT

Code:



include, plotscr.hsd
include, scancode.hsi






#-------------------------------------------------------------------------

global variable, begin

5,GHscore
6,ghtime

end

######---------------------------------------------------







#---------------

plotscript, gherostart,begin



Alter NPC (12,NPCstat:picture,42)
wait(5)
Alter NPC (12,NPCstat:picture,43)
wait(5)
Alter NPC (12,NPCstat:picture,44)
wait(5)

destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)
destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0),destroynpc(0)

wait(15)

write map block (5,9,5)
playsound(5,false,true)
wait(1)
write map block (6,9,6)
playsound(5,false,true)
wait(1)
write map block (7,9,7)
playsound(5,false,true)
wait(1)
write map block (8,9,8)
playsound(5,false,true)
wait(1)
write map block (9,9,9)
playsound(5,false,true)

wait(20)

ghero

end










#---------------V-G-Hero-V---------------

plotscript,ghero,begin

ghtime:=0
ghscore:=0
while (ghtime<<2000) do , begin

increment (ghtime)

variable (dude,duder)
dude:=random(1,2)
if(dude==1) then ( set NPC frame (12, 0) )
if(dude==2) then ( set NPC frame (12, 1) )
duder:=random(1,4)
if(duder==1) then ( set NPC direction (12,up) )
if(duder==2) then ( set NPC direction (12,down) )
if(duder==3) then ( set NPC direction (12,left) )
if(duder==4) then ( set NPC direction (12,right) )

variable (thinga,thingb,thingc,thingd,thinge)
thinga:=random(1,46)
if(thinga==13) then ( create NPC (1,5,4,south) )
thingb:=random(1,46)
if(thingb==18) then ( create NPC (2,6,4,south) )
thingc:=random(1,46)
if(thingc==14) then ( create NPC (3,7,4,south) )
thingd:=random(1,46)
if(thingd==19) then ( create NPC (4,8,4,south) )
thinge:=random(1,46)
if(thinge==10) then ( create NPC (5,9,4,south) )

if (get NPC ID (NPC at pixel (110, 210, 0))==1) then (
destroynpc( NPC at pixel (110, 210, 0)),ghscore:=ghscore--6 )

if (get NPC ID (NPC at pixel (130, 210, 0))==2) then (
destroynpc( NPC at pixel (130, 210, 0)),ghscore:=ghscore--6 )

if (get NPC ID (NPC at pixel (150, 210, 0))==3) then (
destroynpc( NPC at pixel (150, 210, 0)),ghscore:=ghscore--6 )

if (get NPC ID (NPC at pixel (170, 210, 0))==4) then (
destroynpc( NPC at pixel (170, 210, 0)),ghscore:=ghscore--6 )

if (get NPC ID (NPC at pixel (190, 210, 0))==5) then (
destroynpc( NPC at pixel (190, 210, 0)),ghscore:=ghscore--6 )




if ( keyval (02)==2 ,or, keyval (02)==3 ) then , begin
if ( get NPC ID (NPC at pixel (110, 183, 0))==1,or,
get NPC ID (NPC at pixel (110, 197, 0))==1
) then (
ghscore:=ghscore+10
playsound (6,false,true)
destroynpc(NPC at pixel (110, 190, 0))
) else (
ghscore:=ghscore--7
playsound (11,false,true)
)
end
if ( keyval (03)==2 ,or, keyval (03)==3 ) then , begin
if ( get NPC ID (NPC at pixel (130, 183, 0))==2,or,
get NPC ID (NPC at pixel (130, 197, 0))==2
) then (
ghscore:=ghscore+10
playsound (7,false,true)
destroynpc(NPC at pixel (130, 190, 0))
) else (
ghscore:=ghscore--7
playsound (11,false,true)
)
end
if ( keyval (04)==2 ,or, keyval (04)==3 ) then , begin
if ( get NPC ID (NPC at pixel (150, 183, 0))==3,or,
get NPC ID (NPC at pixel (150, 197, 0))==3
) then (
ghscore:=ghscore+10
playsound (8,false,true)
destroynpc(NPC at pixel (150, 190, 0))
) else (
ghscore:=ghscore--7
playsound (11,false,true)
)
end
if ( keyval (05)==2 ,or, keyval (05)==3 ) then , begin
if ( get NPC ID (NPC at pixel (170, 183, 0))==4,or,
 get NPC ID (NPC at pixel (170, 197, 0))==4
) then (
ghscore:=ghscore+10
playsound (9,false,true)
destroynpc(NPC at pixel (170, 190, 0))
) else (
ghscore:=ghscore--7
playsound (11,false,true)
)
end
if ( keyval (06)==2 ,or, keyval (06)==3 ) then , begin
if ( get NPC ID (NPC at pixel (190, 183, 0))==5,or,
get NPC ID (NPC at pixel (190, 197, 0))==5
) then (
ghscore:=ghscore+10
playsound (10,false,true)
destroynpc(NPC at pixel (190, 190, 0))
) else (
ghscore:=ghscore--7
playsound (11,false,true)
)
end

wait(1)
end

Playsound(0)

change npc id (13,14)
change npc id (12,16)
wait(5)
swap in hero (0)
set hero picture (Hero by slot(0),3)
swap in hero (1)
swap in hero (2)
destroynpc(14)
use door (1)
Show Textbox (53)
wait for textbox
end

#---------------^-G-Hero-^---------------


plotscript,endchecker,begin



end




Hope you guys find these useful.
Display posts from previous:
Page 1, 2  »