The Depths vPA.0.5

***************************************************************************************************************************** *Code written by Sprocket T. and El Furriando *If you use some or all of the code here please attribute thank you :) *The program is getting further ahead of what my comments. I appologize and when I can find time I will go through and fully *comment the Code. *Working note. to fix adding spawn points to the rooms set the floor to a different floor type before finilizing *Use a set amount of monsters per level. No spawners. Still randamize. *To cope with the lag spikes that can happen in the game and to promote stategy based gameplay create a semi turn based system. *the premis being a stanima bar. A single character can only make so many moves per second. That way multiplayer groups *won't be overwhelmed by monsters by just one player moving. *Add treasure chests at all hall ends. ***************************************************************************************************************************** DSPK V04.00 Furcadia (0:0) When everything is starting up, (5:300) set variable %step to the value 0. (5:300) set variable %inSafe to the value 0. (5:300) set variable %level to the value 1. (5:300) set variable %mobOne to the value 2408. (5:300) set variable %mobTwo to the value 2407. (5:300) set variable %mobThree to the value 2405. (5:300) set variable %stat to the value 1. (5:300) set variable %statTwo to the value 1. (5:300) set variable %statThree to the value 1. (5:300) set variable %Substep to the value 0. (5:250) set message ~nameHolder to { }. (5:250) set message ~statHolder to { }. (5:250) set message ~statHold to { }. (5:250) set message ~guiUpdate to { }. (5:250) set message ~tempGui to { }. (5:650) use the PhoenixSpeak 'just testing' area to store info from now on. (5:166) make it impossible to pick up or drop items in region 5. (5:166) make it impossible to pick up or drop items in region 4. (5:54) make any furre present unable to lead and follow. (0:58) When someone is summoned to the Dream, (5:112) make summoned furres arrive at the start of the Dream. *********************************************************************************************************************** *Init timers* Clock Top (0:0) When everything is starting up, (5:50) set countdown timer 400 to go off in 1 seconds. (5:300) set variable %npc_loop to the value 400. *Tie all npc's to one tick of the game clock *For each timer being used assign an npc to it (0:49) When any countdown timer goes off, (5:327) set variable %timer to the number of the countdown timer that just went off. (5:301) copy the value of variable %timer into variable %wut_npc. (5:304) take variable %wut_npc and subtract 399 from it. (5:300) set variable %trig_npc to the value 0. ************************************************************************************************************************** *if noone was in the dream when entered reset to generate new dungeon (0:9) When someone arrives in the Dream, (1:200) and variable %inDream is equal to 0, (5:5) change item 2415 to item 0. (5:5) change item 2401 to item 0. (5:5) change item %mobOne to item 0. (5:5) change item %mobTwo to item 0. (5:5) change item %mobThree to item 0. (5:5) change item 305 to item 0. (5:5) change item 306 to item 0. (5:5) change item 307 to item 0. (5:5) change item 308 to item 0. (5:5) change item 309 to item 0. (5:5) change item 310 to item 0. (5:5) change item 58 to item 0. *We are going to use a dummy player to track the stats of all npcs* (5:631) forget all PhoenixSpeak info about the player named {N}. (5:5) change item 1398 to item 0 (5:139) show effects in region 6 to everyone that can see there. (4:1) only where the floor is 500, (5:150) place overlay effect 0. (5:120) make this/these location(s) part of region 5. (5:5) change item 1143 to item 0. (5:5) change item 1135 to item 0. (5:1) set the floor to 161. (4:0) clear all filtering, (5:300) set variable %step to the value 0. (5:300) set variable %hallCount to the value 0. (5:300) set variable %roomCount to the value 0. (5:300) set variable %debrisCount to the value 0. (5:300) set variable %mobCount to the value 0. (5:300) set variable %stat to the value 1. (5:300) set variable %statTwo to the value 1. (5:300) set variable %statThree to the value 1. (5:300) set variable %Substep to the value 0. (5:300) set variable %inDungeon to the value 0. *In wanderer tuple, add in the shape variations for the npc* *Variation number in () followed by the item number, and then a ( if its at the end of the string* (5:250) set message ~wanderer_tuple to { (1)305(2)306(3)307(4)308(5)309(6)310( }. *set wanderer_diversity to the number of entries in wanderer_tuple* (5:300) set variable %wanderer_diversity to the value 6. (5:300) set variable %level to the value 1. *Normal entry into dream. (0:9) When a furre arrives in the dream, (5:302) take variable %inDream and add 1 to it. (5:302) take variable %inSafe and add 1 to it. (5:180) show the triggering furre's DragonSpeak Button 11. (5:180) show the triggering furre's DragonSpeak Button 12. (5:180) show the triggering furre's DragonSpeak Button 13. (5:180) show the triggering furre's DragonSpeak Button 14. (5:180) show the triggering furre's DragonSpeak Button 15. (5:180) show the triggering furre's DragonSpeak Button 16. (5:180) show the triggering furre's DragonSpeak Button 17. (5:180) show the triggering furre's DragonSpeak Button 18. (5:180) show the triggering furre's DragonSpeak Button 19. (5:180) show the triggering furre's DragonSpeak Button 20. (5:180) show the triggering furre's DragonSpeak Button 21. (5:252) set message ~newName to the triggering furre's name. (5:257) take message ~guiUpdate and add { (~newName) } onto the end of it. (5:15) move the triggering furre to (18,28), or to someplace nearby if it's occupied. (5:200) emit message {Getting further in development, Basic Ai now functioning, 100 levels of randomly generated mazes. The further down you go the bigger the maze.} to the triggering furre. (5:200) emit message {For more information on this project visit my blog here. Updates Saturdays, The F tab has remaining menu options} to the triggering furre. (5:76) place item 58 in the triggering furre's paws. *badd Entry Solution? (0:9) When someone arrives in the Dream, (1:185) and the triggering furre (didn't move from/isn't standing in) region 4, (5:15) move the triggering furre to (18,28), or to someplace nearby if it's occupied. (0:10) When someone leaves the Dream, (1:85) and the triggering furre (moved from/is standing in) region 4, (5:304) take variable %inSafe and subtract 1 from it. (0:10) When someone leaves the Dream, (5:304) take variable %inDream and subtract 1 from it. (5:252) set message ~newName to the triggering furre's name. (5:278) remove the first 1 copies of { (~newName) } from message ~guiUpdate. (5:630) forget all PhoenixSpeak info about the triggering furre. (0:49) When any countdown timer goes off, (4:30) only in region 1, (5:1) set the floor to 161. * depth (0:49) When any countdown timer goes off, (5:433) jump the animation of DragonSpeak Button 11 to step %level for everyone in the Dream. ***************************************************************************************************************************** **SECTION** Encyclopedia **************************************************************************************************************************** *This area will hold all the data for enemies and weapons and such. For easy pulling into loot tables and enemy tables *so the code doesnt have to be reiterated for each level. *monster information *model *hp *behavior type *name *one model#, two hp, three ap, four class, five armor (0:49) When any countdown timer goes off, (1:201) and variable %level is more than 0, (1:202) and variable %level is less than 101, (5:250) set message ~mobOne to { (1)2405(2)20(3)10(4)1(5)1( }. (5:250) set message ~mobTwo to { (1)2407(2)10(3)10(4)2(5)1( }. (5:250) set message ~mobThree to { (1)2408(2)30(3)10(4)1(5)1( }. **************************************************************************************************************************** **SECTION** Player Information **************************************************************************************************************************** *When someone enters dream create stats for that individual. *The stat system will not be based on GURPS. There will be no underlaying stats to roll against. *Combat will be basic rolls of Weapon strength versus armor class. There will be situations where 0 damage will occur. *As combat will be Time based players will have Action Points Comonly known as AP to perform between rounds. *Action Points will be spent on movement and abilities. *Stats and abilities will be given by equipment. *Equipables will be Weapon, Armor, Clothes, 2 rings, 1 necklace (0:9) When someone arrives in the Dream, *H = HP *A = max AP *B = remaining AP *E = Equipment *D = Defense *W = attack *C = Currency *I = Inventory n (5:600) memorize that the PhoenixSpeak info {H} about the triggering furre will now be 100. (5:600) memorize that the PhoenixSpeak info {A} about the triggering furre will now be 10. (5:600) memorize that the PhoenixSpeak info {B} about the triggering furre will now be 10. (5:600) memorize that the PhoenixSpeak info {E} about the triggering furre will now be 1111. (5:600) memorize that the PhoenixSpeak info {E2} about the triggering furre will now be 1111. (5:600) memorize that the PhoenixSpeak info {D} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {W} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {C} about the triggering furre will now be 1. *inventory (5:600) memorize that the PhoenixSpeak info {I} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {I2} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {I3} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {I4} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {I5} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {I6} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {I7} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {I8} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {I9} about the triggering furre will now be 1. *abilities (5:600) memorize that the PhoenixSpeak info {A1} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {A2} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {A3} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {A4} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {A5} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {A6} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {A7} about the triggering furre will now be 1. (5:600) memorize that the PhoenixSpeak info {A8} about the triggering furre will now be 1. *Use stored player names to update thier gui (0:49) When any countdown timer goes off, (5:251) copy message ~guiUpdate onto message ~tempUpdate. (5:283) set variable %Update to the total number of characters before {)} appears in message ~guiUpdate (or zero if not found). (5:270) chop off the end of message ~tempUpdate, leaving just the first %Update characters of it still there. (5:274) chop off the beginning of message ~tempUpdate, removing the first 3 characters of it. (5:56) make the furre named {~tempUpdate} the new triggering furre, if they're in the Dream right now. ******* * This section updates the Gui information for all players *remember relevent information (5:611) remember the PhoenixSpeak info {H} about the furre named {~tempUpdate}, and put it in variable %Hp. *jump relevent buttons (5:442) jump the animation of the triggering furre's DragonSpeak Button 21 to step %Hp. (5:611) remember the PhoenixSpeak info {I} about the furre named {~tempUpdate}, and put it in variable %I. (5:611) remember the PhoenixSpeak info {I2} about the furre named {~tempUpdate}, and put it in variable %I2. (5:611) remember the PhoenixSpeak info {I3} about the furre named {~tempUpdate}, and put it in variable %I3. (5:611) remember the PhoenixSpeak info {I4} about the furre named {~tempUpdate}, and put it in variable %I4. (5:611) remember the PhoenixSpeak info {I5} about the furre named {~tempUpdate}, and put it in variable %I5. (5:611) remember the PhoenixSpeak info {I6} about the furre named {~tempUpdate}, and put it in variable %I6. (5:611) remember the PhoenixSpeak info {I7} about the furre named {~tempUpdate}, and put it in variable %I7. (5:611) remember the PhoenixSpeak info {I8} about the furre named {~tempUpdate}, and put it in variable %I8. (5:611) remember the PhoenixSpeak info {I9} about the furre named {~tempUpdate}, and put it in variable %I9. *ability updates (5:611) remember the PhoenixSpeak info {A1} about the furre named {~tempUpdate}, and put it in variable %A1. (5:442) jump the animation of the triggering furre's DragonSpeak Button 19 to step %A1. (5:611) remember the PhoenixSpeak info {A2} about the furre named {~tempUpdate}, and put it in variable %A2. (5:442) jump the animation of the triggering furre's DragonSpeak Button 18 to step %A2. (5:611) remember the PhoenixSpeak info {A3} about the furre named {~tempUpdate}, and put it in variable %A3. (5:442) jump the animation of the triggering furre's DragonSpeak Button 12 to step %A3. (5:611) remember the PhoenixSpeak info {A4} about the furre named {~tempUpdate}, and put it in variable %A4. (5:442) jump the animation of the triggering furre's DragonSpeak Button 13 to step %A4. (5:611) remember the PhoenixSpeak info {A5} about the furre named {~tempUpdate}, and put it in variable %A5. (5:442) jump the animation of the triggering furre's DragonSpeak Button 14 to step %A5. (5:611) remember the PhoenixSpeak info {A6} about the furre named {~tempUpdate}, and put it in variable %A6. (5:442) jump the animation of the triggering furre's DragonSpeak Button 15 to step %A6. (5:611) remember the PhoenixSpeak info {A7} about the furre named {~tempUpdate}, and put it in variable %A7. (5:442) jump the animation of the triggering furre's DragonSpeak Button 16 to step %A7. * (5:611) remember the PhoenixSpeak info {A8} about the furre named {~tempUpdate}, and put it in variable %Update. *(5:442) jump the animation of the triggering furre's DragonSpeak Button 17 to step %Update. *********** *cycle updater (5:278) remove the first 1 copies of { (~tempUpdate) } from message ~guiUpdate. (5:257) take message ~guiUpdate and add { (~tempUpdate) } onto the end of it. **************************************************************************************************************************** **SECTION** Basic Player Actions **************************************************************************************************************************** *currently in the works. *forgot to mention in article code in basic player action also made by El Furriando *basic F3 for testing and attacking* *Depending on the direction the player is facing grab the position directly in front of them. (0:16) When someone uses any item, (5:350) set variable %temp to the X,Y position the triggering player (moved from/is standing at). (0:16) When someone uses any item, (1:13) and they are facing northeast (up and right), (5:352) move the position in variable %temp northeast (up and right) 1 step(s). (0:16) When someone uses any item, (1:14) and they are facing southeast (down and right), (5:353) move the position in variable %temp southeast (down and right) 1 step(s). (0:16) When someone uses any item, (1:15) and they are facing southwest (down and left), (5:354) move the position in variable %temp southwest (down and left) 1 step(s). (0:16) When someone uses any item, (1:16) and they are facing northwest (up and left), (5:355) move the position in variable %temp northwest (up and left) 1 step(s). *check to see if there is anything in the position in front of the player *if there is information about that position and put it into a reference variable *using the reference variable access the rest of the data Health(max),Sub Health,Action Points,Class,Defense, and turn *perform the the attack check and commit that check to the database *Then emit the information about the monster to the one who attacked it. (0:16) When someone uses any item, (1:615) and the PhoenixSpeak info {%temp.x %temp.y} about the player named {N} exists, (5:611) remember the PhoenixSpeak info {%temp.x %temp.y} about the player named {N}, and put it in variable %temp1. (5:611) remember the PhoenixSpeak info {%temp1 h} about the player named {N}, and put it in variable %emit_health. (5:611) remember the PhoenixSpeak info {%temp1 h} about the player named {N}, and put it in variable %emit_sub_health. (5:611) remember the PhoenixSpeak info {%temp1 a} about the player named {N}, and put it in variable %emit_ap. (5:611) remember the PhoenixSpeak info {%temp1 c} about the player named {N}, and put it in variable %emit_class. (5:611) remember the PhoenixSpeak info {%temp1 d} about the player named {N}, and put it in variable %emit_defense. (5:611) remember the PhoenixSpeak info {%temp1 t} about the player named {N}, and put it in variable %emit_turn. (5:304) take variable %emit_sub_health and subtract 1 from it. (5:601) memorize that the PhoenixSpeak info {%temp1 h} about the player named {N} will now be %emit_sub_health. (5:200) emit message {My ID is %temp1} to the triggering player. (5:200) emit message {My HP was %emit_health, but its now %emit_sub_health} to the triggering player. (5:200) emit message {I have %emit_ap action points.} to the triggering player. (5:200) emit message {My class number is %emit_class} to the triggering player. (5:200) emit message {My defense is %emit_defense} to the triggering player. (5:200) emit message {I am on turn %emit_turn} to the triggering player. *************************************************************************************************************************** **SECTION** Level Initilization Protocal and map clear **************************************************************************************************************************** *spoken Reload - clear map of all previous information (0:3) When someone moves into item 1135, (5:901) popup a Yes/No dialog with request number 1 and message {Once you go to the safe room you can not re-enter this level. Proceed?} for the triggering furre. (0:86) When someone clicks Yes for request number 1, (5:54) make any furre present unable to lead and follow. (5:15) move the triggering furre to (18,28), or to someplace nearby if it's occupied. (5:5) change item 1332 to item 1802. (5:302) take variable %inSafe and add 1 to it. *bug workaround not elegent but it will fix a bug that happens when two people try to exit a dungeon level at the same time. *temporary when level 100 reached go back to level one (0:86) When someone clicks Yes for request number 1, (1:203) and variable %inSafe is equal to variable %inDream, (1:200) and variable %level is equal to 100, (5:31) play midi 2 to everyone on the map. (5:201) emit message {Congratulations!!! You have cleared 100 Floors. :D} to any furre present. (5:300) set variable %level to the value 0. *change to ds button to avoid horrible console bleep *clear old map data to prepare space for new level, increment Level. (0:86) When someone clicks Yes for request number 1, (1:203) and variable %inSafe is equal to variable %inDream, (5:5) change item 2415 to item 0. (5:5) change item 2401 to item 0. (5:5) change item %mobOne to item 0. (5:5) change item %mobTwo to item 0. (5:5) change item %mobThree to item 0. (5:5) change item 305 to item 0. (5:5) change item 306 to item 0. (5:5) change item 307 to item 0. (5:5) change item 308 to item 0. (5:5) change item 309 to item 0. (5:5) change item 310 to item 0. (5:5) change item 58 to item 0. *We are going to use a dummy player to track the stats of all npcs* (5:631) forget all PhoenixSpeak info about the player named {N}. (5:5) change item 1398 to item 0 (5:139) show effects in region 6 to everyone that can see there. (4:1) only where the floor is 500, (5:150) place overlay effect 0. (5:120) make this/these location(s) part of region 5. (5:5) change item 1143 to item 0. (5:5) change item 1135 to item 0. (5:1) set the floor to 161. (4:0) clear all filtering, (5:300) set variable %step to the value 0. (5:300) set variable %hallCount to the value 0. (5:300) set variable %roomCount to the value 0. (5:300) set variable %debrisCount to the value 0. (5:300) set variable %mobCount to the value 0. (5:300) set variable %stat to the value 1. (5:300) set variable %statTwo to the value 1. (5:300) set variable %statThree to the value 1. (5:300) set variable %Substep to the value 0. (5:300) set variable %inDungeon to the value 0. (5:250) set message ~nameHolder to { }. (5:600) memorize that the PhoenixSpeak info {H} about the triggering furre will now be 100. *In wanderer tuple, add in the shape variations for the npc* *Variation number in () followed by the item number, and then a ( if its at the end of the string* (5:250) set message ~wanderer_tuple to { (1)2405(2)2405(3)2405(4)2405(5)2405(6)2405( }. *set wanderer_diversity to the number of entries in wanderer_tuple* (5:300) set variable %wanderer_diversity to the value 6. (5:302) take variable %level and add 1 to it. *teleport into dream (0:3) When someone moves into item 1332, (5:54) make any furre present unable to lead and follow. (5:15) move the triggering furre to (%entrance), or to someplace nearby if it's occupied. (5:302) take variable %inDungeon and add 1 to it. (5:252) set message ~newName to the triggering furre's name. (5:257) take message ~nameHolder and add {(%inDungeon)~newName} onto the end of it. (5:304) take variable %inSafe and subtract 1 from it. (5:181) hide the triggering furre's DragonSpeak Button 22. *For Debuging (0:32) When someone says something with {teleport} in it, (1:117) and the triggering furre (didn't move from/isn't standing at) floor 500, (4:2) only where the floor is not 8, (5:15) move the triggering furre to (%entrance), or to someplace nearby if it's occupied. **************************************************************************************************************************** **SECTION** Load Mob Data From Encyclopedia **************************************************************************************************************************** *grabs data from the encyclopedia (0:49) When any countdown timer goes off, (1:200) and variable %Substep is equal to 0, (5:251) copy message ~mobOne onto message ~temp. (5:283) set variable %temp to the total number of characters before {(%stat)} appears in message ~temp (or zero if not found). (5:274) chop off the beginning of message ~temp, removing the first %temp characters of it. (5:278) remove the first 1 copies of {(%stat)} from message ~temp. (5:282) set variable %mobOneSprt to the first number in ~temp. (5:302) take variable %stat and add 1 to it. (5:283) set variable %temp to the total number of characters before {(%stat)} appears in message ~temp (or zero if not found). (5:274) chop off the beginning of message ~temp, removing the first %temp characters of it. (5:278) remove the first 1 copies of {(%stat)} from message ~temp. (5:282) set variable %mobOneHP to the first number in ~temp. (5:302) take variable %stat and add 1 to it. (5:283) set variable %temp to the total number of characters before {(%stat)} appears in message ~temp (or zero if not found). (5:274) chop off the beginning of message ~temp, removing the first %temp characters of it. (5:278) remove the first 1 copies of {(%stat)} from message ~temp. (5:282) set variable %mobOneAP to the first number in ~temp. (5:302) take variable %stat and add 1 to it. (5:283) set variable %temp to the total number of characters before {(%stat)} appears in message ~temp (or zero if not found). (5:274) chop off the beginning of message ~temp, removing the first %temp characters of it. (5:278) remove the first 1 copies of {(%stat)} from message ~temp. (5:282) set variable %mobOneAI to the first number in ~temp. (5:302) take variable %stat and add 1 to it. (5:283) set variable %temp to the total number of characters before {(%stat)} appears in message ~temp (or zero if not found). (5:274) chop off the beginning of message ~temp, removing the first %temp characters of it. (5:278) remove the first 1 copies of {(%stat)} from message ~temp. (5:282) set variable %mobOneAC to the first number in ~temp. (5:302) take variable %Substep and add 1 to it. *For second Mob (0:49) When any countdown timer goes off, (1:200) and variable %Substep is equal to 1, (5:251) copy message ~mobTwo onto message ~tempTwo. (5:283) set variable %tempTwo to the total number of characters before {(%statTwo)} appears in message ~tempTwo (or zero if not found). (5:274) chop off the beginning of message ~tempTwo, removing the first %tempTwo characters of it. (5:278) remove the first 1 copies of {(%statTwo)} from message ~tempTwo. (5:282) set variable %mobTwoSprt to the first number in ~tempTwo. (5:302) take variable %statTwo and add 1 to it. (5:283) set variable %tempTwo to the total number of characters before {(%statTwo)} appears in message ~tempTwo (or zero if not found). (5:274) chop off the beginning of message ~tempTwo, removing the first %tempTwo characters of it. (5:278) remove the first 1 copies of {(%statTwo)} from message ~tempTwo. (5:282) set variable %mobTwoHP to the first number in ~tempTwo. (5:302) take variable %statTwo and add 1 to it. (5:283) set variable %tempTwo to the total number of characters before {(%statTwo)} appears in message ~tempTwo (or zero if not found). (5:274) chop off the beginning of message ~tempTwo, removing the first %tempTwo characters of it. (5:278) remove the first 1 copies of {(%statTwo)} from message ~tempTwo. (5:282) set variable %mobTwoAP to the first number in ~tempTwo. (5:302) take variable %statTwo and add 1 to it. (5:283) set variable %tempTwo to the total number of characters before {(%statTwo)} appears in message ~tempTwo (or zero if not found). (5:274) chop off the beginning of message ~tempTwo, removing the first %tempTwo characters of it. (5:278) remove the first 1 copies of {(%statTwo)} from message ~tempTwo. (5:282) set variable %mobTwoAI to the first number in ~tempTwo. (5:302) take variable %statTwo and add 1 to it. (5:283) set variable %tempTwo to the total number of characters before {(%statTwo)} appears in message ~tempTwo (or zero if not found). (5:274) chop off the beginning of message ~tempTwo, removing the first %tempTwo characters of it. (5:278) remove the first 1 copies of {(%statTwo)} from message ~tempTwo. (5:282) set variable %mobTwoAC to the first number in ~tempTwo. (5:302) take variable %Substep and add 1 to it. *For Third Mob (0:49) When any countdown timer goes off, (1:200) and variable %Substep is equal to 2, (5:251) copy message ~mobThree onto message ~tempThree. (5:283) set variable %tempThree to the total number of characters before {(%statThree)} appears in message ~tempThree (or zero if not found). (5:274) chop off the beginning of message ~tempThree, removing the first %tempThree characters of it. (5:278) remove the first 1 copies of {(%statThree)} from message ~tempThree. (5:282) set variable %mobThreeSprt to the first number in ~tempThree. (5:302) take variable %statThree and add 1 to it. (5:283) set variable %tempThree to the total number of characters before {(%statThree)} appears in message ~tempThree (or zero if not found). (5:274) chop off the beginning of message ~tempThree, removing the first %tempThree characters of it. (5:278) remove the first 1 copies of {(%statThree)} from message ~tempThree. (5:282) set variable %mobThreeHP to the first number in ~tempThree. (5:302) take variable %statThree and add 1 to it. (5:283) set variable %tempThree to the total number of characters before {(%statThree)} appears in message ~tempThree (or zero if not found). (5:274) chop off the beginning of message ~tempThree, removing the first %tempThree characters of it. (5:278) remove the first 1 copies of {(%statThree)} from message ~tempThree. (5:282) set variable %mobThreeAP to the first number in ~tempThree. (5:302) take variable %statThree and add 1 to it. (5:283) set variable %tempThree to the total number of characters before {(%statThree)} appears in message ~tempThree (or zero if not found). (5:274) chop off the beginning of message ~tempThree, removing the first %tempThree characters of it. (5:278) remove the first 1 copies of {(%statThree)} from message ~tempThree. (5:282) set variable %mobThreeAI to the first number in ~tempThree. (5:302) take variable %statThree and add 1 to it. (5:283) set variable %tempThree to the total number of characters before {(%statThree)} appears in message ~tempThree (or zero if not found). (5:274) chop off the beginning of message ~tempThree, removing the first %tempThree characters of it. (5:278) remove the first 1 copies of {(%statThree)} from message ~tempThree. (5:282) set variable %mobThreeAC to the first number in ~tempThree. (5:302) take variable %Substep and add 1 to it. **************************************************************************************************************************** **SECTION** Build Halls ***************************************************************************************************************************** *set up the paramaters for current dungeon. Number of hallways and number of rooms. Fetch start position. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 0, (5:301) copy the value of variable %level into variable %halls. (5:302) take variable %halls and add 2 to it. (5:301) copy the value of variable %level into variable %rooms. (5:308) divide variable %rooms by 4 and put the remainder in variable %holdMe. (5:532) set variable %start to the X,Y position of a random spot where the item is 40 somewhere in the Dream. (5:300) set variable %step to the value 1. *if to many attempts made move place item to a hall and try again. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 1, (1:200) and variable %attempt is equal to 2, (5:5) change item 40 to item 0. (5:300) set variable %attempt to the value 0. (4:1) only where the floor is 500, (5:512) set variable %newPath to the X,Y position of a random spot where the floor is 500 somewhere in the Dream. (5:41) place item 40 at (%newPath). (5:300) set variable %step to the value 0. *if all halls are laid start building rooms (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 1, (1:203) and variable %hallCount is equal to variable %halls, (5:300) set variable %step to the value 6. *choose direction and distance for halway. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 1, (1:202) and variable %attempt is less than 2, (1:205) and variable %hallCount is less than variable %halls, (5:312) set variable %length to the total of rolling 1 dice with 3 sides plus 8. (5:312) set variable %direction to the total of rolling 1 dice with 4 sides plus 0. (5:301) copy the value of variable %start into variable %check. (5:301) copy the value of variable %start into variable %rightLane. (5:301) copy the value of variable %start into variable %leftLane. (5:300) set variable %checkR to the value 1. (5:300) set variable %checkF to the value 1. (5:300) set variable %step to the value 2. *preload paramaters for checks and adjacent lanes depending on direction roll. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 2, (1:200) and variable %direction is equal to 1, (5:352) move the position in variable %check northeast (up and right) %length step(s). (5:355) move the position in variable %leftLane northwest (up and left) 1 step(s). (5:353) move the position in variable %rightLane southeast (down and right) 1 step(s). (5:320) set variable %checkR to the region number (%check) is part of. (5:380) set variable %checkF to the floor type at (%check). (5:300) set variable %step to the value 3. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 2, (1:200) and variable %direction is equal to 2, (5:353) move the position in variable %check southeast (down and right) %length step(s). (5:352) move the position in variable %leftLane northeast (up and right) 1 step(s). (5:354) move the position in variable %rightLane southwest (down and left) 1 step(s). (5:320) set variable %checkR to the region number (%check) is part of. (5:380) set variable %checkF to the floor type at (%check). (5:300) set variable %step to the value 3. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 2, (1:200) and variable %direction is equal to 3, (5:354) move the position in variable %check southwest (down and left) %length step(s). (5:353) move the position in variable %leftLane southeast (down and right) 1 step(s). (5:355) move the position in variable %rightLane northwest (up and left) 1 step(s). (5:320) set variable %checkR to the region number (%check) is part of. (5:380) set variable %checkF to the floor type at (%check). (5:300) set variable %step to the value 3. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 2, (1:200) and variable %direction is equal to 4, (5:355) move the position in variable %check northwest (up and left) %length step(s). (5:354) move the position in variable %leftLane southwest (down and left) 1 step(s). (5:352) move the position in variable %rightLane northeast (up and right) 1 step(s). (5:320) set variable %checkR to the region number (%check) is part of. (5:380) set variable %checkF to the floor type at (%check). (5:300) set variable %step to the value 3. *check to make sure that the path will be made in an acceptable area. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 3, (1:200) and variable %checkR is equal to 1, (5:302) take variable %attempt and add 1 to it. (5:300) set variable %step to the value 1. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 3, (1:200) and variable %checkF is equal to 500, (5:302) take variable %attempt and add 1 to it. (5:300) set variable %step to the value 1. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 3, (1:200) and variable %checkR is equal to 5, (1:200) and variable %checkF is equal to 161, (5:300) set variable %step to the value 4. *placemarkers at start and finish of each hallway for possible room placement (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 4, (5:121) make location (%check) part of region 2. (5:41) place item 1324 at (%check). (5:121) make location (%start) part of region 2. (5:41) place item 0 at (%start). (5:300) set variable %step to the value 5. *placefloors in the length and direction of the hallway one itteration for each lane ending with the the middle lane increasing the count and step. *going northeast (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 1, (3:16) in a line starting at (%leftLane) and going 1 more spaces southwest. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 1, (3:14) in a line starting at (%leftLane) and going %length more spaces northeast. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 1, (3:16) in a line starting at (%start) and going 1 more spaces southwest. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 1, (3:16) in a line starting at (%rightLane) and going 1 more spaces southwest. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 1, (3:14) in a line starting at (%rightLane) and going %length more spaces northeast. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 1, (3:14) in a line starting at (%start) and going %length more spaces northeast. (5:1) set the floor to 500. (5:352) move the position in variable %start northeast (up and right) %length step(s). (5:302) take variable %hallCount and add 1 to it. (5:300) set variable %step to the value 1. *going southeast (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 2, (3:17) in a line starting at (%leftLane) and going 1 more spaces northwest. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 2, (3:15) in a line starting at (%leftLane) and going %length more spaces southeast. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 2, (3:17) in a line starting at (%start) and going 1 more spaces northwest. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 2, (3:17) in a line starting at (%rightLane) and going 1 more spaces northwest. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 2, (3:15) in a line starting at (%rightLane) and going %length more spaces southeast. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 2, (3:15) in a line starting at (%start) and going %length more spaces southeast. (5:1) set the floor to 500. (5:353) move the position in variable %start southeast (down and right) %length step(s). (5:302) take variable %hallCount and add 1 to it. (5:300) set variable %step to the value 1. *going southwest (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 3, (3:14) in a line starting at (%leftLane) and going 1 more spaces northeast. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 3, (3:16) in a line starting at (%leftLane) and going %length more spaces southwest. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 3, (3:14) in a line starting at (%start) and going 1 more spaces northeast. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 3, (3:14) in a line starting at (%rightLane) and going 1 more spaces northeast. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 3, (3:16) in a line starting at (%rightLane) and going %length more spaces southwest. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 3, (3:16) in a line starting at (%start) and going %length more spaces southwest. (5:1) set the floor to 500. (5:354) move the position in variable %start southwest (down and left) %length step(s). (5:302) take variable %hallCount and add 1 to it. (5:300) set variable %step to the value 1. *going northwest (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 4, (3:15) in a line starting at (%leftLane) and going 1 more spaces southeast. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 4, (3:17) in a line starting at (%leftLane) and going %length more spaces northwest. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 4, (3:15) in a line starting at (%start) and going 1 more spaces southeast. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 4, (3:15) in a line starting at (%rightLane) and going 1 more spaces southeast. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 4, (3:17) in a line starting at (%rightLane) and going %length more spaces northwest. (5:1) set the floor to 500. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 5, (1:200) and variable %direction is equal to 4, (3:17) in a line starting at (%start) and going %length more spaces northwest. (5:1) set the floor to 500. (5:355) move the position in variable %start northwest (up and left) %length step(s). (5:302) take variable %hallCount and add 1 to it. (5:300) set variable %step to the value 1. ***************************************************************************************************************************** **SECTION** Entrance and Exit **************************************************************************************************************************** *Put the entrance at the location of the building guide item and the exit at the end of a random hall *replace end hall regions with standard hall regions for laying the floor. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 6, (3:30) in region 2, (5:512) set variable %placeStart to the X,Y position of a random spot where the floor is 500 somewhere in the Dream. (5:300) set variable %step to the value 7. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 7, (5:41) place item 1143 at (%placeStart). (5:300) set variable %step to the value 8. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 8, (3:30) in region 2, (5:532) set variable %placeStart to the X,Y position of a random spot where the item is 1324 somewhere in the Dream. (5:300) set variable %step to the value 9. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 9, (5:41) place item 1135 at (%placeStart). (5:151) set location (%placeStart) to overlay effect 194. (5:300) set variable %step to the value 10. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 10, (5:532) set variable %entrance to the X,Y position of a random spot where the item is 1143 somewhere in the Dream. (5:5) change item 1802 to item 1332. (5:138) hide all effects in region 6 from everybody. (5:300) set variable %step to the value 11. ***************************************************************************************************************************** **SECTION** Build Rooms **************************************************************************************************************************** *preload room paramaters (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 11, (1:205) and variable %roomCount is less than variable %rooms, (3:30) in region 2, (4:1) only where the floor is 500, (5:512) set variable %roomCenter to the X,Y position of a random spot where the floor is 500 somewhere in the Dream. (5:312) set variable %radius to the total of rolling 2 dice with 2 sides plus 1. (5:306) multiply variable %radius by 2. (5:121) make location (%roomCenter) part of region 5. (5:301) copy the value of variable %roomCenter into variable %roomTop. (5:301) copy the value of variable %roomCenter into variable %roomBottom. (5:305) take variable %roomTop.y and subtract variable %radius from it. (5:303) take variable %roomBottom.y and add variable %radius to it. (5:300) set variable %step to the value 12. *In the Diamond that is the room lay the floor (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 12, (3:3) within the diamond (%roomTop) - (%roomBottom), (5:1) set the floor to 8. (5:302) take variable %roomCount and add 1 to it. (5:300) set variable %step to the value 11. *place treasure Chests - just because it fits well into the algorithm here (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 11, (1:202) and variable %treasureCount is less than %treasures, (3:532) at a random spot somewhere in the Dream where the item is 1324, (5:4) place item 1159. *Escape loop. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 11, (1:203) and variable %roomCount is equal to variable %rooms, (5:300) set variable %step to the value 13. **************************************************************************************************************************** **SECTION** Place Enemies into Level. **************************************************************************************************************************** *preload Enemy information for level. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 13, (5:312) set variable %mobs to the total of rolling %rooms dice with 4 sides plus 0. (5:301) copy the value of variable %mobs into variable %wanderers. (5:300) set variable %step to the value 14. *Start of Loop (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 14, (1:205) and variable %mobCount is less than variable %mobs, (5:312) set variable %choice to the total of rolling 1 dice with 6 sides plus 0. ------------------------------------------------------------------------------------ *for each choice select which monster will be spawned in *this section preloads information pulled from encyclopedia for each monster type. *For Monster Type one (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 14, (1:201) and variable %choice is more than 0, (1:202) and variable %choice is less than 4, (5:301) copy the value of variable %mobOneSprt into variable %mobSprt. (5:301) copy the value of variable %mobOneHP into variable %mobHP. (5:301) copy the value of variable %mobOneAP into variable %mobAP. (5:301) copy the value of variable %mobOneAI into variable %mobAI. (5:301) copy the value of variable %mobOneAC into variable %mobAC. *For Monster Type two (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 14, (1:201) and variable %choice is more than 3, (1:202) and variable %choice is less than 6, (5:301) copy the value of variable %mobTwoSprt into variable %mobSprt. (5:301) copy the value of variable %mobTwoHP into variable %mobHP. (5:301) copy the value of variable %mobTwoAP into variable %mobAP. (5:301) copy the value of variable %mobTwoAI into variable %mobAI. (5:301) copy the value of variable %mobTwoAC into variable %mobAC. *For Monster Type 3 (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 14, (1:200) and variable %choice is equal to 6, (5:301) copy the value of variable %mobThreeSprt into variable %mobSprt. (5:301) copy the value of variable %mobThreeHP into variable %mobHP. (5:301) copy the value of variable %mobThreeAP into variable %mobAP. (5:301) copy the value of variable %mobThreeAI into variable %mobAI. (5:301) copy the value of variable %mobThreeAC into variable %mobAC. ------------------------------------------------------------------------------------------------- *might not need wanderers.x/y since have %npc_loc.x/y *Spawn wanderers* (0:49) When any countdown timer goes off, (1:201) and variable %wanderers is more than 0, (5:312) set variable %wanderer_type to the total of rolling 1 dice with %wanderer_diversity sides plus 0. (5:251) copy message ~wanderer_tuple onto message ~temp. (5:283) set variable %temp to the total number of characters before {(%wanderer_type)} appears in message ~temp (or zero if not found). (5:274) chop off the beginning of message ~temp, removing the first %temp characters of it. (5:278) remove the first 1 copies of {(%wanderer_type)} from message ~temp. (5:282) set variable %wanderer_item to the first number in ~temp. (3:502) at a random spot somewhere in the Dream, (4:1) only where the floor is 8, (4:8) only where there are no items, (5:4) place item 1398. (4:0) clear all filtering, (5:532) set variable %npc_loc to the X,Y position of a random spot where the item is 1398 somewhere in the Dream. (5:41) place item %mobSprt at (%npc_loc). * ^was wanderer_item which was for placing di *MEMORIZE WANDERER POS* (5:601) memorize that the PhoenixSpeak info {%wanderers x} about the player named {N} will now be %npc_loc.x (5:601) memorize that the PhoenixSpeak info {%wanderers y} about the player named {N} will now be %npc_loc.y *MEMORIZE WANDERER HP, SET TO 10 FOR NOW* (5:601) memorize that the PhoenixSpeak info {%wanderers h} about the player named {N} will now be %mobHP *MEMORIZE WANDERER ACTION POINTS, SET TO 10 FOR NOW* (5:601) memorize that the PhoenixSpeak info {%wanderers a} about the player named {N} will now be %mobAP *MEMORIZE WANDERER CLASS, SET TO 1 FOR NOW* *CLASS IS STORED AS A NUMBER TO CONSERVE PS SPACE, BUT YOU COULD USE THAT VALUE TO COMPARE IT TO A STRING* (5:601) memorize that the PhoenixSpeak info {%wanderers c} about the player named {N} will now be %mobAI *MEMORIZE WANDERER ARMOUR, SET TO 1 FOR NOW(Used D for defence, A is already being used for action points)* (5:601) memorize that the PhoenixSpeak info {%wanderers d} about the player named {N} will now be %mobAC *Memorize mob attack strength (5:601) memorize that the PhoenixSpeak info {%wanderers w} about the player named {N} will now be 2 *MEMORIZE WANDERER TURN, SET TO 30 FOR NOW(repleneshes AP every 30 seconds)* (5:601) memorize that the PhoenixSpeak info {%wanderers t} about the player named {N} will now be 30 *Memorize wanderer inverted coordinate(for referencing) (5:601) memorize that the PhoenixSpeak info {%npc_loc.x %npc_loc.y} about the player named {N} will now be %wanderers. *subtract 1 from spawn (5:304) take variable %wanderers and subtract 1 from it. (5:302) take variable %mobCount and add 1 to it. *(5:204) emitloud message {NPC loc is %npc_loc.x %npc_loc.y} to everyone on the map. *break Loop (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 14, (1:203) and variable %mobCount is equal to variable %mobs, (5:2) change floor 8 to floor 500. (5:300) set variable %step to the value 16. **************************************************************************************************************************** **SECTION** Place random objects into level **************************************************************************************************************************** *preload debris paramaters (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 16, (5:312) set variable %debris to the total of rolling 2 dice with 8 sides plus 3. (5:300) set variable %step to the value 17. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 17, (1:202) and variable %debrisCount is less than %debris, (3:502) at a random spot somewhere in the Dream, (4:1) only where the floor is 500, (4:8) only where there are no items, (5:13) place a random item type between 1127 and 1127. (5:302) take variable %debrisCount and add 1 to it. *Escape Loop (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 17, (1:203) and variable %debrisCount is equal to variable %debris, (5:300) set variable %step to the value 18. *place treasure Chests - just because it fits well into the algorithm here (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 18, (5:5) change item 1324 to item 1159. (5:300) set variable %step to the value 19. *put all ground walls in when ready. (0:49) When any countdown timer goes off, (1:200) and variable %step is equal to 19, (1:203) and variable %roomCount is equal to variable %rooms, (3:30) in region 5, (4:1) only where the floor is 161, (5:4) place item 2415. (5:302) take variable %step and add 1 to it. **************************************************************************************************************************** **SECTION** Round Handler and reset ***************************************************************************************************************************** *Rounds will use two stats to see how many actions how big of actions players and monsters can make. *Speed will be used to determine the number of actions one can take before others can take an action. *players pool thier actions. so if a monster has a speed of two they will take an action for every two actions that *players make. *players on the other hand always have priority in rounds as long as they have ap to spend. *Even if players don't spend thier action points enemies will take actions equivilent to what would have been spent. *players action points will reset based on a round based timer. *will likely be moved to player handler with other parts added to other code to make this idea fully functional *player takes an action (0:60) When someone moves northeast, *or (0:61) When someone moves southeast, *or (0:62) When someone moves southwest, *or (0:63) When someone moves northwest, *or (0:16) When someone uses any item, *make sure player has points to spend (1:602) and the PhoenixSpeak info {B} about the triggering furre is more than 0, *grab the ap of the player that took an action (5:610) remember the PhoenixSpeak info {B} about the triggering furre, and put it in variable %thisAP. *subtract 1 action point (5:304) take variable %thisAP and subtract 1 from it. *record the new ap for player (5:600) memorize that the PhoenixSpeak info {B} about the triggering furre will now be %thisAP. *let monsters know that someone performed an action (5:302) take variable %pAction and add 1 to it. **************************************************************************************************************************** **SECTION** Mob AI **************************************************************************************************************************** *Because 100 clocks are going off 100 of these codes are processed almost instantly *so each time the timer sets go off wut_npc is icremented then this goes through and checks stuff *ok I am pretty tired but I swear I know what this does. *Process wanderer's AI* *Get current npc* (0:49) When any countdown timer goes off, (1:201) and variable %wut_npc is more than 0, (1:202) and variable %wut_npc is less than 101, (1:615) and the PhoenixSpeak info {%wut_npc x} about the player named {N} exists, (1:610) and the PhoenixSpeak info {%wut_npc c} about the furre named {N} is equal to 1, (5:300) set variable %trig_npc to the value 1. (5:611) remember the PhoenixSpeak info {%wut_npc x} about the player named {N}, and put it in variable %npc.x (5:611) remember the PhoenixSpeak info {%wut_npc y} about the player named {N}, and put it in variable %npc.y (5:611) remember the PhoenixSpeak info {%wut_npc t} about the player named {N}, and put it in variable %npc_turn (5:611) remember the PhoenixSpeak info {%wut_npc a} about the player named {N}, and put it in variable %npc_ap (5:301) copy the value of variable %npc into variable %npc_NE (5:301) copy the value of variable %npc into variable %npc_SE (5:301) copy the value of variable %npc into variable %npc_SW (5:301) copy the value of variable %npc into variable %npc_NW (5:352) move the position in variable %npc_NE northeast (up and right) 1 step(s). (5:353) move the position in variable %npc_SE southeast (down and right) 1 step(s). (5:354) move the position in variable %npc_SW southwest (down and left) 1 step(s). (5:355) move the position in variable %npc_NW northwest (up and left) 1 step(s). (5:312) set variable %NPC_dir to the total of rolling 1 dice with 4 sides plus 0. (5:312) set variable %NPC_move to the total of rolling 1 dice with 3 sides plus 0. *MOVE NE (0:49) When any countdown timer goes off, (1:200) and variable %NPC_dir is equal to 1, (5:301) copy the value of variable %npc_NE into variable %new_pos. *MOVE SE (0:49) When any countdown timer goes off, (1:200) and variable %NPC_dir is equal to 2, (5:301) copy the value of variable %npc_SE into variable %new_pos. *MOVE SW (0:49) When any countdown timer goes off, (1:200) and variable %NPC_dir is equal to 3, (5:301) copy the value of variable %npc_SW into variable %new_pos. *MOVE NW (0:49) When any countdown timer goes off, (1:200) and variable %NPC_dir is equal to 4, (5:301) copy the value of variable %npc_NW into variable %new_pos. (0:49) When any countdown timer goes off, (1:615) and the PhoenixSpeak info {%wut_npc x} about the player named {N} exists, *make sure an NPC is being triggered (1:200) and variable %trig_npc is equal to 1, *make sure the 33% chance was triggered (1:200) and variable %NPC_move is equal to 1, *Check action points* (1:201) and variable %npc_ap is more than 0, *Check to make sure npc isn't adjacent to a player* (1:1101) and there's no one at (%npc_NE), (1:1101) and there's no one at (%npc_SE), (1:1101) and there's no one at (%npc_SW), (1:1101) and there's no one at (%npc_NW), *check the new location to make sure its clear* (1:1011) and position (%new_pos) is floor 500, (1:1013) and position (%new_pos) is item 0, *get old sprite* (5:381) set variable %npcitem to the item type at (%npc). *clear old sprite* (5:41) place item 0 at (%npc). *place new object* (5:41) place item %npcitem at (%new_pos). *subtract action point* (5:304) take variable %npc_ap and subtract 1 from it. *commit changes to memory* (5:601) memorize that the PhoenixSpeak info {%wut_npc x} about the player named {N} will now be %new_pos.x (5:601) memorize that the PhoenixSpeak info {%wut_npc y} about the player named {N} will now be %new_pos.y (5:601) memorize that the PhoenixSpeak info {%wut_npc a} about the player named {N} will now be %npc_ap. (5:635) forget the PhoenixSpeak info {%npc.x %npc.y} about the player named {N}. (5:601) memorize that the PhoenixSpeak info {%new_pos.x %new_pos.y} about the player named {N} will now be %wut_npc. *basic attack for now (0:49) When any countdown timer goes off, (1:615) and the PhoenixSpeak info {%wut_npc x} about the furre named {N} exists, (1:200) and variable %trig_npc is equal to 1, (1:201) and variable %npc_turn is more than 0, (1:1100) and there's a furre at (%npc_NE), (5:51) make any furre standing at (%npc_NE) become the new triggering furre. (5:610) remember the PhoenixSpeak info {H} about the triggering furre, and put it in variable %hp. (5:610) remember the PhoenixSpeak info {D} about the triggering furre, and put it in variable %def. (5:611) remember the PhoenixSpeak info {%wut_npc w} about the furre named {N}, and put it in variable %dam. (5:305) take variable %dam and subtract variable %def from it. (5:305) take variable %hp and subtract variable %dam from it. (5:600) memorize that the PhoenixSpeak info {H} about the triggering furre will now be %hp. (5:420) shake the triggering furre's map in style 1, for 1 tenths of a second, with speed 4 and intensity 4. (see www.furcadia.com/dsparams for info) (5:8) play sound 27 to the triggering furre. (0:49) When any countdown timer goes off, (1:615) and the PhoenixSpeak info {%wut_npc x} about the furre named {N} exists, (1:200) and variable %trig_npc is equal to 1, (1:201) and variable %npc_turn is more than 0, (1:1100) and there's a furre at (%npc_SE), (5:51) make any furre standing at (%npc_SE) become the new triggering furre. (5:610) remember the PhoenixSpeak info {H} about the triggering furre, and put it in variable %hp. (5:610) remember the PhoenixSpeak info {D} about the triggering furre, and put it in variable %def. (5:611) remember the PhoenixSpeak info {%wut_npc w} about the furre named {N}, and put it in variable %dam. (5:305) take variable %dam and subtract variable %def from it. (5:305) take variable %hp and subtract variable %dam from it. (5:600) memorize that the PhoenixSpeak info {H} about the triggering furre will now be %hp. (5:420) shake the triggering furre's map in style 1, for 1 tenths of a second, with speed 4 and intensity 4. (see www.furcadia.com/dsparams for info) (5:8) play sound 27 to the triggering furre. (0:49) When any countdown timer goes off, (1:615) and the PhoenixSpeak info {%wut_npc x} about the furre named {N} exists, (1:200) and variable %trig_npc is equal to 1, (1:201) and variable %npc_turn is more than 0, (1:1100) and there's a furre at (%npc_NW), (5:51) make any furre standing at (%npc_NW) become the new triggering furre. (5:610) remember the PhoenixSpeak info {H} about the triggering furre, and put it in variable %hp. (5:610) remember the PhoenixSpeak info {D} about the triggering furre, and put it in variable %def. (5:611) remember the PhoenixSpeak info {%wut_npc w} about the furre named {N}, and put it in variable %dam. (5:305) take variable %dam and subtract variable %def from it. (5:305) take variable %hp and subtract variable %dam from it. (5:600) memorize that the PhoenixSpeak info {H} about the triggering furre will now be %hp. (5:420) shake the triggering furre's map in style 1, for 1 tenths of a second, with speed 4 and intensity 4. (see www.furcadia.com/dsparams for info) (5:8) play sound 27 to the triggering furre. (0:49) When any countdown timer goes off, (1:615) and the PhoenixSpeak info {%wut_npc x} about the furre named {N} exists, (1:200) and variable %trig_npc is equal to 1, (1:201) and variable %npc_turn is more than 0, (1:1100) and there's a furre at (%npc_SW), (5:51) make any furre standing at (%npc_SW) become the new triggering furre. (5:610) remember the PhoenixSpeak info {H} about the triggering furre, and put it in variable %hp. (5:610) remember the PhoenixSpeak info {D} about the triggering furre, and put it in variable %def. (5:611) remember the PhoenixSpeak info {%wut_npc w} about the furre named {N}, and put it in variable %dam. (5:305) take variable %dam and subtract variable %def from it. (5:305) take variable %hp and subtract variable %dam from it. (5:600) memorize that the PhoenixSpeak info {H} about the triggering furre will now be %hp. (5:420) shake the triggering furre's map in style 1, for 3 tenths of a second, with speed 4 and intensity 4. (see www.furcadia.com/dsparams for info) (5:8) play sound 27 to the triggering furre. (0:49) When any countdown timer goes off, (1:615) and the PhoenixSpeak info {%wut_npc x} about the furre named {N} exists, (1:613) and the PhoenixSpeak info {%wut_npc h} about the furre named {N} is less than 1, (5:41) place item 0 at (%npc) (5:635) forget the PhoenixSpeak info {%wut_npc x} about the furre named {N}. (5:635) forget the PhoenixSpeak info {%wut_npc y} about the furre named {N}. (5:635) forget the PhoenixSpeak info {%wut_npc h} about the furre named {N}. (5:635) forget the PhoenixSpeak info {%wut_npc a} about the furre named {N}. (5:635) forget the PhoenixSpeak info {%wut_npc c} about the furre named {N}. (5:635) forget the PhoenixSpeak info {%wut_npc d} about the furre named {N}. (5:635) forget the PhoenixSpeak info {%wut_npc w} about the furre named {N}. (5:635) forget the PhoenixSpeak info {%wut_npc t} about the furre named {N}. *Subtract 1 from turn* (0:49) When any countdown timer goes off, (1:615) and the PhoenixSpeak info {%wut_npc x} about the player named {N} exists, *make sure an NPC is being triggered (1:200) and variable %trig_npc is equal to 1, (1:201) and variable %npc_turn is more than 0, (5:304) take variable %npc_turn and subtract 1 from it. (5:601) memorize that the PhoenixSpeak info {%wut_npc t} about the player named {N} will now be %npc_turn. *reset turns to 30 if at 0* (0:49) When any countdown timer goes off, (1:615) and the PhoenixSpeak info {%wut_npc x} about the player named {N} exists, *make sure an NPC is being triggered (1:200) and variable %trig_npc is equal to 1, (1:200) and variable %npc_turn is equal to 0, (5:601) memorize that the PhoenixSpeak info {%wut_npc t} about the player named {N} will now be 30. (5:601) memorize that the PhoenixSpeak info {%wut_npc a} about the player named {N} will now be 10. ***************************************************************************************************************************** **SECTION** Vision ***************************************************************************************************************************** *Set Vision Area paramaters. A that starts where furre is and goes two spaces down to the bottom of the diamond. *break Loop (0:49) When any countdown timer goes off, (1:201) and variable %nameCount is more than %inDungeon, (5:300) set variable %nameCount to the value 1. *cleanup effect turns see through walls to solid walls again. (0:49) When any countdown timer goes off, (1:201) and variable %timer is more than 399, (1:202) and variable %timer is less than 401, (5:5) change item 2401 to item 2415. *top part protects against out of bounds (0:49) When any countdown timer goes off, (1:201) and variable %timer is more than 399, (1:202) and variable %timer is less than 500, *name holder comes from Level intiization code at bottom. Names saved when Entered portal, Cleared when level resets. *Finds names stored in string and seperates them using a numbered system. (5:301) copy the value of variable %nameCount into variable %nameID. (5:251) copy message ~nameHolder onto message ~nameGrab. (5:283) set variable %nameSpace to the total number of characters before {(%nameID)} appears in message ~nameGrab (or zero if not found). (5:274) chop off the beginning of message ~nameGrab, removing the first %nameSpace characters of it. (5:278) remove the first 1 copies of {(%nameID)} from message ~nameGrab. (5:302) take variable %nameID and add 1 to it. (5:284) set variable %nameSpace to the total number of characters after the first place {(%nameID)} appears in message ~nameGrab (or zero if not found). (5:273) chop off the end of message ~nameGrab, removing the last %nameSpace characters of it. (5:278) remove the first 1 copies of {(%nameID)} from message ~nameGrab. *set the vision variables (5:56) make the furre named {~nameGrab} the new triggering furre, if they're in the Dream right now. (5:350) set variable %visionTop to the X,Y position the triggering furre (moved from/is standing at). (5:301) copy the value of variable %visionTop into variable %visionBottom. (5:304) take variable %visionTop.y and subtract 2 from it. (5:302) take variable %visionBottom.y and add 6 to it. (5:302) take variable %nameCount and add 1 to it. *execute vision (0:49) When any countdown timer goes off, (3:3) within the diamond (%visionTop) - (%visionBottom), (5:5) change item 2415 to item 2401. *for smoother processing track moving player and clear area around them. (0:1) Whenever someone moves, (5:350) set variable %visionTop to the X,Y position the triggering furre (moved from/is standing at). (5:301) copy the value of variable %visionTop into variable %visionBottom. (5:304) take variable %visionTop.y and subtract 2 from it. (5:302) take variable %visionBottom.y and add 6 to it. (0:1) Whenever someone moves, (3:3) within the diamond (%visionTop) - (%visionBottom), (5:5) change item 2415 to item 2401. ***************************************************************************************************************************** **SECTION** New Clock ***************************************************************************************************************************** *bug Fix find a new location (0:49) When any countdown timer goes off, (1:202) and variable %inSafe is less than 0, (5:300) set variable %inSafe to the value 0. *Add to loop* (0:49) When any countdown timer goes off, (1:201) and variable %timer is more than 399, (1:202) and variable %timer is less than 500, (1:202) and variable %npc_loop is less than 500, (5:302) take variable %npc_loop and add 1 to it. (5:50) set countdown timer %npc_loop to go off in 1 seconds. (0:49) When any countdown timer goes off, (1:201) and variable %timer is more than 399, (1:202) and variable %timer is less than 500, (5:50) set countdown timer %timer to go off in 1 seconds. ***************************************************************************************************************************** **SECTION** Debugging **************************************************************************************************************************** *Status Checking Commands (0:38) When someone says or emotes something with {!gnome} in it, (5:1200) change the triggering furre to localspecies 1. (0:38) When someone says or emotes something with {!level100} in it, (5:300) set variable %level to the value 98. (0:38) When someone says or emotes something with {!debug} in it, (5:200) emit message {In Dream In Safe,%inDream,%inSafe,} to the triggering furre. (5:200) emit message {Step,%step,} to the triggering furre. (5:200) emit message {Level,%level} to the triggering furre. (5:200) emit message {direction,%direction} to the triggering furre. (5:200) emit message {Hall Count, Halls,%hallCount,%halls} to the triggering furre. (0:38) When someone says or emotes something with {!mobOne} in it, (5:200) emit message {Model,%mobOneSprt,} to the triggering furre. (5:200) emit message {HP,%mobOneHP,} to the triggering furre. (5:200) emit message {AP,%mobOneAP,} to the triggering furre. (5:200) emit message {AI,%mobOneAI,} to the triggering furre. (5:200) emit message {AC,%mobOneAC,} to the triggering furre. (0:38) When someone says or emotes something with {!mobTwo} in it, (5:200) emit message {Model,%mobTwoSprt,} to the triggering furre. (5:200) emit message {HP,%mobTwoHP,} to the triggering furre. (5:200) emit message {AP,%mobTwoAP,} to the triggering furre. (5:200) emit message {AI,%mobTwoAI,} to the triggering furre. (5:200) emit message {AC,%mobTwoAC,} to the triggering furre. (0:38) When someone says or emotes something with {!mobThree} in it, (5:200) emit message {Model,%mobThreeSprt,} to the triggering furre. (5:200) emit message {HP,%mobThreeHP,} to the triggering furre. (5:200) emit message {AP,%mobThreeAP,} to the triggering furre. (5:200) emit message {AI,%mobThreeAI,} to the triggering furre. (5:200) emit message {AC,%mobThreeAC,} to the triggering furre. (0:38) When someone says or emotes something with {!name} in it, (5:200) emit message {name holder ~nameHolder} to the triggering furre. (5:200) emit message {name Grab ~nameGrab} to the triggering furre. (5:200) emit message {gui Update ~guiUpdate} to the triggering furre. (5:200) emit message {gui Temp ~tempUpdate} to the triggering furre. (0:31) When someone says {!stats}, (5:610) remember the PhoenixSpeak info {H} about the triggering furre, and put it in variable %hp. (5:610) remember the PhoenixSpeak info {A} about the triggering furre, and put it in variable %ap. (5:610) remember the PhoenixSpeak info {E} about the triggering furre, and put it in variable %equ. (5:610) remember the PhoenixSpeak info {D} about the triggering furre, and put it in variable %def. (5:610) remember the PhoenixSpeak info {W} about the triggering furre, and put it in variable %atk. (5:610) remember the PhoenixSpeak info {C} about the triggering furre, and put it in variable %soul. (5:200) emit message {%hp HP, %ap AP, %def Defense, %atk Attack, %soul Soul Shards, %equ Equipment } to the triggering furre. ***************************************************************************************************************************** *Endtriggers* 8888 *Endtriggers*

Comments

Popular Posts