-
Total de itens
750 -
Registro em
-
Última visita
-
Dias Ganhos
8
Tudo que dalvorsn postou
-
dúvida [Encerrado] Nascer com outfit
tópico respondeu ao narutomaniacos de dalvorsn em Tópicos Sem Resposta
desde ja obrigado pela atenção são varias! Asim que possivel explique e nao esqueça por favor #Aguardando... Então, antes de mais nada você tem que definir o que vai diferenciar um player de outro, para que sua outfit seja diferente, pode ser vocação, local onde nasce, e etc ... Dai faremos uma tabela com essas configurações, usaremos no onLogin um if com a seguinte condição: getPlayerLastLoginSaved(cid) <= 0 Dentro do bloco desse if, setaremos a nova outfit, de acordo com o que usamos para diferenciar. -
dúvida [Encerrado] Nascer com outfit
tópico respondeu ao narutomaniacos de dalvorsn em Tópicos Sem Resposta
Sqlite então, pois bem, abra a sua database e edite o player account manager, isso se for apenas um outfit, se forem mais, terá que ser pelo login.lua, se for lo caso explico mais tarde, estou na estrada Cya -
dúvida [Encerrado] Nascer com outfit
tópico respondeu ao narutomaniacos de dalvorsn em Tópicos Sem Resposta
Blz man mas e como faz pra o player ja nasce com a outfit ond edita isso? Qual seu tipo de database? -
dúvida [Encerrado] Nascer com outfit
tópico respondeu ao narutomaniacos de dalvorsn em Tópicos Sem Resposta
Vá em data/creaturescripts/scripts/login.lua Troque isso: local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage if(lastLogin > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "." else str = str .. " Please choose your outfit." doPlayerSendOutfitWindow(cid) end Por isso: local accountManager = getPlayerAccountManager(cid) if(accountManager == MANAGER_NONE) then local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage if(lastLogin > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "." end -
A função test não tem retorno, e printar apenas o nome dela, vai mostrar 'function: 0x00algo', e se printar print(test()) vai printar o print da função teste, e nil que é o retorno dela. A questão é que o modo que você falou, pode confundir as pessoas, pareceu que o nome da função é a mensagem a ser printada, e não é assim. Quando receber o opcode ele vai executar a função determinada, no caso do baxnie ali a função test, se fosse outra função qualquer, executaria também da mesma forma e não precisa ter uma mensagem, nem printar nada, pode ser apenas uma função para setar algo, definir alguma coisa.
-
Ele perguntou no cliente, a primeira parte que voce postou, é a callback do server, ela é chamada quando o server recebe algum opcode. E na segunda explicação, tem uma incoerência quanto ao uso da função de registrar os opcodes Os opcodes são registrados através da função ProtocolGame.registerExtendedOpcode(opcode, callback) Onde o primeiro parametro é o valor do opcode(numero referente, como no exemplo do baxnie era 100), e o segunda parametro que é a callback, que nada mais é que o nome da função que será chamada quando receber o opcode 100.
-
function onUse(cid, item, frompos, item2, topos) local monstro = getItemAttribute(item.uid, "corpse") local health = getItemAttribute(item.uid, "health") local name = getItemAttribute(item.uid, "monstro") local vocationUse = {4, 8} -- poem a vocação e a promotion if #getCreatureSummons(cid) > 3 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você ja esta usando uma reencarnação ou um pet") return true end if getPlayerMana(cid) < health/100*70 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem chakra suficiente") return true end if getPlayerStorageValue(cid, 24436) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode invocar mais de reanimação junto.") return true end if isInArray(vocationUse, getPlayerVocation(cid)) then doPlayerSendTextMessage(cid,22,"Você não tem a vocação apropriada") return TRUE end t = doCreateMonster(monstro, getThingPos(cid)) doConvinceCreature(cid, t) setCreatureMaxHealth(t, health) doCreatureAddHealth(t, health) doPlayerAddMana(t, -getItemAttribute(item.uid, "health")/90) setPlayerStorageValue(cid, 24436, name) return true end
-
function onCastSpell(cid, var) -- by DrakyLucas local leveis = { -- [(lvlMin,lvlMax)] = {runas = {ID1,ID2,ID3,....,IDn}}, [{1, 20}] = {runas = {2287,2315,2316}}, [{21,40}] = {runas = {2287,2315,2316}}, [{41,99999}] = {runas = {2287,2315,2316}}, } for runa, TABLE in pairs(leveis) do if getPlayerMagLevel(cid) >= runa[1] and getPlayerMagLevel(cid) <= runa[2] then doPlayerAddItem(cid,TABLE.runas[math.random(1,#TABLE.runas)],math.random(1,100)) break end end return true end
- 8 respostas
-
- acho que é assim que escreve
- resolvido
- (e 1 mais)
-
mas esta compilado com a função direitinho, alem de compilar a função eu tenho que colocala na lib? script server - side Client - side oque poderia ser =\ Parece besteira, mas pode ser que voce tenha compilado e não tenha trocado o executavel pelo gerado na compilação no server, ai e como se não tivesse mudado nada.
-
e porque esse diff foi feito com base numa source bem recente da svn privada do tfs pra usar em tfs 036 vai ter que ler todas as modificaçoes, entender e adaptar, isso e bem complicado se voce for leigo em c++
-
Exemplo bem básico: Client: #modules/game_print/print.otmod de0vrxyU[/pastebin] #modules/game_print/print.otui S8SDFciL[/pastebin] #modules/game_print/print.lua DRv7GHbY[/pastebin] Server: #data/creaturescripts/extendedopcode.lua GfG1mZF9[/pastebin] Obs.: É necessário que tenhas o codigo compilado nas sources, se não tiver não vai funcionar a callback. Modulo anexado game_print.rar Edit: Voce teria algum exemplo de como utilizar so servidor para o cliente tipo usar um onuse em x objeto e o cliente apresentar alguma caracteristica dele tipo som com as informações que temos ta dificil pra alguns mais leigos e fuçados tentar execultar algo a unica coisa que consegui utilizar ate agora foi o isPlayerUsingOtclient(cid) ainda n intendi como usar o opcode É só usar essa função no script do server doSendPlayerExtendedOpcode(cid, opcode, buffer) E no otclient voce usa essa função aqui: ProtocolGame.registerExtendedOpcode(opcode, callback) lembrando que callback deve ser uma função qualquer criada por voce, que tenha como parametros isso: protocol, opcode, buffer Ex.: function minhafuncao(protocol, opcode, buffer) print(opcode, buffer) ehd ProtocolGame.registerExtendedOpcode(opcode, minhafuncao)
-
O primeiro script está bom, mas o segundo ... Eu realmente não entendo o porque de deletar as contas, e se foi hackeado, não vai adiantar muita coisa deletar os que tiverem group_id >= 5. Eu acho que o mais aconselhável seria banir por ip, e nada mais. Pois assim não haveria perda de dados e não haveria também abuso de poderes.
-
Eu não alterei em nada a magia, eu apenas troquei o nome 'changeposbydir' por 'getPositionByDirection'
-
O que a função 'changeposbydir' deveria fazer? #edit Acho que sei como é essa função, se for a que estou pensando, o nome dela no tfs é getPositionByDirection(fromPosition, direction, size) Teste ai: eryUTCpi[/pastebin]
-
#baxnie Não tinha pensado nisso, muito bom. É, acho que assim é bem melhor mesmo.
-
Essa lib que to fazendo. Bem a estrutura base dela ja ta 90% pronta e já é funcional. Antes de mais nada vou apresentar a ideia que gerou ela, e quero sugestões que acrescentem a essa linha da ideia. Como quem meche com lua sabe, ela nao tem orientação a objeto, e a maioria dos metodos que usam por ai não simula herança, eu quero mudar isso, acho interessante ter herança, e fiz um lib pra isso: Vm3BqgFT[/pastebin] Me digam, o que poderia ser adicionado a lib? O que poderia ser melhorado? Quais outros conceitos mais de orientação a objeto seriam interessantes de adicionar. Agradeço aos que colaborarem. Lembrando que o script será postado ao seu termino.
-
Não tenha tanta certeza, a codificação ali ta foda
-
Autor: Dalvo Descrição: Função que retorna todos os numeros primos de 2 até range, se range está ausente range vale 2. O codigo é feito em lua puro, não há incompatibilidade. Quanto a utilidade, isso vai da criatividade. getPrimes([range]) aaeS3AyL [/pastebin] Duvidas, bugs ou erros reportem.
-
levei 1 semana pra descobrir isso na marra ¬¬ achu q o CODE do xtibia eh uma bota ms ;x sera q com 'quote' a indenizaçao fica correta? '--' anchors.left: Label1.left vlw pela dica! uma duvida, sabes como mover uma janela? ja tentei todas as 'funçoes' q eu achei e nd ate agora... -ex: setPosition(pos)- e otimo tutorial, na espera dos proximos ^^ local mw = g_ui.createWidget('MiniWindow') mw:move(0, 0) E quanto a aparecer no canto é só setar o parent -- root mw:setParent(modules.game_interface.getRootPanel()) -- right mw:setParent(modules.game_interface.getRightPanel()) --left mw:setParent(modules.game_interface.getLeftPanel()) --etc
-
O zelda não é tão diferente do tibia, só precisaria mais é de alguns outfits, e uma coisa ou outra de mapa. Quanto a sistemas e mapa, ai sim daria um bom trabalho, e necessitaria do conhecimento do jogo em si, para seguir a historia do game. Eu também nunca vi um desses pra download, mas seria sem duvida um bom projeto, aos que gostam de rpg, zelda é um otimo jogo.
-
getCreaturesInRetangleArea(pos_init, pos_final)
tópico respondeu ao dalvorsn de dalvorsn em Mods, funções e outros
testei com numa area 30x30 no meu notebook que é ruim, deu 188ms +/- eu fui ler a função getSpectators no distro, e notei que ela usa o mesmo principio da minha, acabou que a minha ficou mais lenta por lua ser mais lenta a iteração não é tão grande porque voce tem como acessar quantos things tem em cada tile, tornando desnecessário o loop em 255 stacks Acho que nem compensa fazer isso, é melhor mesmo usar o getSpectators Mas uma possivel função que poderia ser feita desse modo ai é um "get_all_things_in_area" de qualquer maneira vou deixar a função do jeito que está, pode ajudar alguém como exemplo de uso de alguma função e etc. -
getCreaturesInRetangleArea(pos_init, pos_final)
um tópico no fórum postou dalvorsn Mods, funções e outros
Autor: Dalvo Servidor Testado: TFS 0.4 Observações: • Nome auto-explicativo; • Fiz essa função por achar o getSpectators muito pesado, pois salva muitos uids e também apos ler uma duvida. • preguiça de formatar o topico direito, outra hora quem sabe. getCreaturesInRetangleArea(pos_init, pos_final) zWqJYcXT [/pastebin] -
doPlayerSetSkillLevel(cid, skillid, value)
tópico respondeu ao Tony Araujo de dalvorsn em Linguagens de Programação
Qual parte do código faz a atualização do sql? E alias, pra que fazer isso tudo? não seria mais fácil um doPlayerSave(cid) ? function doPlayerSetSkillLevel(cid, skill_id, level) if not isPlayer(cid) then return false end local skill_tries = getPlayerRequiredSkillTries(cid, skill, level) doPlayerAddSkillTry(cid, skill_id, skill_tries) doPlayerSave(cid) return true end -
Eu particularmente não gostei do que a tua função faz, achei um pouco non-sense se me permite dizer, mas usando apenas a ideia, eu faria assim: function doPushCreature(cid, target, times, limitPush) if not (isCreature(cid) and isCreature(target)) then return false end local toPos = getCreatureLookPosition(target) if isWalkable(toPos) then doTeleportThing(target, toPos) doSendMagicEffect(toPos, 34) if limitPush > times then addEvent(doPushCreature, times * 50, cid, target, times + 1, limitPush) end end return true end
-
nossa vei, nao usa tabela assim pra velocidade nao, faz um formula que é bem melhor, isso ai vai ficar muito limitado
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.