Tudo que xWhiteWolf postou
-
(Resolvido)Monstros/Players Attack
só precisa da statschange que nem o orochi disse.
-
Script Refine
tem que resolver agora cara, se não funcionar me manda o print doque aparece, seja o erro no console ou a mensagem que aparece pro player local vocations = {11, 16, 21} local ids_bloqueados = {2160, 5706, 7893, 7892, 7894, 7895, 7896, 7897, 7898, 7899, 7901, 7902, 2640, 6132, 2195, 9932, 9933, 11350, 11297, 3982, 8857, 8855, 8856, 7438, 8858, 8854, 2456, 7366, 5907, 3965, 7378, 2389, 7367, 7368, 2425, 9932} local controle = { {level = 0, quantOre = 1, chance = 48}, {level = 1, quantOre = 2, chance = 33}, {level = 2, quantOre = 3, chance = 28}, {level = 3, quantOre = 4, chance = 27}, {level = 4, quantOre = 5, chance = 24}, {level = 5, quantOre = 6, chance = 20}, {level = 6, quantOre = 7, chance = 10}, {level = 7, quantOre = 8, chance = 8}, {level = 8, quantOre = 9, chance = 5}, {level = 9, quantOre = 10, chance = 2} } function getItemLevel(uid) if uid > 0 then return getItemAttribute(uid, "lvl") or 0 end return false end function doItemAddLevel(uid, count) if uid > 0 and tonumber(count) > 0 then return doItemSetAttribute(uid, "lvl", getItemLevel(uid) + count) end return false end function onUse(cid, item, fromPosition, itemEx, toPosition) if not isInArray(vocations, getPlayerVocation(cid)) then doPlayerSendCancel(cid, "Apenas blacksmiths podem refinar.") return false end if isInArray(ids_bloqueados, itemEx.itemid) then doPlayerSendCancel(cid, "Este item nao pode ser refinado.") return false end if getItemInfo(itemEx.itemid).attack > 0 or getItemInfo(itemEx.itemid).defense > 0 or getItemInfo(itemEx.itemid).armor > 0 then for _, upgrade in pairs(controle) do local atk = getItemAttribute(itemEx.uid, "attack") or getItemInfo(itemEx.itemid).attack local def = getItemAttribute(itemEx.uid, "defense") or getItemInfo(itemEx.itemid).defense local arm = getItemAttribute(itemEx.uid, "armor") or getItemInfo(itemEx.itemid).armor local chance = math.random(1, 100) if getItemLevel(itemEx.uid) == upgrade.level then if doPlayerRemoveItem(cid, 5880, upgrade.quantOre) then doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS) if chance <= upgrade.chance then if getItemLevel(itemEx.uid) == 0 then doItemSetAttribute(itemEx.uid, "description", "Esse item foi refinado por " ..getCreatureName(cid)) end doItemAddLevel(itemEx.uid, 1) doItemSetAttribute(itemEx.uid, "name", getItemNameById(itemEx.itemid).. " + " ..getItemLevel(itemEx.uid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce refinou com sucesso!") if atk > 0 then doItemSetAttribute(itemEx.uid, "attack", atk + 1) return true elseif arm > 0 then doItemSetAttribute(itemEx.uid, "armor", arm + 1) return true elseif def > 0 then doItemSetAttribute(itemEx.uid, "defense", def + 1) return true end else doTransformItem(itemEx.uid, 2256) doItemSetAttribute(itemEx.uid, 'name', "metal trash") doItemSetAttribute(itemEx.uid, 'attack', 0) doItemSetAttribute(itemEx.uid, 'armor', 0) doItemSetAttribute(itemEx.uid, 'defense', 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce falhou.") return true end else doPlayerSendCancel(cid, "Voce nao tem iron ores o suficiente. Voce precisa de "..upgrade.quantOre.." iron ores.") end end end else doPlayerSendCancel(cid, "Esse item nao pode ser refinado.") end return true end
-
Dano por Atributo / Party exp
O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de Scripts" Para: "OTServ → Suporte OTServ → Suporte de Servidores Derivados"
-
Duvida básica sobre return
em lua que você usa no open tibia não faz muito sentido usar return (com excessão de algumas funções que precisam retornar algo ou nos callbacks) mas em java, por exemplo, tem de maneira bem definida o motivo de se usar return. da mesma forma que vc tem algumas spells feitas dessa maneira aqui: function onCastSpell(cid, var) return doCombat(cid, combat, var) end você poderia muito bem apenas fazer isso: function onCastSpell(cid, var) doCombat(cid, combat, var) return true end o motivo principal de você poder colocar return 1 ou return TRUE e dar certo é porque lua tem uma propriedade de considerar como true qualquer variável ou numero existente. se eu fizer local FALSE = "auhhueuhaiuehu" e por return FALSE ele vai verificar se FALSE existe e já que eu defini anteriormente que ele existe e tem o valor de uma string "auhhueuhaiuehu" então ele vai entender FALSE como true e executar tudo certinho. nil e false PODEM ser interpretados como false dependendo do caso mas eles são coisas diferentes visto que o primeiro representa um valor nulo e o segundo um valor inexistente ou falso. em java temos classes de funções que retornam coisas e elas são definidas da seguinte maneira: public ____ NomeDaFunção (parametros) { // oque a função faz aqui return (algo do mesmo tipo que ____) } ali no ____ eu posso colocar int, double, arrayList, array, string, boolean e outros tipos (int são numeros inteiros e double são números com virgula.) então uma função simples que retorna multiplicação de dois números seria assim: public int multiplication (int a, int b) { return a * b } e qnd eu usasse a = multiplication(5, 10) iria automaticamente setar a como sendo 50 pois é oque a função retorna. Analogamente temos funções que não retornam nada, elas só fazem alguma coisa sem retornar nada e por isso são do tipo "void" public void mandarMensagem() { print("Insira a mensagem aqui") } e se eu fizer a = mandarMensagem() vai setar a como sendo nil pois essa função não retorna nada. Entendeu + ou - agora?
-
[AJUDA] Attack Em Area 4 Elementos
vc quer que saia um efeito só na area e dê dano usando 4 elementos diferentes ou que saia 4 efeitos de area e 1 dano só? Quais serão os tipos de combat que vc quer que use e os efeitos? Qual a versão do servidor? Quer que tenha algum intervalo entre os danos ou pode ser tudo de uma vez só?
-
Nenhuma magia heala
usa esse daqui e vê se funfa: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 16, 16, 26, 36) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
- (Resolvido)Spell Kuchiyose no Jutsu
-
talkaction !status
em talkactions\scripts: function onSay(cid, words, param) local level = getPlayerLevel(cid) local vocation = getPlayerVocationName(cid) local health, maxhealth = getCreatureHealth(cid), getCreatureMaxHealth(cid) local mana, maxmana = getCreatureMana(cid), getCreatureMaxMana(cid) local fist, club, sword, axe = getPlayerSkillLevel(cid, 0), getPlayerSkillLevel(cid, 1), getPlayerSkillLevel(cid, 2), getPlayerSkillLevel(cid, 3) local distance, shield, fishing, magic = getPlayerSkillLevel(cid, 4), getPlayerSkillLevel(cid, 5), getPlayerSkillLevel(cid, 6), getPlayerMagLevel(cid) local function getResets(cid) resets = getPlayerStorageValue(cid, 2310) if resets < 0 then resets = 0 end return resets end local cap = getPlayerFreeCap(cid) local text = "Vocation: "..vocation.."\nLevel: ".. level .."\nHP: ".. health .."/".. maxhealth .."\nMP: ".. mana .."/".. maxmana .."\nReset(s): "..getResets(cid).."\nCapacity: ".. cap .."\n\nMagic Level: ".. magic .."\n\nFist: ".. fist .."\nClub: ".. club .."\nSword: ".. sword .."\nAxe: ".. axe .."\nDistance: ".. distance .."\nShield: ".. shield .."\nFishing: ".. fishing .."" doShowTextDialog(cid, 5808, text) return true end no xml: <talkaction log="yes" words="!status" event="script" value="status.lua"/> Da próxima vez use procurar antes pois eu já havia feito esse sistema inclusive com suporte pra dodge e critical.
-
(Resolvido)Editar portal pelo item.xml
não, isso vc põe no script da spell embaixo de function onCastSpell, ele vai criar um teleport com essas posições. e no caso seria assim: doCreateTeleport(1387, {x = 1150, y = 848, z = 7} , getCreaturePosition(cid))
-
Matheus QQ vc fez ?
Augusto, psé, por muito pouco AUHHEUA pior q eu tinha banido ele a um tempo atrás sem querer, nem deviam ter desbanido.. ele é gente fina mas é foda essas histórias de ficar roubando os caras e nukando server.
-
(Resolvido)MagicWall - Bugada
remove essa linha do items.xml: no id 1497 <attribute key="field" value="block"/>
-
(Resolvido)MagicWall - Bugada
calma cara, vc confundiu tudo uhauehuahue <rune name="Magic Wall" id="2293" charges="4" blocktype="all" maglv="9" exhaustion="1" enabled="1" allowfaruse="1" script="magic wall.lua"></rune> o id ali tá 2293 então vc tem que pegar as informações desse item no items.xml, e vai em spells/scripts e procura esse magic wall.lua e cola o conteúdo dele aqui.
-
(Resolvido)MagicWall - Bugada
^Seria se não fosse uma ocorrência exclusiva de quando tem um firefield no chão, acho que dá algum bug na source de reconhecer o decaytime qnd tem outro item durável no chão anteriormente.
-
(Resolvido)MagicWall - Bugada
cola como está no item.xml e vai em spells.xml e actions.xml e dá ctrl + f no id da magic wall e procura os scripts (caso haja) e cola aqui
-
(Resolvido)MagicWall - Bugada
isso daí é alguma doença na sua source ahuehua verifica no seu itens.xml se a magic wall tá com duration e se for o caso o jeito será alterar a script da magic wall pra checar se tem firefield no chão e se tiver cancelar o uso dela.
-
Lib 000-Const
Boa cara, mandou bem.. tava pensando em fazer algo do tipo porque toda vez perguntam coisas que se encontram na lib constant e eu só falo: vai olhar na sua lib ahuuhehua espero q dê continuidade pois adorei a formatação que você colocou e as imagens de fato ajudaram muito na sua excelente explicação. Toma meu REP merecidíssimo.
-
Matheus QQ vc fez ?
a imagem do meio não tinha carregado, eu interpretei o seguinte: Na real já tinha camisa da 1:16
-
Uma dúvida rápida sobre Spells
só se o pessoal do tibia tomar vergonha na cara e fazer com que as informações de marcações sejam vinculadas todas no próprio servidor.. isso vai aumentar a memória utilizada no server e pode lagar. Do jeito que tá não tem como porque as informações de marcações são restritas ao cliente, tanto que se eu desinstalar o tibia e instalar dnv some.
-
(Resolvido)Upgrade Wand, (Upgrade System By Mock)
^com algumas simples modificações na source vc faz isso e ter mais level que o do Mock não indica ser mais avançado haha se fizer mais avançado doque ja é te juro que estraga...
-
Matheus QQ vc fez ?
entendemo tudo
-
Uma dúvida rápida sobre Spells
a de deletar marcações acho pouquíssimo provável, elas são vinculadas à posições do mini map só que não de maneira aproximada ao passo que não tem um sistema de como dizer onde a marcação realmente está e se realmente há uma marcação ali pra ser removida, tal como um meio de checar as marcações visto que todas estão vinculadas unicamente ao tibia do usuário.
-
Uma dúvida rápida sobre Spells
na source do NTO tem isso, algumas spells a outfit vai mudando rapido a fim de criar um efeito de movimento e o nome some completamente.. é um bom lugar pra começar.
-
Uma dúvida rápida sobre Spells
não, só fica invisível pros outros, vc se ve igualzinho o god qnd tá invisivel... pra ficar invisível até pra vc seria necessário fazer aquilo que eu falei do outfit :/ @Dieguiin XP, não. Se quiser fazer desse jeito tem que setar area e adicionar a condition em area igual a glacier robe congelando (tá no meu perfil)
-
Uma dúvida rápida sobre Spells
antigamente nas versões que eu mexia era só editando cliente e colocando uma sprite toda rosa (no jogo rosa fica invisível) e setar o outfit e usar doPlayerHideHealth(cid, true) mas atualmente existe uma condition que faz isso (amém!) http://www.tibiaking.com/forum/topic/36564-anel-de-sauron/
-
Sistema Wanted
ninguém matará WhitUof... hahahaha qual a versão do server?