Ir para conteúdo

dalvorsn

Conde
  • Total de itens

    750
  • Registro em

  • Última visita

  • Dias Ganhos

    8

Tudo que dalvorsn postou

  1. eu não li o codigo porque é extenso e sem identação, mas fazer tv por lua é completamente inviável o melhor jeito é por c++, e é até de certa forma simples se usar o otclient pelo otclient só precisa setar o followcamera no que está filmando, porem vai perceber que ao tomar certa distancia da posição real do player vai ficar escuro, isso é porque ele não recebe o spectators daquela area, é só mudar isso na source também e pronto, fica perfeito. sem gambiarras de teleportar como é feito no pda e outros
  2. Tu não testou né? Ta subtraindo numero de table dirs - 1 e mesmo que fosse #dirs - 1, ainda ficaria errado, porque executaria todos os steps ao mesmo tempo alem disso tem outro problema, a função doMoveCreature não respeita as flags, ela passa o player por cima de coisas que nao poderia passar, isso pode causar varios bug abuses
  3. em global event tem como fazer isso por em uma hora determinada, se nao me engano é a callback onTime algo assim, da uma pesquisada ai
  4. dalvorsn

    Ajuda script de SD

    Boaa funcionou! Mas com dois poréns. Primeiro ela ta healando, não tirando dano, imagino que seja só tirar o sinal ali, sei lá. Segundo ela não funciona sem ser com a hotkey... Pode dar mais essa maozinha? Quanto ao fato de estar healando é fácil, é só substituir isso: doTargetCombatHealth(cid, target, attackType, minDmg, maxDmg, hitEffect) Por isso: doTargetCombatHealth(cid, target, attackType, -minDmg, -maxDmg, hitEffect) Basicamente mudar o sinal, agora quanto o outro problema eu não sei cara, eu teria que pesquisar primeiro porque é estranho só a hotkey ativar a spell sendo que se não me engano ambas enviam pacotes de 'use'
  5. dalvorsn

    Ajuda script de SD

    Agora vai ne possível. 76F9hmND[/pastebin]
  6. dalvorsn

    Ajuda script de SD

    Esqueci que retornava um thing, enfim ajustado. vxyzKZEd[/pastebin] foi editado, tava com um errinho
  7. dalvorsn

    Ajuda script de SD

    E agora? Obrigado pela ajuda. Foi uma variavel que declarei com um nome e usei com outro, falta de atenção. 2buZXaKQ[/pastebin]
  8. dalvorsn

    Ajuda script de SD

    UHqeuew3[/pastebin]
  9. local monsters = { "Ogre", "demon", } local id_portal = 12593 local chance = 500 -- 50% function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.itemid == id_portal then doRemoveItem(item.uid, 1) if math.random(1000) <= chance then local monster = doCreateMonster(monsters[math.random(#monster)],toPosition) doSendMagicEffect(toPosition, 1) if isCreature(monster) then local summon = getCreatureSummons(cid)[1] doSendMagicEffect(summon and getCreaturePosition(summon) or fromPosition, 173) doChallengeCreature(summon and summon or cid, monster) end end end return true end Ajustado.
  10. nem reparei, ty
  11. A chance ta muito baixa pow, 2%, eu refiz o script , esse negócio tava muito feio local monsters = { "Ogre", "demon", } local id_portal = 12593 local chance = 500 -- 50% function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.itemid == id_portal then if math.random(1000) <= chance then local monster = doCreateMonster(monsters[math.random(#monster)],toPosition) doSendMagicEffect(toPosition, 1) doRemoveItem(item.uid) if isCreature(monster) then local summon = getCreatureSummons(cid)[1] doSendMagicEffect(summon and getCreaturePosition(summon) or fromPosition, 173) doChallengeCreature(summon and summon or cid, monster) end end end return true end
  12. caralho vei, que script horroroso =s, enfim, ta ai: local monstro = { "Ogre", "demon", } local chance = 20 --2% chance function onUse(cid, item, fromPosition, itemEx, toPosition) local function back(item, pos) doCreateItem(item.itemid, 1, pos) end if itemEx.itemid == 12593 then -- id do portao local item = getTileItemById(toPosition, 12593) -- id do portao addEvent(back, choose(5, 10, 15) * 60 * 1000, itemEx, toPosition) doSendMagicEffect(toPosition, 1) if math.random(1000) <= chance then local this = monstro[math.random(#monstro)] local pokes = doCreateMonster(this,toPosition) if isCreature(pokes) then local summon = getCreatureSummons(cid)[1] if isCreature(summon) then doSendMagicEffect(getThingPos(summon), 173) doChallengeCreature(summon, pokes) else doSendMagicEffect(getThingPos(cid), 173) doChallengeCreature(cid, pokes) end end end end return true end
  13. funciona,funciona o problema é que n funciona em em locais e quando re-utiliza uma varivel para as locais daria pra cria uma varivel antes e iguala a local a varivel eu tinha feito poucos teste,mas fora isso n vi nenhum bug,vo da mais umas testas outro problema e quando usa algo do tipo {{}},tbm fica sem mesmo usando newindex na nova tabela fiz inumeros testes aqui e nenhum teve êxito total quando declarar a variavel como global da pra setar newindex, e nas de dentro é só verificar se é table e setar e nas tables das tables dentro, isso não é o problema, o problema é quando ou a tabela é declarada como local, ou é simplesmente usada, sem previamente declarar: local tab = {} print(tab * {}) print({} - {}) nenhum desses casos chama o metametodo newindex
  14. dalvorsn

    AddEvent(AddItem)

    eu disse pra dar start no decay logo apos dar transform, foi isso que tu fez? analise ai #edit e uid não existe, voce tem que pegar oo itemEx.uid do item como pegou no transform
  15. dalvorsn

    AddEvent(AddItem)

    é só dar start no decay logo apos o transform doDecayItem(uid)
  16. dalvorsn

    AddEvent(AddItem)

    Usa o decayTo do items.xml, dai tu só da o transform pro item que vai decair, o uid do opentibia de items é apagado quando o script encerra, só dá para pegar ele pela posição, mas isso ta longe de ser bom, porque pode ter mais de um item na posição, ou pior, items iguais; Tu faz items: - item do arbusto com frutas, esse não tem decay e será o alvo da sua action. - item do arbusto com as frutas colhidas, esse terá o decayTo para o item anterior, com duration 20 Assim é mais seguro e mais fácil, aconselho que faça dessa forma.
  17. sim, a gfind virou gmatch, é que no debugger que eu usei(scite), existia gfind e apresentava melhor desempenho aparentemente
  18. print no fim do script isso: print(string.format("Memory: %f, Clock: %f", collectgarbage("count"), os.clock())) Realmente passou despercebido que pode entrar no separador caracteres mágicos, muito bem lembrado ;D
  19. eu pensei num metodo pra isso,mas é meio pog e falho, da pra atribui uma metatable a _G e usa newindex pra checa o type e atribui uma mettable,mas n funciona em variaveis locais e se reafirma a varivel ela fica sem metatable. Até entendi seu ponto de vista, acho que poderia até dar certo, mas o trabalho que daria fora a quantidade de bugs poderia tornar inviavel. Assim que puder tentarei fazer isso e lhe digo se é viável ou não.
  20. ty e tá add la flor
  21. Fazer pokemon passivo por script terrível cara, pelas sources é bem mais confiável e estável. E na boa, o servidor já costomizado, se eu fosse você usaria o otclient, pois é open source e programado boa parte dele em lua. Mas não adianta nada se você não tiver um scripter ou um programador bom na sua equipe, esse negócio de ficar pedindo ajuda toda hora que precisar de algo não vai dar certo, ou você aprende ou arruma alguém que faça.
  22. Sim, number, só que o procedimento é um pouco diferente. debug.setmetatable(0, { __index = function(self, key) print(self, key) end, __len = function(self) print(self) end, __call = function(self, ...) print(self, ...) end --etc }) local _ = #(1000) local _ = (1000)("arg1", "arg2") local _ = (1000)[500] Dependendo da sua criatividade, da pra fazer algo legal para os numeros :> Bollean, table, function não consegui fazer, userdata e thread não tentei. #Edit Corrigindo, consegui agora usar com function, mas por algum motivo que desconheço, o metodo __call não altera. debug.setmetatable(function()end, { __index = function(self, key) print(self, key) end, __len = function(self) print(self) end, __call = function(self, ...) print(self, ...) end --etc }) function new() print "vish" end local _ = new[1] local _ = #new local _ = new() Não, porque o tipo table tem metatable independente, cada tabela pode possuir sua própria metatable.
  23. Mudar administração não vai trazer mais membros, o que traz membros é conteúdo, procurem por pessoas motivadas, com tempo para dedicar e com conhecimento que possam disseminar formando novos colaboradores. Com novos colaboradores surgindo, cada vez mais se multiplicará o conteúdo, mais membros surgirão e assim por diante.
  24. Biblioteca Auxiliar String aNs7gidD[/pastebin] Exemplos de Uso • Metamétodo __index: Input: local str = "xtibia123" print(str[1], str[2], str[3], str[4], str[5], str[6]) local table_find = str["x(.+)"] print(table_find.init, table_find.final, table_find.ret) Output: >lua -e "io.stdout:setvbuf 'no'" "teste.lua" x t i b i a 1 9 tibia123 • Metamétodo _unm: Input: local str = "xtibia" print(-str) Output: >lua -e "io.stdout:setvbuf 'no'" "teste.lua" aibitx • Metamétodo __call: Input: local var = "xtibia" print(var(1), var(1,-1), var(1,3)) Output: >lua -e "io.stdout:setvbuf 'no'" "teste.lua" x xtibia xti • Metamétodo __add: Input: print("x" + "tibia") Output: >lua -e "io.stdout:setvbuf 'no'" "teste.lua" xtibia • Metamétodo __sub: Input: print("xtibia" - "tibia") Output: >lua -e "io.stdout:setvbuf 'no'" "teste.lua" x • Metamétodo __mul: Input: print("xtibia" * 5) Output: >lua -e "io.stdout:setvbuf 'no'" "teste.lua" xtibiaxtibiaxtibiaxtibiaxtibia
  25. Eu fui reduzindo a string, pode ser que tenha sido um dos motivos do gasto a mais de memoria, farei depois com gfind e usando apenas a posição, e verei como fica o gasto de memoria, porque provavelmente sub gasta menos memoria que gsub e como o loop executa varias vezes dependendo da string, uma diferença pequena dentro dele pode se tornar uma grande diferença xD -- #edit com gfind fico bem mais rápida, segue o código: string.explode = function (str, sep) local ret = {} local str = str:gsub("^%s+", ""):gsub(sep.."%s+", sep):gsub("%s+$","") local last = str:match(sep.."(.-)$") collectgarbage() for result in string.gfind(str, "(.-)".. sep) do table.insert(ret, result) end table.insert(ret, last) return ret end
  • Quem Está Navegando   0 membros estão online

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