-
Total de itens
1104 -
Registro em
-
Última visita
-
Dias Ganhos
20
Tudo que LuckOake postou
-
Uso TFS 0.4 rev 3884.
-
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?
-
[AntiMageBomb] Accounts Manager.
tópico respondeu ao ViitinShakur de LuckOake em Tutoriais para Iniciantes
Moveu errado. Como isso não envolve scripts, o certo seria na área de tutoriais. -
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?
-
[Tutorial] Conhecendo o math.random
tópico respondeu ao Roksas de LuckOake em Tutoriais de Scripting
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. -
[Tutorial] Conhecendo o math.random
tópico respondeu ao Roksas de LuckOake em Tutoriais de Scripting
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. -
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"/>
- 11 respostas
-
- broadcast lvl x
- resolvido
-
(e 1 mais)
Tags:
-
mod Partner System 2.0 [Atualizado]
tópico respondeu ao LuckOake de LuckOake em Mods, funções e outros
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. -
Extended Opcodes (OtClient)
tópico respondeu ao BananaFight de LuckOake em Linguagens de Programação
Crio um tópico lá na seçao do OTClient ou posto aqui mesmo? -
Ou seja, com essa função, ao receber o OPCode 100 vai printar "received something from server!"?
-
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?
-
Extended Opcodes (OtClient)
tópico respondeu ao BananaFight de LuckOake em Linguagens de Programação
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. -
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
-
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
-
Opa, pedi o script errado. Era o loginfeed.lua. Posta ele aqui.
-
[Arquivado]Academia de Scripting - O começo!
tópico respondeu ao Roksas de LuckOake em Noticias - Arquivo
É, 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. -
[Arquivado]Academia de Scripting - O começo!
tópico respondeu ao Roksas de LuckOake em Noticias - Arquivo
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? -
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.
-
[Arquivado]Academia de Scripting - O começo!
tópico respondeu ao Roksas de LuckOake em Noticias - Arquivo
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. -
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
-
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
-
[Arquivado]Academia de Scripting - O começo!
tópico respondeu ao Roksas de LuckOake em Noticias - Arquivo
¬¬ , 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. -
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.
-
[Arquivado]Academia de Scripting - O começo!
tópico respondeu ao Roksas de LuckOake em Noticias - Arquivo
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. -
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.