scr_dialogbox //made by Miles Lombardi //argument0 = the text //argument1 = whether or not to draw the box at the end //argument2 = whether or not to initiate the text //argument3 = whether or not to draw the text box //argument4 = the font to use //` = white text //^ = red text //{ = blue text //} = green text global.drawingtext = true //the game is drawing text if argument2 = true //if it is the first time through { self.position = 1//set the position as 1 self.done = false //the text isn't done } global.text = argument0 global.more = argument1 global.font = spr_letters //set the font at the beggining of the script //sets the postion of the pointer, so it knows how much text should be drawn if keyboard_check(vk_enter) = true //if enter is pushed { self.done = true //you are done self.position = string_length(global.text) //end the text self.curstring = global.text //set the string to the text keyboard_clear(vk_enter) //stop generating events } if self.done = false //if the text line isn't done { self.curstring = string_copy(global.text, 1, self.position) //the first line is a part of the actual first line if string_length(self.curstring) = string_length(global.text) //if the text is done { self.done = true //this line is done self.position = 1 //reset the start point } } if self.done = false //if not all text is done { self.position += 1 //add one to the position } //draws the important stuff if argument3 = true //if you should draw the text box { draw_sprite(spr_textbox, 0, view_xview[1] + 16, view_yview[1] + 160) //draw the text box } self.pointx = 22 //a little to the right... self.pointy = 166 //a little down... for(i = 1; i < string_length(self.curstring) + 1; i += 1) //once for every character { self.lettertemp = string_copy(self.curstring, i, 1) //get the letter if self.pointx >= 290 //if it is too far over { self.pointx = 22 //go back a bit self.pointy += 16 //go down a line } if self.lettertemp <> " " and self.lettertemp <> "~" //if it isn't a space or a tilde { if self.lettertemp <> "`" and self.lettertemp <> "^" and self.lettertemp <> "{" and self.lettertemp <> "}" //if it's not changing the font { self.todraw = scr_getletter(self.lettertemp) //get the imagesingle of the value draw_sprite(global.font, self.todraw, view_xview[1] + self.pointx, view_yview[1] + self.pointy) self.pointx += 8//move over for the next letter } else //if it is changing the font { if self.lettertemp = "`" //set it white { global.font = spr_letters //sets it } if self.lettertemp = "^" //the caret { global.font = spr_letters//sets it } if self.lettertemp = "{" //blue { global.font = spr_letters //sets it } if self.lettertemp = "}" //green { global.font = spr_letters//sets it } } } if self.lettertemp = " " //if it is a space { self.pointx += 8 //move over for the next letter } if self.lettertemp = "~" //if it is a tilde { self.pointy += 16 //move down for the next letter self.pointx = 22 //reset to the start of the line } } screen_refresh() //refreshes the screen so you can actually see it if self.done = true and global.more = true //if we need to draw an arrow { draw_sprite(spr_textmore, 0, view_xview[1] + 155, view_yview[1] + 216) //draw the arrow } if self.done = false //if the text isn't done { sound_play(snd_letter) sleep(30) scr_dialogbox(argument0, argument1, false, argument3) //do it all again } else //yer done! { screen_refresh() //refresh the screen keyboard_wait() //wait for the keyboard sleep(30) keyboard_clear(vk_space) keyboard_clear(vk_shift) sound_stop(snd_letter) global.drawingtext = false //get on with your regular life } ___________________________________________________________________________________________________________________ scr_getletter: //made by Miles Lombardi letter = argument0 if ord(letter) >= ord("A") and ord(letter) <= ord("Z") //if it is an uppercase letter { return (32 + (ord(letter) - ord("A"))) //return a value for the letter } if ord(letter) >= ord("a") and ord(letter) <= ord("z") //if it is a lowercase letter { return (64 + (ord(letter) - ord("a"))) //return a value for the letter } if letter = "!" //exclamation mark { return 0 } if letter = '"' //quotations { return 1 } if letter = "#" //number sign { return 2 } if letter = "$" //dollar sign { return 3 } if letter = "%" //percent sign { return 4 } if letter = "&" //ampersand { return 5 } if letter = "'" //semi-qute { return 6 } if letter = "(" //parentheses { return 7 } if letter = ")" //parentheses { return 8 } if letter = "*" //asterisk { return 9 } if letter = "+" //plus sign { return 10 } if letter = "," //comma { return 11 } if letter = "-" //dash { return 12 } if letter = "." //period { return 13 } if letter = "/" //slash { return 14 } if letter = "0" //0 { return 15 } if letter = "1" //1 { return 16 } if letter = "2" //2 { return 17 } if letter = "3" //3 { return 18 } if letter = "4" //4 { return 19 } if letter = "5" //5 { return 20 } if letter = "6" //6 { return 21 } if letter = "7" //7 { return 22 } if letter = "8" //8 { return 23 } if letter = "9" //9 { return 24 } if letter = ":" //colon { return 25 } if letter = ";" //semi colon { return 26 } if letter = "<" //less than { return 27 } if letter = "=" //equal to { return 28 } if letter = ">" //greater than { return 29 } if letter = "?" //question mark { return 30 } if letter = "@" //at sign { return 31 } if letter = "[" //bracket { return 58 } if letter = "\" //slash { return 59 } if letter = "]" //bracket { return 60 } if letter = "^" //carot { return 61 } if letter = "_" //underscore { return 62 } if letter = "'" //quotation mark { return 63 }