Br:Plotscr
Jump to navigation
Jump to search
# PLOTSCR.HSD (rusalka) - baseado em serendipity+, esqueceram de atualizar # Este arquivo contém a definição de linguagem para plotscripting OHRRPGCE. # modificar este arquivo pode ter efeitos indesejados/desastrosos, # mas lê-lo pode ser um tanto educacional. Especialmente as constantes. # *Nota do tradutor: em programação, normalmente não se traduz nada, mas # *o que está aqui pode ajudá-lo a entender um pouco melhor o funcionamento # *dos scripts. Creio que as constantes possam ser modifificadas para # *facilitar a escrita de scripts (para quem não entende inglês), mas não # *testei nada. Faça por conta e risco. E me avise se der certo. # funções marcadas com um x não foram implementadas ainda. # funções marcadas com um ? estão implementadas mas não foram testadas. #-------------------------------------------------------------------------- # hard coded functions - funções codificadas diretamente no programa define function, begin 0,noop,0 # nenhuma operação 1,wait,1,1 # espera(ciclos) 2,waitforall,0 # espera que caminhadas e outras coisas relacionadas a script parem 3,waitforhero,1,0 # espera que o herói pare de se mover 4,waitfornpc,1,0 # espera que o npc pare de se mover 5,suspendnpcs,0 # para o movimento normal do NPC 6,suspendplayer,0 # para o jogador de controlar as coisas (exceto caixas de texto) 7,resumenpcs,0 # retoma a automação do NPC 8,resumeplayer,0 # destrava os controles do jogador 9,waitforkey,1,99 # espera por um pressionamento de tecla 10,walkhero,3,0,2,1 # anda herói(quem,direção,distância) 11,showtextbox,1,1 # mostra uma caixa de texto 12,checktag,1,0 # retorna o valor de uma etiqueta 13,settag,2,0,0 # define etiqueta(número,verdadeiro/falso) 15,usedoor,1,0 # use porta(número) 16,fightformation,1,0 # formação de batalha(número) 17,getitem,2,0,1 # pegue item(item,quantidade) 18,deleteitem,2,0,1 # deleta item(item,quantidade) 19,leader,0 # retorna o líder atual 20,getmoney,1,0 # pegue dinheiro(quantia) 21,losemoney,1,0 #? perca dinheiro(quantia) sem checagem 22,paymoney,1,0 # retorna falso e subtrai nada se não puder comprar 23,unequip,2,0,1 # (quem,onde) 24,forceequip,3,0,1,0 # (quem,onde,item) 25,setheroframe,2,0,0 # (quem,quadro) quadro é 0 ou 1 26,setNPCframe,2,0,0 # (quem,quadro) quadro é 0 ou 1 27,suspendoverlay,0 # desliga tiras superiores 28,playsong,1,0 # toque música(números) 29,stopsong,0 # para a música 30,keyispressed,1,0 # checa tecla pelo código de escaneamento 31,rankincaterpillar,1,0 # encontra a posição dos heróis na fila 32,showbackdrop,1,0 # mostra fundo (número) 33,showmap,0 # cancela o mostra fundo 34,dismountvehicle,0 # desmonta de qualquer veículo que você possa estar montando 35,useNPC,1,0 # dispara um NPC remotamente 37,useshop,1,0 #? usa loja(número) 38,camerafollowshero,1,0 # faz a câmera seguir um herói 39,camerafollowsnpc,1,0 # faz a câmera seguir um NPC 40,pancamera,3,0,1,2 # gira camera(direção,distância,passopixel) 41,focuscamera,3,0,0,2 # focaliza camera(x,y,passopixel) 42,waitforcamera,0 # espera que um giro ou focalização termine 43,herox,1,0 # retorna a coordenada x do herói 44,heroy,1,0 # retorna a coordenada y do herói 45,npcx,1,0 # retorna a coordenada x do npc 46,npcy,1,0 # retorna a coordenada y do npc 47,suspendobstruction,0 # permite heróis andarem através de npcs e vice versa 48,resumeobstruction,0 # restaura o comportamento de obstrução normal 49,suspendherowalls,0 # permite heróis andarem através de paredes 50,suspendNPCwalls,0 # permite heróis e npcs andarem através de paredes 51,resumeherowalls,0 # restaura o comportamento de parede normal dos heróis 52,walknpc,3,0,2,1 # anda npc(quem,direção,distância) 53,setherodirection,2,0,2 # define direção herói(quem,direção) 54,setnpcdirection,2,0,2 # define direção npc(quem,distância) 55,getdefaultweapon,1,0 # (quem) 56,setdefaultweapon,2,0,0 # (quem,item) 57,suspendcatapillar,0 # apelido errado para compatibilidade 58,resumecatapillar,0 # apelido errado para compatibilidade 59,waitfortextbox,0 # espera que a caixa de texto se vá 60,equipwhere,2,0,0 #? (quem,item) retorna o slot [posição] onde um item pode ser equipado, ou falso se o herói não puder equipá-lo 61,teleporttomap,3,0,0,0 # teleporta para mapa (mapa,x,y) 62,suspendrandomenemys,0 # apelido errado para compatibilidade 63,resumerandomenemys,0 # apelido errado para compatibilidade 64,getherostat,3,0,0,1 # retorna o atributo de um herói (quem,atributo,atual/max) 65,resumeoverlay,0 # torna as tiras superiores ativas novamente 66,addhero,1,0 # adiciona um herói ao grupo 67,deletehero,1,0 # apaga um herói do grupo 68,swapouthero,1,0 # move um herói para fora do grupo ativo 69,swapinhero,1,0 # move um herói para o grupo ativo (se houver espaço lá) 70,roominactiveparty,0 # retorna o número de posições [slot] vazias no grupo ativo (0-3) 71,lockhero,1,0 # evita que um herói seja trocado 72,unlockhero,1,0 #? inverte trava herói [lockhero] 73,gameover,0 # retorna você para a tela de título 74,setdeathscript,1,0 # altera o script que é executado quando você morre 75,fadescreenout,3,0,0,0 # desbota tela (vermelho,verde,azul) 76,fadescreenin,0 # desbota de volta para a cor após desbota tela 77,showvalue,1,0 # mostra um número no canto inferior esquerdo 78,alterNPC,3,0,0,0 # substitui um dos atributos de um NPC 79,shownovalue,0 # esconde o número de mostra valor [showvalue] 80,currentmap,0 # retorna o número do mapa atual 81,setherospeed,2,0,4 # muda a velocidade de caminhada de um herói 82,inventory,1,0 # retorna a contagem de um dado item 83,setherostat,4,0,0,1,0 # altera o atributo de um herói (quem,atributo,atual/max,valor) 84,suspendboxadvance,0 # evita o usuário de avançar caixas de textos 85,resumeboxadvance,0 # inverte suspende avanço de caixa 86,advancetextbox,0 # como se o usuário tivesse pressionado uma tecla 87,setheroposition,3,0,0,0 # define arbitrariamente x,y 88,setNPCposition,3,0,0,0 # define arbitrariamente x,y 89,swapbyposition,2,0,0 # troca a posição de dois heróis 90,findhero,1,0 # localiza a posição do herói pelo nome do herói 91,checkequipment,2,0,1 # com o que está equipado o herói? (quem,onde) #92,daysofplay,0 # retorna os dias, estas opções permanecem para compatibilidade #93,hoursofplay,0 # retorna as horas #94,minutesofplay,0 # retorna os minutos 95,resumeNPCwalls,0 # restaura o comportamente normal de paredes de NPC 96,setheroz,2,0,0 # determina a posição vertical do herói 97,readmapblock,2,0,0 # pega o bloco de mapa x,y 98,writemapblock,3,0,0,0 # determina o bloco de mapa x,y,valor 99,readpassblock,2,0,0 # pega o bloco de passabilidade x,y 100,writepassblock,3,0,0,0 # determina o bloco de passabilidade x,y,valor 101,NPCdirection,1,0 # retorna a direção de um NPC 102,herodirection,1,0 # retorna a direção de um herói 103,resetpalette,0 # retorna a paleta mestra para o padrão 104,tweakpalette,5,0,0,0,0,255 # altera a paleta mestra 105,readcolor,2,0,0 # retorna um valor de cor 106,writecolor,3,0,0,0 # altera um valor de cor 107,updatepalette,0 # aplica as mudanças feitas com escreve cor [writecolor] 108,seedrandom,1,0 #? inicializa o gerador de números aleatórios 109,greyscalepalette,2,0,255# converte a paleta para escala de cinza 110,setheropicture,3,0,0,1 # quem,figura,tipo 111,setheropalette,3,0,0,1 # quem,paleta,tipo 112,getheropicture,2,0,1 # quem,tipo 113,getheropalette,2,0,1 # quem,tipo 114,readglobal,1,0 # índice 115,writeglobal,2,0,0 # índice,valor 116,heroiswalking,1,0 # índice,valor #117,NPCiswalking,1,0 #x obsoleto, compatibilidade apenas 118,suspendcaterpillar,0 # outros herói param de seguir o líder, e podem ser manipulados separadamente. 119,resumecaterpillar,0 # torna a fila do grupo ativa novamente 120,NPCreference,2,0,0 # pega uma referência NPC pelo número ID 121,NPCatspot,3,0,0,0 # pega uma referência NPC por X,Y 122,getNPCID,1,0 # pega o número ID de uma referência NPC 123,NPCcopycount,1,0 # encontra quantas cópias de um ID de NPC estão no mapa 124,changeNPCID,2,0,0 # dada uma referência NPC, muda seu ID 125,createNPC,4,0,0,0,2 # cria um NPC pelo ID em uma localização e retorna sua referência 126,destroyNPC,1,0 # destrói o NPC referenciado 127,teachspell,3,0,0,0 # (quem,magia,tipodeaprendizado) tenta ensinar uma magia a um herói 128,forgetspell,2,0,0 # (quem,magia) esquece uma magia aprendida 129,readspell,3,0,0,0 # (quem,lista,posição) retorna o número de uma magia em uma posição 130,writespell,4,0,0,0,0 # (quem,lista,posição,magia) força um herói a aprender uma magia 131,knowsspell,2,0,0 # (quem,magia)retorna verdadeiro se o herói já conhece essa magia 132,canlearnspell,3,0,0,0 # (quem,magia,tipodeaprendizado) retorna verdadeiro se o herói puder aprender a magia 133,herobyslot,1,0 # retorna o ID/nome do herói numa posição particular no grupo 134,herobyrank,1,0 # retorna o ID/nome do herói numa ordem particular na fila 135,puthero,3,0,0,0 #? (quem,x,y) determina a posição em pixels do herói 136,putnpc,3,0,0,0 # (quem,x,y) determina a posição em pixels do NPC 137,putcamera,2,0,0 # (x,y) determina a posição em pixels da tela 138,heropixelx,1,0 #? (quem) pega o pixel x do herói 139,heropixely,1,0 #? (quem) pega o pixel y do herói 140,npcpixelx,1,0 # (quem) pega o pixel x do npc 141,npcpixely,1,0 # (quem) pega o pixel y do npc 142,camerapixelx,0 #? pega o pixel x da câmera 143,camerapixely,0 #? pega o pixel y da câmera 144,loadtileset,1,-1 # carrega um novo conjunto de tiras para o mapa atual 145,pickhero,0 # permite você pegar um herói manualmente 146,renameherobyslot,1,0 # permite você renomear um herói manualmente 147,readgeneral,1,0 # lê diretamente de uma seqüencia de dados gerais de jogo em memória 148,writegeneral,2,0,0 # escreve diretamente de uma seqüencia de dados gerais de jogo em memória. Se você quebrar o seu jogo com este comando, não fique muito surpreso 150,statusscreen,1,0 # mostra a tela de atributos para um herói 151,showminimap,0 # mostra o mini-mapa 152,spellsmenu,1,0 # mostra o menu de magia para um herói 153,itemsmenu,0 # mostra o menu de itens 154,equipmenu,1,0 # mostra o menu de equipamento para um herói #155,savemenu,0 # obsoleto em favor do ID 170 157,ordermenu,0 # mostra o menu de ordem 158,teammenu,0 # mostra o menu de grupo 159,initmouse,0 # inicializa o mouse, retorna verdadeiro se um mouse estiver instalado 160,mousepixelx,0 # retorna a coordenada x do mouse na tela 161,mousepixely,0 # retorna a coordenada y do mouse na tela 162,mousebutton,1,0 # retorna verdadeiro se o botão especificado estiver pressionado 163,putmouse,2,160,100 # coloca o mouse em um ponto na tela 164,mouseregion,4,0,318,0,198 # define o retângulo no qual o mouse pode mover-se (xmin, xmax, ymin, ymax) 165,npcatpixel,3,0,0,0 # retorna o NPC no pixel x,y, terceiro argumento é qual NPC (caso -1 returna o número de npcs no pixel) 166,saveinslot,1,0 # salva jogo na posição [slot] 167,lastsaveslot,0 # retorna a última posição de salvamento onde o jogo foi salvo, falso se não salvo 168,suspendrandomenemies,0 # evita que inimigos aleatórios ataquem 169,resumerandomenemies,0 # desfaz suspendeinimigosaleatórios [suspendrandomenemies] 170,savemenu,1,-1 # mostra o menu de salvamento 171,saveslotused,1,1 # retorna verdadeiro se um jogo salvo existe na posição especificada 172,importglobals,3,1,-1,-1 # (posição, primeiro, último) lê uma série de globais em uma posição de salvamento 173,exportglobals,3,1,0,1024 # (posição, primeiro, último) escreve uma série de globais para uma posição de salvamento 174,loadfromslot,1,1 # carrega um jogo salvo da posição 175,deletesave,1,1 # deleta (esconde da tela carregar/salvar - dados não são *realmente* apagados) posição especificada 176,runscriptbyid,9,0,0,0,0,0,0,0,0,0 # executa um script através de seu número ID e passa até 8 argumentos 177,NPCiswalking,1,0 # (quem) retorna verdadeiro se andando (de verdade, diferentemente da antiga implementação) 178,readgmap,1,0 # lê do vetor de dados gerais do mapa 179,writegmap,2,0,0 # escreve um item de dado gmap (???) 180,mapwidth,0 # retorna a altura do mapa em tiras 181,mapheight,0 # retorna a largura do mapa em tiras 182,readNPC,2,0,0 # Lê informação sobre um NPC no mapa atual (corresponde a alterNPC) 183,setherolevel,3,0,0,1 # muda o nível de um herói 184,giveexperience,2,-1,1 # (quem, quanto) dá experiência a um herói ou ao grupo ativo 185,herolevelled,1,0 # número de níveis ganhos com o último comando battle/giveexperience. 186,spellslearnt,2,0,0 # número de magias e ids das magias que o herói aprendeu no último comando battle/giveexperience. 187,getmusicvolume,0 # volume de música numa escala de 0-255 independente de implementação 188,setmusicvolume,1,128 # define o volume da música em uma escala de 0-255 200,system hour,0 201,system minute,0 202,system second,0 203,current song,0 204,get hero name,2,0,0 # (string, hero) - coloca o nome do herói(hero) na string(string) 205,set hero name,2,0,0 # (string, hero) - define o nome do herói(hero) para string(string) 206,get item name,2,0,0 # (string, item) - coloca o nome do item(item) na string(string) 207,get map name,2,0,0 # (string, map) - coloca o nome do mapa(map) na string(string) 208,get attack name,2,0,0 # (string, attack) - coloca o nome do ataque(attack) na string(string) 209,get global string,2,0,0 # (string, global) - coloca o nome da string global(global) na string(string) 210,showstring,1,0 #mostra a string no fundo(stringID) 211,clearstring,1,0 #apaga dados da string(stringID) 212,appendascii,2,0,0 #adiciona ascii à string(stringID,ascii) 213,appendnumber,2,0,0 #adiciona número à string(stringID,number) 214,copystring,2,0,0 #copia string de uma para outra(sourceID,destinationID) 215,concatenatestrings,2,0,0 #adiciona duas strings(sourceID,destinationID) 216,stringlength,1,0 #retorna o tamanho da string(stringID) 217,deletechar,2,0,1 #apaga caractere da string(stringID,position) 218,replacechar,3,0,1,0 #substitui caracter na string especificada(stringID,position,ascii) 219,asciifromstring,2,0,1 #retorna o ascii na string(número ascii)(stringID,position) 220,positionstring,3,0,0,0 #move uma string para uma posição na tela(stringID,x,y) 221,setstringbit,3,0,0,0 #define um bit da string, como: visibilidade, stilo(stringID,bit,value) 222,getstringbit,2,0,0 #retorna um bit da string, como: visibilidade, stilo(stringID,bit) 223,stringcolor,3,0,15,0 #define a cor de uma string, e opcionalmente a cor de fundo(stringID,fColor,bColor) 224,stringx,1,0 #retorna a posição X da string(stringID) 225,stringy,1,0 #retorna a posição Y da string(stringID) 226,systemday,0 #retorna o dia do sistema 227,systemmonth,0 #retorna o mês do sistema 228,systemyear,0 #retorna o ano do sistema 229,stringcompare,2,0,0 #retorna se duas strings são a mesma(stringID1, stringID2) 230,readenemydata,2,0,0 #lê dados do inimigo(enemy,dataposition) 231,writeenemydata,3,0,0,0 #escreve dados do inimigo(enemy,dataposition,value) 232,trace,1,0 #escreve a string fornecida para G_DEBUG.txt 233,getsongname,2,0,0 #pega o nome da canção e armazena na string end #-------------------------------------------------------------------------- # soft coded functions - funções codificadas neste arquivo define script,begin autonumber,walkherotoX,2,0,0 # anda herói para X (quem,x) autonumber,walknpctoX,2,0,0 # anda npc para X (quem,x) autonumber,walkherotoY,2,0,0 # anda herói para Y (quem,y) autonumber,walknpctoY,2,0,0 # anda npc para Y (quem,y) autonumber,setNPCspeed,2,0,4 # determina a velocidade de caminhada do NPC autonumber,swapbyname,2,0,0 # faz dois heróis nomeados mudarem de lugar autonumber,getherolevel,1,0 # retorna o nível atual do herói autonumber,renamehero,1,0 # renomeia um herói (use hero:nome) autonumber,autosave,0 # salva automaticamente na posição mais recente autonumber,stringtoglobals,3,0,0,0 #converte string para global(stringID,start,length) autonumber,globalstostring,3,0,0,0 #monta strings de globais(stringID,start,length) autonumber,showstringat,3,0,0,0 #posiciona uma string na tela e a torna visível(stringID,x,y) autonumber,centerstringat,3,0,0,0 #posiciona uma string na tela e a torna visível(stringID,x,y) autonumber,hidestring,1,0 #torna uma string invísivel(stringID) autonumber,stringstyle,2,0,0 #muda o estilo de uma string: outline, flat(stringID,style) autonumber,lastascii,0 #retorna o código ascii da tecla sendo pressionada autonumber,inputstring,3,0,0,0 #permite o jogador entrar com uma string. Retorna falso caso ESC seja pressionado. (string,max len,use cur) end script,walkherotoX,who,n,begin if (n<<heroX(who)) then(walk hero(who,west,heroX(who)--n)) if (n>>heroX(who)) then(walk hero(who,east,n--heroX(who))) end script,walkherotoY,who,n,begin if (n<<heroY(who)) then(walk hero(who,north,heroY(who)--n)) if (n>>heroY(who)) then(walk hero(who,south,n--heroY(who))) end script,walkNPCtoX,who,n,begin if (n<<NPCX(who)) then(walk NPC(who,west,NPCX(who)--n)) if (n>>NPCX(who)) then(walk NPC(who,east,n--NPCX(who))) end script,walkNPCtoY,who,n,begin if (n<<NPCY(who)) then(walk NPC(who,north,NPCY(who)--n)) if (n>>NPCY(who)) then(walk NPC(who,south,n--NPCY(who))) end script,setNPCspeed,who,speed,begin alterNPC(who,NPCstat:movespeed,speed) end script,swapbyname,hero1,hero2,begin hero1:=findhero(hero1) hero2:=findhero(hero2) if (hero1==-1,or,hero2==-1) then (return(false)) else (return(true),swapbyposition(hero1,hero2)) end script,renamehero,who,begin variable(slot) slot:=findhero(who) if(slot>=0) then(renameherobyslot(slot),return(true)) else(return(false)) end # isto aproveita-se de uma característica não documentada de getherostat [peganíveldoherói]. # Você pode também mudar o nível do herói usando setherostat [defineatributodoherói] # no atributo 12, mas isto não é recomendado, já que não atualiza a # experiência do herói script,getherolevel,who,begin return(getherostat(who,12,currentstat)) end script,autosave,begin if (lastsaveslot==0) then(return(savemenu)) else(saveinslot(lastsaveslot),return(lastsaveslot)) end script,stringtoglobals,stringID,start,length,begin variable(temp) if (stringID>=0,and,stringID<=31) then( if (length>=1,and,length<=40) then( for (temp,1,length) do( writeglobal(start+(temp--1),asciifromstring(stringid,temp)) ) ) ) end script,globalstostring,stringID,start,length,begin variable(temp) variable(temp2) if (stringID>=0,and,stringID<=31) then( clearstring(stringid) if (length>=1,and,length<=40) then( for (temp,1,length) do( temp2:=readglobal(start+(temp--1)) if (temp2>=0,and,temp2<=255) then(appendascii(stringid,temp2)) ) ) ) end script,showstringat,stringID,x,y,begin setstringbit(stringID,0,1) positionstring(stringID,x,y) end script,centerstringat,stringID,x,y,begin setstringbit(stringID,0,1) positionstring(stringID,x--(stringlength(stringID)*4),y) end script,hidestring,stringID,begin setstringbit(stringID,0,0) end script,stringstyle,stringID,style,begin setstringbit(stringID,1,style) end script, last ascii, begin variable(code, shift) shift := keyispressed(42)==true, or, keyispressed(54)==true if(keyispressed(30)) then (code := 65) #A... if(keyispressed(48)) then (code := 66) if(keyispressed(46)) then (code := 67) if(keyispressed(32)) then (code := 68) if(keyispressed(18)) then (code := 69) if(keyispressed(33)) then (code := 70) if(keyispressed(34)) then (code := 71) if(keyispressed(35)) then (code := 72) if(keyispressed(23)) then (code := 73) if(keyispressed(36)) then (code := 74) if(keyispressed(37)) then (code := 75) if(keyispressed(38)) then (code := 76) if(keyispressed(50)) then (code := 77) if(keyispressed(49)) then (code := 78) if(keyispressed(24)) then (code := 79) if(keyispressed(25)) then (code := 80) if(keyispressed(16)) then (code := 81) if(keyispressed(19)) then (code := 82) if(keyispressed(31)) then (code := 83) if(keyispressed(20)) then (code := 84) if(keyispressed(22)) then (code := 85) if(keyispressed(47)) then (code := 86) if(keyispressed(17)) then (code := 87) if(keyispressed(45)) then (code := 88) if(keyispressed(21)) then (code := 89) if(keyispressed(44)) then (code := 90)#...Z if(keyispressed(2)) then (if(shift) then (code :=33) else (code :=49)) # 1... if(keyispressed(3)) then (if(shift) then (code :=64) else (code :=50)) if(keyispressed(4)) then (if(shift) then (code :=35) else (code :=51)) if(keyispressed(5)) then (if(shift) then (code :=36) else (code :=52)) if(keyispressed(6)) then (if(shift) then (code :=37) else (code :=53)) if(keyispressed(7)) then (if(shift) then (code :=94) else (code :=54)) if(keyispressed(8)) then (if(shift) then (code :=38) else (code :=55)) if(keyispressed(9)) then (if(shift) then (code :=42) else (code :=56)) if(keyispressed(10)) then (if(shift) then (code :=40) else (code :=57)) if(keyispressed(11)) then (if(shift) then (code :=41) else (code :=48)) # ...0 if(keyispressed(41)) then (if(shift) then (code :=126) else (code :=96)) # ` ~ if(keyispressed(12)) then (if(shift) then (code :=95) else (code :=45)) # - _ if(keyispressed(13)) then (if(shift) then (code := 43) else (code := 61)) # = + if(keyispressed(26)) then (if(shift) then (code := 123) else (code := 91)) # [ { if(keyispressed(27)) then (if(shift) then (code := 125) else (code := 93)) # ] } if(keyispressed(39)) then (if(shift) then (code := 58) else (code := 59)) # ; : if(keyispressed(40)) then (if(shift) then (code := 34) else (code := 39)) # ' " if(keyispressed(51)) then (if(shift) then (code := 60) else (code := 44)) # , < if(keyispressed(52)) then (if(shift) then (code := 62) else (code := 46)) # . > if(keyispressed(53)) then (if(shift) then (code := 63) else (code := 47)) # / ? if(keyispressed(43)) then (if(shift) then (code := 124) else (code := 92)) # \ | #if(keyispressed(40)) then (code := 47) # Num / WTF? Qual é o código para a outra "/"? if(keyispressed(55)) then (code := 42) # Num * if(keyispressed(71)) then (code := 55) # Num 7 if(keyispressed(72)) then (code := 56) # Num 8 if(keyispressed(73)) then (code := 57) # Num 9 if(keyispressed(74)) then (code := 45) # Num - if(keyispressed(75)) then (code := 52) # Num 4 if(keyispressed(76)) then (code := 53) # Num 5 if(keyispressed(77)) then (code := 54) # Num 6 if(keyispressed(78)) then (code := 43) # Num + if(keyispressed(79)) then (code := 49) # Num 1 if(keyispressed(80)) then (code := 59) # Num 2 if(keyispressed(81)) then (code := 51) # Num 3 if(keyispressed(82)) then (code := 48) # Num 0 if(keyispressed(83)) then (code := 46) # Num . if(keyispressed(57)) then (code := 32) # ESPAÇO if(code <= 90, and, code >= 65) then, begin if(shift == false) then (code += 32) end return (code) end script, input string, str, max len, useexist, begin variable(done, key,count) if(useexist==false) then (clear string(str)) count := string length(str) while(done == false) do, begin center string at(str,160,110) wait for key if(key is pressed(28)) then (done := true, return(true)) else, begin if(key is pressed(14)) then (delete char(str,string length(str))) if(key is pressed(1)) then (done:=true,return(false)) else, begin key := last ascii if(last ascii, and, count << max len) then(append ascii(str,key), count += 1, show value(max len -- count)) end end end show no value hide string end #-------------------------------------------------------------------------- #lê/escreve dados dos inimigos define script(autonumber,getenemyname,2,0,0) script,getenemyname,enemyID,stringID,begin variable(t) for (t,1,readenemydata(enemyID,0))do( appendascii(stringID,readenemydata(enemyid,t)) end end define script(autonumber,getenemystat,2,0,0) script,getenemystat,enemyid,stat,begin return(readenemydata(enemyid,stat+62)) end define script(autonumber,setenemystat,3,0,0,0) script,setenemystat,enemyid,stat,value,begin writeenemydata(enemyid,stat+62,value) end define script(autonumber,setenemyname,2,0,0) script,setenemyname,enemyid,stringid,begin variable(t,t2) if(stringlength(stringid)>=16)then(t2:=16)else(t2:=stringlength(stringid)) writeenemydata(enemyid,0,t2) for(t,1,t2)do( writeenemydata(enemyid,t,asciifromstring(stringid,t)) ) end define script(autonumber,getenemyrewards,2,0,0) script,getenemyrewards,enemyid,reward,begin return(readenemydata(enemyid,reward+56)) end define script(autonumber,setenemyrewards,3,0,0,0) script,setenemyrewards,enemyid,reward,value,begin writeenemydata(enemyid,reward+56,value) end define script(autonumber,getenemyappearance,2,0,0) script,getenemyappearance,enemyid,appearance,begin return(readenemydata(enemyid,appearance)) end define script(autonumber,setenemyappearance,3,0,0,0) script,setenemyappearance,enemyid,appearance,value,begin writeenemydata(enemyid,appearance,value) end #-------------------------------------------------------------------------- # read/write general wrappers - lê/escreve dados gerais define script(autonumber,set victory music,1,0) script,set victory music,song,begin write general(3,song) end define script(autonumber,get death script,none) script,get death script,begin return(read general(42)) end define script(autonumber,get load script,none) script,get load script,begin return(read general(57)) end define script(autonumber,set load script,1,0) script,set load script,ID,begin write general(57,ID) end define script(autonumber,set battle wait mode,1,0) script,set battle wait mode,bit,begin if(bit) then(bit:=1) write general(101,(read general(101),and,32766)+bit) end define script(autonumber,set caterpillar mode,1,0) script,set caterpillar mode,bit,begin if(bit) then(bit:=2) write general(101,(read general(101),and,32765)+bit) end define script(autonumber,set no HP level up restore,1,0) script,set no HP level up restore,bit,begin if(bit) then(bit:=4) write general(101,(read general(101),and,32763)+bit) end define script(autonumber,set no MP level up restore,1,0) script,set no MP level up restore,bit,begin if(bit) then(bit:=8) write general(101,(read general(101),and,32759)+bit) end define script(autonumber,set inn no revive mode,1,0) script,set inn no revive mode,bit,begin if(bit) then(bit:=16) write general(101,(read general(101),and,32751)+bit) end define script(autonumber,set full hero swap mode,1,0) script,set full hero swap mode,bit,begin if(bit) then(bit:=32) write general(101,(read general(101),and,32735)+bit) end define script(autonumber,hide battle ready meter,1,0) script,hide battle ready meter,bit,begin if(bit) then(bit:=64) write general(101,(read general(101),and,32703)+bit) end define script(autonumber,hide battle health meter,1,0) script,hide battle health meter,bit,begin if(bit) then(bit:=128) write general(101,(read general(101),and,32639)+bit) end define script(autonumber,set debug keys disable,1,0) script,set debug keys disable,bit,begin if(bit) then(bit:=256) write general(101,(read general(101),and,32511)+bit) end define script(autonumber,suspend map music,0) script,suspend map music, begin write general(44,read general(44),or,512) end define script(autonumber,resume map music,0) script,resume map music, begin write general(44,read general(44),and,32255) end #-------------------------------------------------------------------------- # lê/escreve dados gmap define script(autonumber,get map tileset,0) script,get map tileset,begin return(read gmap(0)) end define script(autonumber,get ambient music,0) script, get ambient music, begin return (read gmap(1) -- 1) end define script(autonumber,set ambient music,1,-1) script, set ambient music, song, begin write gmap(1,song + 1) if (song >= 0) then (play song (song)) else (stop song) end define script(autonumber,allow minimap,1,1) script,allow minimap,setting,begin write gmap(2,setting) end define script(autonumber,allow save anywhere,1,1) script,allow save anywhere,setting,begin write gmap(3,setting) end define script(autonumber,set map edge mode,2,0,0) #second argument only used with DefaultTile script,set map edge mode,mode,tile,begin write gmap(5,mode) write gmap(6,tile) end define script(autonumber,get map edge mode,0) script,get map edge mode,begin return(read gmap(5)) end define script(autonumber,set harm tile damage,1,0) script,set harm tile damage,damage,begin write gmap(9,damage) end define script(autonumber,set harm tile flash,1,0) script,set harm tile flash,colour,begin write gmap(10,colour) end define script(autonumber,get footoffset,0) script,get footoffset,begin return(read gmap(11)) end define script(autonumber,set footoffset,1,0) script,set footoffset,offset,begin write gmap(11,offset) end define script(autonumber,get instead of battle script,0) script,get instead of battle script,begin return (read gmap(13)) end define script(autonumber,set instead of battle script,1,0) script,set instead of battle script,ID,begin write gmap(13,ID) end define script(autonumber,get each step script,0) script,get each step script,begin return (read gmap(14)) end define script(autonumber,set each step script,1,0) script,set each step script,ID,begin write gmap(14,ID) end define script(autonumber,get on keypress script,0) script,get on keypress script,begin return (read gmap(15)) end define script(autonumber,set on keypress script,1,0) script,set on keypress script,ID,begin write gmap(15,ID) end define script(autonumber,draw npcs above heroes,1,0) script,draw npcs above heroes,setting,begin write gmap(16,setting) end define script(autonumber,get damage cap,0) script,get damage cap,begin return(readgeneral(63)) end define script(autonumber,set damage cap,1,0) script,set damage cap,c,begin writegeneral(63,c) end #-------------------------------------------------------------------------- # novos dados/re-invenção da roda de comandos define script, begin autonumber,days of play,0 autonumber,hours of play,0 autonumber,minutes of play,0 autonumber,seconds of play,0 autonumber,set days of play,1,0 autonumber,set hours of play,1,0 autonumber,set minutes of play,1,0 autonumber,set seconds of play,1,0 end script, days of play, begin return(read general(51)) end script, hours of play, begin return(read general(52)) end script, minutes of play, begin return(read general(53)) end script, seconds of play, begin return(read general(54)) end script,set days of play,d, begin if(d >= 0) then (write general(51,d)) end script,set hours of play,h, begin if(h >= 0, and, h << 24) then (write general(52,h)) end script,set minutes of play,m, begin if(m >= 0, and, m << 60) then (write general(53,m)) end script,set seconds of play,s, begin if(s >= 0, and, s << 60) then (write general(54,s)) end #-------------------------------------------------------------------------- # funções de dados appendascii # $id="..." e $id+"..." são traduzidos para estas funções por HSpeak define script,begin autonumber,setstring,41,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 autonumber,appendstring,41,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 end script,setstring,id,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20 a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,begin clearstring(id) appendascii(id,a1) appendascii(id,a2) appendascii(id,a3) appendascii(id,a4) appendascii(id,a5) appendascii(id,a6) appendascii(id,a7) appendascii(id,a8) appendascii(id,a9) appendascii(id,a10) appendascii(id,a11) appendascii(id,a12) appendascii(id,a13) appendascii(id,a14) appendascii(id,a15) appendascii(id,a16) appendascii(id,a17) appendascii(id,a18) appendascii(id,a19) appendascii(id,a20) appendascii(id,a21) appendascii(id,a22) appendascii(id,a23) appendascii(id,a24) appendascii(id,a25) appendascii(id,a26) appendascii(id,a27) appendascii(id,a28) appendascii(id,a29) appendascii(id,a30) appendascii(id,a31) appendascii(id,a32) appendascii(id,a33) appendascii(id,a34) appendascii(id,a35) appendascii(id,a36) appendascii(id,a37) appendascii(id,a38) appendascii(id,a39) appendascii(id,a40) end script,appendstring,id,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20 a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,a33,a34,a35,a36,a37,a38,a39,a40,begin appendascii(id,a1) appendascii(id,a2) appendascii(id,a3) appendascii(id,a4) appendascii(id,a5) appendascii(id,a6) appendascii(id,a7) appendascii(id,a8) appendascii(id,a9) appendascii(id,a10) appendascii(id,a11) appendascii(id,a12) appendascii(id,a13) appendascii(id,a14) appendascii(id,a15) appendascii(id,a16) appendascii(id,a17) appendascii(id,a18) appendascii(id,a19) appendascii(id,a20) appendascii(id,a21) appendascii(id,a22) appendascii(id,a23) appendascii(id,a24) appendascii(id,a25) appendascii(id,a26) appendascii(id,a27) appendascii(id,a28) appendascii(id,a29) appendascii(id,a30) appendascii(id,a31) appendascii(id,a32) appendascii(id,a33) appendascii(id,a34) appendascii(id,a35) appendascii(id,a36) appendascii(id,a37) appendascii(id,a38) appendascii(id,a39) appendascii(id,a40) end #-------------------------------------------------------------------------- # betweenable operators - operadores do meio define operator,begin 20 ^ exponent # expoente 30,mod,modulus # módulo (resto da divisão) 30 / divide # divisão 30 * multiply # multiplicação 40 -- subtract # subtração 40 + add # adição 50 == equal # igual 50 <> notequal # diferente (literalmente, não-igual) 50 << lessthan # menor que 50 >> greaterthan # maior que 50 <= lessthanorequalto # menor ou igual a 50 >= greaterthanorequalto # maior ou igual a 60,xor,xor # ou exclusivo 60,and,and # e 60,or, or # ou 70 := setvariable # atribuição (define variável) 70 += increment # incremento 70 -= decrement # decremento 70 $+ concatenatestrings # concatena strings 70 $= copystring # copia strings end #-------------------------------------------------------------------------- # global constants - constantes globais # *Nota do tradutor: esta é a parte que mais interessa alterar para facilitar # *a escrita de seus scripts (se você pensa melhor em português do que em # *inglês). Para fazê-lo, apague a cerquilha (#), mas mantenha a constante anterior, # *pois ela é usada internamente. # *Você poderia usar os números também, mas a idéia das constantes é facilitar as # *coisas evitando decorar todos eles. # *Você verá que nem todas valem a pena serem traduzidas. define constant, begin 0,zero #0,zero 1,one #1,um 2,two #2,dois 3,three #3,tres 4,four #4,quatro 5,five #5,cinco 6,six #6,seis 7,seven #7,sete 8,eight #8,oito 9,nine #9,nove 10,ten #10,dez 0,false #0,falso 1,true #1,verdadeiro 0,off #0,desligado 1,on #1,ligado 0,north #0,norte 1,east #1,leste 2,south #2,sul 3,west #3,oeste 0,up #0,cima 2,down #2,baixo 3,left #3,esquerda 1,right #1,direita 0,upkey #0,teclaacima 1,downkey #1,teclaabaixo 2,leftkey #2,teclaesquerda 3,rightkey #3,tecladireita 4,usekey #4,teclauso 5,cancelkey #5,teclacancelar 5,menukey #5,teclamenu 99,anykey #99,qualquertecla 0,me #0,me 0,none #0,nenhum ou nada -1,autonumber #-1,autonumero 0,currentstat #0,atributoatual 1,maximumstat #1,atributomaximo 1,northwall #1,paredenorte 2,eastwall #2,paredeleste 4,southwall #4,paredesul 8,westwall #8,paredeoeste 16,vehicleA #16,veiculoA 32,vehicleB #32,veiculoB 64,harmtile #64,tiradano 128,overheadtile #128,tirasuperior 0,inside battle #0,dentrodabatalha 1,outside battle #1,foradabatalha 0,NPCstat:picture #0,NPCatrib:figura (nestes, não sei se vai funcionar) 1,NPCstat:palette #1,NPCatrib:paleta (estas características estão no) 2,NPCstat:movetype #2,NPCatrib:tipodemovimento (arquivo HSI do seu jogo) 0,NPCmovetype:standstill #0,NPCtipmov:permaneceparado 1,NPCmovetype:wander #1,NPCtipmov:andando (aqui é por sua conta e risco) 2,NPCmovetype:pace #2,NPCtipmov:marcha 3,NPCmovetype:rightturns #3,NPCtipmov:viradireita 4,NPCmovetype:leftturns #4,NPCtipmov:viraesquerda 5,NPCmovetype:randomturns #5,NPCtipmov:viraaleatorio 6,NPCmovetype:chaseyou #6,NPCtipmov:seguevoce 7,NPCmovetype:avoidyou #7,NPCtipmov:fogedevoce 3,NPCstat:movespeed #3,NPCatrib:velocidademovimento 4,NPCstat:displaytext #4,NPCatrib: mostratexto 5,NPCstat:whenactivated #5,NPCatrib:quandoativado 0,NPCwhenactivated:changedirection #0,NPCqativ:mudadirecao 1,NPCwhenactivated:faceplayer #1,NPCqativ:encarajogador 2,NPCwhenactivated:donotfaceplayer #2,NPCqativ:naoencarajogador 6,NPCstat:giveitem #6,NPCatrib:daitem 7,NPCstat:pushability #7,NPCatrib:empurrabilidade 0,NPCpush:off #0,NPCemp:desligada 1,NPCpush:full #1,NPCemp:total 2,NPCpush:horizontal #2,NPCemp:horizontal 3,NPCpush:vertical #3,NPCemp:vertical 4,NPCpush:uponly #4,NPCemp:cimaapenas 5,NPCpush:rightonly #5,NPCemp:direitaapenas 6,NPCpush:downonly #6,NPCemp:baixoapenas 7,NPCpush:leftonly #7,NPCemp:esquerdaapenas 8,NPCstat:activation #8,NPCatrib:ativacao (disparo) 0,NPCactivation:use #0,NPCdisp:uso 1,NPCactivation:touch #1,NPCdisp:toque 2,NPCactivation:stepon #2,NPCdisp:pisanele 12,NPCstat:script #12,NPCatrib:script (enredo) 13,NPCstat:scriptargument #13,NPCatrib:argumentoscript 14,NPCstat:vehicle #14,NPCatrib:veiculo 0,color:red #0,cor:vermelho 1,color:green #1,cor:verde 2,color:blue #2,cor:azul 0,leftbutton #0,botaoesquerdo 1,rightbutton #1,botaodireito -1,getcount #-1,pegaconta 0,string:outline #0,string:linha_por_fora (seria sublinhado??) 1,string:flat #1,string:chata (achatada) 0,Enemy:Picture #0,Inimigo:Figura 1,Enemy:Palette #1,Inimigo:Paleta 2,Enemy:PictureSize #2,Inimigo:Tamanhodafigura 0, EnemySize:small #0,Inimigo:pequeno 1, EnemySize:medium #1,Inimigo:medio 2, EnemySize:large #2,Inimigo:grande 56,Enemy:Gold #56,Inimigo:Ouro 57,Enemy:Experience #57,Inimigo:Experiencia 58,Enemy:Item #58,Inimigo:Item 59,Enemy:ItemPercent #59,Inimigo:PorcentagemdeItem 60,Enemy:RareItem #60,Inimigo:ItemRaro 61,Enemy:RareItemPercent #61,Inimigo:PorcentagemdeItemRaro 17,Stealability #17,Roubabilidade -1, IsNotStealable #-1,Naoroubavel 0, StealableOnce #0,Apenasumavez 1, StealableInfinity #1,Infinitamente 18, StealableItem #18,Itemroubavel 19, StealableItemChance #19,Chancederoubodeitem 20, StealableRareItem #20,itemRaroRoubavel 21, StealableRareItemchance #21,ChancederoubodeItemRaro 0, Crop #0,Normal (mapa travado) 1, Wrap #1,Interligado (estilo mapa-mundi) 2, Defaulttile #2,Tirapadrao -1,party #-1,Grupo end