
Tudo que xWhiteWolf postou
-
[AJUDA] Vocations
o problema não tá aí não pelo que eu percebi.. deve ser algo com seu foods. Tenta comer todos os tipos de food do server e vê se alguma faz sua mana/vida subir
- Points system bug
- Elementos da wand
-
(Resolvido)ajuda mostro para healar
substitui isso: <defenses armor="1" defense="2"/> por isso: <defenses armor="1" defense="2"> <defense name="healing" interval="10000" chance="100" min="24000" max="24000"/> </defenses> aqui é a chance de ele recuperar 24000 de vida a cada 10 segundos.
-
[Pedido] Script de arma para Tibia
weapons.xml: <melee id="8927" level="120" unproperly="1" event="script" value="new2.lua"/> muda aqui o id do item que vai utilizar esse sistema e o level. Value é o nome do script. weapons\scripts\new2.lua: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 34) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local xCombat = createCombatObject() setCombatParam(xCombat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(xCombat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(xCombat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(xCombat, COMBAT_PARAM_EFFECT, 34) setCombatFormula(xCombat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local area = createCombatArea({ {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 3, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0} }) local area1 = createCombatArea({ {0, 0, 0}, {0, 3, 0}, {0, 0, 0} }) setCombatArea(xCombat, area) setCombatArea(combat, area1) local config = { storageativ = 76650, smallstoneid = 1294 } function onUseWeapon(cid, var) if getPlayerStorageValue(cid, config.storageativ) == 1 and doPlayerRemoveItem(cid, config.smallstoneid, 1) then retorn = doCombat(cid, xCombat, var) else retorn = doCombat(cid, combat, var) end return retorn end vc muda os efeitos aqui: setCombatParam(combat, COMBAT_PARAM_EFFECT, 34) a area qnd tá desativada e quanto tá ativada vc edita no script. e aqui você muda o storage que vai salvar se ela tá ativada ou desativada e tb que item será usado como munição: local config = { storageativ = 76650, smallstoneid = 1294 } Feito isso vá em actions.xml e adicione essa linha: <action itemid="8927" script="new2.lua"/> NOTE que o ID tem que ser o mesmo do weapons.xml para que funcione da maneira correta. Agora crie um arquivo chamado new2.lua em actions\scripts e adicione isso daqui dentro dele: function onUse(cid, item, frompos, item2, topos) local config = { storageativ = 76650, -- storage que será utilizado ammo = 1294 --- id do item que será a munição. } if getPlayerStorageValue(cid, config.storageativ) > 0 then setPlayerStorageValue(cid, config.storageativ, 0) doPlayerSendTextMessage(cid, 19, "You desactivated your weapon, you're no longer attacking in area!") elseif getPlayerStorageValue(cid, config.storageativ) <= 0 then setPlayerStorageValue(cid, config.storageativ, 1) doPlayerSendTextMessage(cid, 19, "You activated your weapon, now you'll attack in area as long as you have ammunition!") end return true end Nesse exemplo que eu coloquei vc ativa a club de id 8927 e ela vai ativar um ataque em área soltando o efeito 34 mas gastando 1 small stone a cada hit.
- [AJUDA] Script Talkaction Promotion
-
personagem mais forte com certo elemento.
@Eduardo, no caso seria assim: você usa um item (como se fosse uma alavanca que ficará dentro da cidade dos dobradores de fogo), daí você vira um dobrador de fogo e começa a hitar mais forte com o elemento fogo. É isso que ele quer mas acho q só dá pra inserir + dano em elementos utilizando itens.
-
personagem mais forte com certo elemento.
adorei a idéia mas acho que o único jeito seria dando equipamentos com percentFire :/ pra fazer assim do jeito que vc quer eu já não saberia mas espero que alguém aqui saiba e compartilhe!
- Limite de effects
- [Dúvida] Passar pelo player no mesmo SQM quando dentro da PZ
-
(Resolvido)[PEDIDO] Critical System
poderia sim
- Dois Tipo De Spell Que Teleporta
- Dois Tipo De Spell Que Teleporta
-
Dois Tipo De Spell Que Teleporta
1) itemport.lua: local config = { storage = 49607, tempo = 10, itemid = 6217 } local positions = {} function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) <= 0 then table.insert(positions, getThingPos(cid)) doPlayerSetStorageValue(cid, config.storage, #positions) doCreateItem(config.itemid, getThingPos(cid)) doSendMagicEffect(getThingPos(cid), 3) addEvent(function() if isCreature(cid) then doPlayerSendTextMessage(cid, 22, "Your item has expired.") doPlayerSetStorageValue(cid, config.storage, 0) table.remove(positions, getPlayerStorageValue(cid, config.storage)) end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doTeleportThing(cid, positions[getPlayerStorageValue(cid, config.storage)]) doSendMagicEffect(getThingPos(cid), 10) end return true end 2) playerport.lua local config = { storage = 49608, tempo = 10 } function onCastSpell(cid, var) if isPlayer(getCreatureTarget(cid)) then local name = getCreatureName(getCreatureTarget(cid)) if getPlayerStorageValue(cid, config.storage) <= 0 then doPlayerSetStorageValue(cid, config.storage, 1) doSendMagicEffect(getThingPos(cid), 65) doSendMagicEffect(getThingPos(getCreatureByName(name)), 65) addEvent(function() if isCreature(cid) then doPlayerSetStorageValue(cid, config.storage, 0) doTeleportThing(cid, getThingPos(getCreatureByName(name))) end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendCancel(cid, "You've already set your target.") end else doPlayerSendCancel (cid, "You can only use this spell on players.") end return true end e no spells.xml: <instant name="TK SUPORT" words="itemport" lvl="50" mana="100" prem="1" exhaustion="1000" needlearn="0" event="script" value="especiais/itemport.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> <instant name="TK SUPORT" words="playerport" lvl="50" mana="100" prem="1" range="7" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/playerport.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> agora vá em creaturescripts\scripts\login.lua e adicione essas linhas antes do ultimo return true if getPlayerStorageValue(cid, 49607) == -1 then setPlayerStorageValue(cid, 49607, 0) end if getPlayerStorageValue(cid, 49608) ~= 0 then setPlayerStorageValue(cid, 49608, 0) end
-
(Resolvido)script de item que teleporta
nao faz sentido o player mirar no lugar que quer ir porque a função onUse não é ativada a distância, logo o player teria que ir do lado do item para se teleportar (e nós dois sabemos que não é isso que vc quer) Fiz uma spell aqui que vc fala uma palavra e ela adiciona um item no chão, ao ser falada dnv vc se teleporta pra onde o item está: crie um arquivo em spells\scripts\especiais\itemport.lua local config = { storage = 49607, --- storage que será salvo o tempo e o lugar na table que a posição do player pertence tempo = 10, --- tempo que o player poderá utilizar aquele item para se teleportar (após esse tempo será necessário colocar outro item) itemid = 6217 --- id do item que será criado } local positions = {} function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) <= 0 then table.insert(positions, getThingPos(cid)) doPlayerSetStorageValue(cid, config.storage, #positions) doCreateItem(config.itemid, getThingPos(cid)) doSendMagicEffect(getThingPos(cid), 3) addEvent(function() if isCreature(cid) then doPlayerSetStorageValue(cid, config.storage, 0) table.remove(positions, getPlayerStorageValue(cid, config.storage)) end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doTeleportThing(cid, positions[getPlayerStorageValue(cid, config.storage)]) doSendMagicEffect(getThingPos(cid), 10) end return true end e em spells.xml é só adicionar uma linha qualquer (como essa por exemplo:) <instant name="TESTE TK" words="itemport" lvl="50" mana="100" prem="1" exhaustion="1000" needlearn="0" event="script" value="especiais/itemport.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant>
-
(Resolvido)[PEDIDO] Critical System
creaturescripts.xml <!-- CRITICAL SYSTEM --> <event type="statschange" name="critical" event="script" value="critical.lua"/> creaturescripts\scripts\login.lua --- CRITICAL SYSTEM ---- registerCreatureEvent(cid, "critical") if getPlayerStorageValue(cid, 48903) == -1 then setPlayerStorageValue(cid, 48903, 0) end creaturescripts\scripts\critical.lua: -----[[Critical System by Night Wolf]] local lvlcrit = 48903 local multiplier = 1.5 function onStatsChange(cid, attacker, type, combat, value) if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and isPlayer(attacker) and isCreature(cid) then if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then value = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -value, -value, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) return false end end return true end actions.xml: <action itemid="1294" script="criticalrock.lua"/> obs: muda o ID da pedra que vc for usar... aqui eu usei a small stone pra teste e em actions\scripts\criticalrock.lua: --- CRITICAL System by Night Wolf local config = { effectonuse = 14, -- efeito que sai levelscrit = 100, --- leveis que terão storagecrit = 48903 -- storage que será verificado } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then doRemoveItem(item.uid, 1) doSendMagicEffect(topos,config.effectonuse) doPlayerSendTextMessage(cid,22,"You've Leveled your Critical Skill to ["..(getPlayerStorageValue(cid, config.storagecrit)+1).."/100].") setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1) elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then doPlayerSendTextMessage(cid,22,"You've already reached the MAX level of Critical Skill.\nCongratulations!!!!") return 0 end return 1 end OBS: Só funciona em ataques de players em players. Se vc ficar atacando monstro pra testar não vai dar certo (isso é porque o creaturescript só tá registrado no login.lua então o cid tem que necessariamente ser um player)
-
[PDA] Erro Porta com level
vai na lib/constant e deve ter umas tables lá tipo assim: doors = {[1209] = 1211, [1210] = 1211, [1212] = 1214, [1213] = 1214, [1219] = 1220, [1221] = 1222, [1231] = 1233, [1232] = 1233, [1234] = 1236, [1235] = 1236, [1237] = 1238, [1239] = 1240, [1249] = 1251, [1250] = 1251, [1252] = 1254, [1253] = 1254, [1539] = 1540, [1541] = 1542, [3535] = 3537, [3536] = 3537, [3538] = 3539, [3544] = 3546, [3545] = 3546, [3547] = 3548, [4913] = 4915, [4914] = 4915, [4916] = 4918, [4917] = 4918, [5082] = 5083, [5084] = 5085, [5098] = 5100, [5099] = 5100, [5101] = 5102, [5107] = 5109, [5108] = 5109, [5110] = 5111, [5116] = 5118, [5117] = 5118, [5119] = 5120, [5125] = 5127, [5126] = 5127, [5128] = 5129, [5134] = 5136, [5135] = 5136, [5137] = 5139, [5138] = 5139, [5140] = 5142, [5141] = 5142, [5143] = 5145, [5144] = 5145, [5278] = 5280, [5279] = 5280, [5281] = 5283, [5282] = 5283, [5284] = 5285, [5286] = 5287, [5515] = 5516, [5517] = 5518, [5732] = 5734, [5733] = 5734, [5735] = 5737, [5736] = 5737, [6192] = 6194, [6193] = 6194, [6195] = 6197, [6196] = 6197, [6198] = 6199, [6200] = 6201, [6249] = 6251, [6250] = 6251, [6252] = 6254, [6253] = 6254, [6255] = 6256, [6257] = 6258, [6795] = 6796, [6797] = 6798, [6799] = 6800, [6801] = 6802, [6891] = 6893, [6892] = 6893, [6894] = 6895, [6900] = 6902, [6901] = 6902, [6903] = 6904, [7033] = 7035, [7034] = 7035, [7036] = 7037, [7042] = 7044, [7043] = 7044, [7045] = 7046, [7054] = 7055, [7056] = 7057, [8541] = 8543, [8542] = 8543, [8544] = 8546, [8545] = 8546, [8547] = 8548, [8549] = 8550, [9165] = 9167, [9166] = 9167, [9168] = 9170, [9169] = 9170, [9171] = 9172, [9173] = 9174, [9267] = 9269, [9268] = 9269, [9270] = 9272, [9271] = 9272, [9273] = 9274, [9275] = 9276, [10276] = 10277, [10274] = 10275, [10268] = 10270, [10269] = 10270, [10271] = 10273, [10272] = 10273, [10471] = 10472, [10480] = 10481, [10477] = 10479, [10478] = 10479, [10468] = 10470, [10469] = 10470} closingDoors = {1224, 1226, 1228, 1230, 1242, 1244, 1246, 1248, 1256, 1258, 1260, 1262, 3541, 3543, 3550, 3552, 5104, 5106, 5113, 5115, 5122, 5124, 5131, 5133, 5289, 5291, 5293, 5295, 6203, 6205, 6207, 6209, 6260, 6262, 6264, 6266, 6897, 6899, 6906, 6908, 7039, 7041, 7048, 7050, 8552, 8554, 8556, 8558, 9176, 9178, 9180, 9182, 9278, 9280, 9282, 9284, 10279, 10281, 10283, 10285, 10474, 10476, 10483, 10485} verticalOpenDoors = {1211, 1220, 1224, 1228, 1233, 1238, 1242, 1246, 1251, 1256, 1260, 1540, 3546, 3548, 3550, 3552, 4915, 5083, 5109, 5111, 5113, 5115, 5127, 5129, 5131, 5133, 5142, 5145, 5283, 5285, 5289, 5293, 5516, 5737, 5749, 6194, 6199, 6203, 6207, 6251, 6256, 6260, 6264, 6798, 6802, 6902, 6904, 6906, 6908, 7044, 7046, 7048, 7050, 7055, 8543, 8548, 8552, 8556, 9167, 9172, 9269, 9274, 9278, 9282, 10270, 10275, 10279, 10283, 10479, 10481, 10483, 10485} horizontalOpenDoors = {1214, 1222, 1226, 1230, 1236, 1240, 1244, 1248, 1254, 1258, 1262, 1542, 3537, 3539, 3541, 3543, 4918, 5085, 5100, 5102, 5104, 5106, 5118, 5120, 5122, 5124, 5136, 5139, 5280, 5287, 5291, 5295, 5518, 5734, 5746, 6197, 6201, 6205, 6209, 6254, 6258, 6262, 6266, 6796, 6800, 6893, 6895, 6897, 6899, 7035, 7037, 7039, 7041, 7057, 8546, 8550, 8554, 8558, 9170, 9174, 9272, 9276, 9280, 9284, 10273, 10277, 10281, 10285, 10470, 10472, 10474, 10476} specialDoors = {1223, 1225, 1241, 1243, 1255, 1257, 3542, 3551, 5105, 5114, 5123, 5132, 5288, 5290, 5745, 5748, 6202, 6204, 6259, 6261, 6898, 6907, 7040, 7049, 8551, 8553, 9175, 9177, 9277, 9279, 10278, 10280, 10475, 10484} posta o seu e me fala que doors que tão dando erro, são todas ou só algumas especiais?
-
[AJUDA] Script Talkaction Promotion
vc ta chamando um item da table que ainda não existe. local verifica1 = getPlayerItemCount(cid, voc.item) a table tá ali embaixo \/ então é como se não existisse ainda. Deixa assim: --Made by llucas75-- local voc = { [1] = {vocatual = 1, vocnova = 5, preco = 2, item = 2160, nome = "0 k"}, [2] = {vocatual = 2, vocnova = 6, preco = 2, item = 2160, nome = "0 k"}, [3] = {vocatual = 3, vocnova = 7, preco = 2, item = 2160, nome = "0 k"}, [4] = {vocatual = 4, vocnova = 8, preco = 2, item = 2160, nome = "0 k"} } function onSay(cid, words, param, channel) local verifica = getPlayerVocation(cid) local verifica1 = getPlayerItemCount(cid, voc.item) local posplayer = getCreaturePosition(cid) local nome = getPlayerVocationName(cid) if verifica == voc.vocatual then if verifica1 >= voc.preco then doPlayerSetVocation(cid, verifica + 4) doPlayerSendTextMessage(cid,22, "Voce foi promovido para " ..voc.vocnova.. " .") doSendMagicEffect(posplayer, 13) doPlayerRemoveItem(cid, voc.item, voc.preco) else doPlayerSendTextMessage(cid,22, "Voce nao tem " ..voc.preco.. " " ..nome.. " para ser promovido para" ..voc.vocnova.. " .") return true end else doPlayerSendTextMessage(cid,22, "Voce ja possui todas as promotions.") return true end end
-
[AJUDA] Script Talkaction Promotion
funções que pegam algo do player não podem ficar fora do callback! local verifica = getPlayerVocation(cid) local verifica1 = getPlayerItemCount(cid, voc.item) local posplayer = getCreaturePosition(cid) local nome = getPlayerVocationName(cid) isso daqui tá sendo executado quando liga o server mas o cid é nulo já que tá sendo executado ao abrir o server.
-
(Resolvido)[PEDIDO] Item que da HP
q estranho, não era pra dar problema nenhum.. mesmo criando pelo god kkk
-
(Resolvido)[PEDIDO] Item que da HP
vc tá usando uma arma no caso, certo? me passa como vc adicionou a linha do movements.xml que acho q é nela que tá o problema edit: o problema do god crashar tb tem a ver com o tipo de slot que vc colocou em movements.. (se for arma e vc colocou slot = "hands" costuma dar merda)
-
(Resolvido)[PEDIDO] Critical System
nao vejo diferença desse pro dodge.. a unica coisa q muda é que o value em vez de ser multiplicado por 0,5 vai ser multiplicado por 2. E vc vai trocar cid por attacker :/ sejam mais criativos e ousados, tem tanta coisa melhor pra pedir...
-
(Resolvido)[PEDIDO] Item que da HP
ja sei como resolver seu problema! local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHEALTH, 50) function onEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Now that you're using this item you'll receive a special bonus...") doAddCondition(cid, condition) doSendMagicEffect(getCreaturePos(cid), 10) return true end function onDeEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer receiving the special bonus..") doRemoveCondition(cid, CONDITION_ATTRIBUTES) return true end só criar uma condition que adicione pontos de vida.. nesse caso aí vai adicionar 50 pontos de vida.. o -1 no tempo é pra garantir que esse buff seja eterno. Daí ao remover o item do slot ele vai remover a condition. Obs: isso é um movements
-
[duvida] O que essa function retorna
vai retornar o array de todos os possíveis drops do monstro e não oque ele dropou qnd foi morto. Oque dá pra fazer é a função onKill adicionar o item direto no player setItemName(doPlayerAddItem(cid, itemid, count/subtype), "Nome novo.") /\ nesse caso eu estou mudando o nome . Pra adicionar descrição é só fazer do mesmo jeito: doSetItemSpecialDescription(doPlayerAddItem(cid, itemid, count/subtype), "descrição nova")
- Sistema de Reset 100%