Ir para conteúdo

LuckOake

Marquês
  • Total de itens

    1104
  • Registro em

  • Última visita

  • Dias Ganhos

    20

Tudo que LuckOake postou

  1. LuckOake

    Unhandled Opcode

    Uso TFS 0.4 rev 3884.
  2. LuckOake

    Unhandled Opcode

    Bom, na verdade não estou usando nenhum script que use opcodes. Consegui resolver, troquei o executável do otclient. Mas ai, por que esse erro acontece?
  3. Moveu errado. Como isso não envolve scripts, o certo seria na área de tutoriais.
  4. LuckOake

    Unhandled Opcode

    Olá. Estou com o seguinte erro na hora de entrar no jogo: ERROR: ProtocolGame parse message exception (100 bytes unread, last opcode is 16, prev opcode is 161): unhandled opcode 16 Quando entro no jogo, dá esse erro e os eventos onLogin não são executados. Help?
  5. Certo, e agora que vi o que você tinha feito. Tava certim mesmo o tutorial, foi equívoco meu. É que achei que você tava tentando retornar um índice da tabela. E complementa também com tabelas assim: local items = {{1234, {10, 100}}, {2345, {50, 60}}} Ou seja, randomizar o itemid e a quantia pra ter uma possibilidade maior nos scripts.
  6. Bom, cara, não é só porque você é moderador que você pode postar direto na área de tutoriais. Move o tópico pra aprovação pra galera avaliar antes, pfv. Na minha opinião ainda tá muito fraco o tutorial. Você explicou coisas erradas e não abrangeu todo o potencial do math.random.
  7. Nossa, quanta dificuldade .-. broadcastlevel.lua: function isInteger(n) return math.floor(n) == n and true or false end function onAdvance(cid, skill, oldLevel, newLevel) if isInteger(newLevel/100) then broadcastMessage("O jogador "..getCreatureName(cid).." atingiu o level "..newLevel..".") end return true end login.lua (antes do último return true): registerCreatureEvent(cid, "BroadcastLevel") creaturescripts.xml: <event type="advance" name="BroadcastLevel" script="broadcastlevel.lua"/>
  8. Se não sabe o que fala, nem poste. Esse sistema é meu sim e também foi postado ano passado. Se tiver algum na otland mais antigo, é outra versão.
  9. Crio um tópico lá na seçao do OTClient ou posto aqui mesmo?
  10. Ou seja, com essa função, ao receber o OPCode 100 vai printar "received something from server!"?
  11. Olá. Comecei a mexer no otclient e achei interessante o uso desses opcodes, mas ainda não consegui entender a parte do client de receber os dados. Como eu utilizo o registerExtendedOpcode?
  12. Cara, esses codes tão dando umas incompatibilidades com o TFS rev 3884. Consegui adaptar a maioria, menos o protocolgame.cpp. Veja o erro: In member function `void ProtocolGame::parseExtendedOpcode(NetworkMessage&)': 'class Player' has no member named 'getId' [build Error] [obj//protocolgame.o] Error 1 Alguém consegue ajudar? ~~ Edit ~~ Consegui arrumar. Problema no case sensitive. O certo deveria ser getID, e não getId.
  13. Isso ai, tá aprendendo Dica: - Coloque um return true antes do end aqui pra evitar da talk sair no default. function onSay(cid, words, param, channel) doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Feed: ".. getPlayerFood(cid)) end
  14. Rapaz, retire esse script ai do loginfeed.lua, tira a tag dele e tira o registerCreatureevent dele no login.lua. Coloca isso no foodcheck.lua function checkFood(cid, time) if getPlayerFood(cid) <= 30 then doCreatureAddHealth(cid, -20) doPlayerSendTextMessage(cid,19, "Você está com fome.") doSendMagicEffect(getCreaturePosition(cid), 30) end return addEvent(checkFood, time*1000, cid, time) end function onLogin(cid) local tempo = 10 -- A cada quantos segundos será verificado if getPlayerFood(cid) == 0 then doPlayerFeed(cid, 100) end checkFood(cid, tempo) return true end
  15. Opa, pedi o script errado. Era o loginfeed.lua. Posta ele aqui.
  16. É, fazer tipo "step-by-step" seria interessante. E no final, colocar exercícios com a resposta em spoiler. Mas essas apostilas devem ser bem detalhadas pra conseguir fazer os usuários entenderem bem, e evitar fazer resumos, como falar de variáveis e loops num mesmo tópico. Da maneira como está seria interessante, mas ainda poderia ter algo melhor, como uma forma de incentivo. Que tal vocês colocarem tipo "exercício da semana"? A galera envia o exercício pronto, quem fizer certo ganha um ponto, ou um REP, algo assim.
  17. Compreendi. Mas ai, vocês tão pretendendo só postar apostilas mesmo? Acho que ficaria meio estranho isso, pois já existe a área de tutoriais pra postar coisas assim. Deveria ter alguma coisa extra que diferenciasse a área da Academia da área de Tutoriais. O que vocês têm em mente?
  18. A tag do script foodcheck está errada. Ela deveria ser type="login", mas está como type="think". E posta o script foodcheck.lua aqui, parece que tá faltando a função checkFood.
  19. 1) Foi dito na equipe atual não há outros além de você. 2) A primeira ideia foi ensinar Lua pura mesmo. Desde quando eu sugeri isso até quando era o Oneshot na coordenação o objetivo era ensinar Lua pura. É claro que pode envolver também otserver, mas não era esse o foco. 3) Novamente, a primeira ideia da academia era ter aulas via skype, facebook ou msn. Seriam postadas apostilas também na seção, mas as aulas mesmo seriam apenas professor e aluno por algum meio de contato. Se houve mudanças nisso eu já não sei. Mas até quando era o Oneshot no comando era dessa forma que descrevi acima.
  20. LuckOake

    Verificar database

    Agaaaain: function getInfoFromDatabase(table, column, condition, id) local a = db.getResult("SELECT `"..column.."` FROM `"..table.."` WHERE `"..condition.."` = '"..id.."';") if a:getID() == -1 then return false end local b = a:getDataString(""..column.."") return b, a:free() end
  21. Claro, mas os créditos são seus, você que fez o script, eu apenas te ajudei a arrumar ele Fico feliz em saber que você conseguiu entender, quando eu vejo que a pessoa quer mesmo aprender eu faço o possível pra ela entender tudo
  22. ¬¬ , Então tem que fazer um curso de pedagogia né e um mestrado... só assim vai dar para ensinar bem, deveria ter gente disposta a ensinar pelo menos um pouco. A questão não é essa. O objetivo da academia é e sempre foi tornar as pessoas scripters da linguagem Lua, e não simples scripters de OTServer. Se estão querendo ensinar funções de open tibia, que usem a área de Tutoriais. E não precisa fazer faculdade, escola, curso, nem nada pra saber bem. Scripters como Oneshot e Demonbholder aprenderam sozinhos o funcionamento da linguagem. Como eu disse, caso queiram transformar as pessoas em scripter de otserver, mudem o nome do projeto.
  23. Rapaz, não entendi direito essa outra pergunta, mas vou explicar o funcionamento de um script: function teste(cid) -- 1: Script reconhece que é uma função if 3 == 3 then -- 2: Script faz a comparação print("Hi") -- 3: Script executa a função se a comparação for verdadeira end -- 4: Termina return true -- 5: Retorna true end -- 6: Termina tudo Traduzindo, o script executa à medida em que os comandos são dados. Se você colocar a linha xx antes da linha yy, o script vai ler e executar primeiro a linha xx.
  24. Cara, se o objetivo é fazer o povo aprender o básico pra evitar pedido e dúvidas, troque o nome da academia pra "Academia de Scripting para OTServer". Ficaria melhor. E se você pretende postar apenas apostilas, use a área de Tutoriais. A academia de scripting é pra dar aulas mesmo, seja via skype, face, PM, etc.
  25. Como eu já disse, um return sempre para o script em certo ponto. Como o return tá dentro da condição, se ela for verdadeira, a checagem de food nunca vai acontecer, pois o script vai retornar true e parar naquele ponto e a função checkFood não será executada.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...