Histórico de Curtidas
-
Bruxa0 deu reputação a Caronte em [Pedido] Aumentar dano das trapsfunction onStepIn(cid, item, pos) if(item.itemid == 2579) then if(not isPlayer(cid)) then doTargetCombatHealth(0, cid, COMBAT_PHYSICALDAMAGE, -15, -30, CONST_ME_NONE) doTransformItem(item.uid, item.itemid - 1) end else if(isPlayer(cid)) then local c = math.random(2) if c == 1 then doCreatureAddHealth(cid, - (getCreatureMaxHealth(cid) * 0.9) ) doPlayerAddMana(cid, - (getPlayerMaxMana(cid) * 0.9) ) doTransformItem(item.uid, item.itemid + 1) end end end return true end function onStepOut(cid, item, pos) doTransformItem(item.uid, item.itemid - 1) return true end function onRemoveItem(item, tile, pos) local thingPos = getThingPos(item.uid) if(getDistanceBetween(thingPos, pos) > 0) then doTransformItem(item.uid, item.itemid - 1) doSendMagicEffect(thingPos, CONST_ME_POFF) end return true end Vai tirar sempre 90% da max mana e max vida, ou seja, vai matar na segunda, caso ele não tenha +90% de vida...
-
Bruxa0 deu reputação a luanluciano93 em [Pedido] Aumentar dano das trapsColoque o seu, e diga como quer ...
-
Bruxa0 deu reputação a Caronte em [Pedido] Aumentar dano das trapsfunction onStepIn(cid, item, pos) if(item.itemid == 2579) then if(not isPlayer(cid)) then doTargetCombatHealth(0, cid, COMBAT_PHYSICALDAMAGE, -15, -30, CONST_ME_NONE) doTransformItem(item.uid, item.itemid - 1) end else if(isPlayer(cid)) then local c = math.random(2) if c == 1 then doCreatureAddHealth(cid, - (getCreatureHealth(cid) * 0.9) ) doTransformItem(item.uid, item.itemid + 1) end end end return true end function onStepOut(cid, item, pos) doTransformItem(item.uid, item.itemid - 1) return true end function onRemoveItem(item, tile, pos) local thingPos = getThingPos(item.uid) if(getDistanceBetween(thingPos, pos) > 0) then doTransformItem(item.uid, item.itemid - 1) doSendMagicEffect(thingPos, CONST_ME_POFF) end return true end
-
Bruxa0 deu reputação a luanluciano93 em [Pedido] Aumentar dano das trapsnão sei como é nos outros TFSs, mas no 1.1 fica aqui: data/movements/scripts/trap.lua
local traps = { [1510] = {transformTo = 1511, damage = {-50, -100}}, [1513] = {damage = {-50, -100}}, [2579] = {transformTo = 2578, damage = {-15, -30}}, [4208] = {transformTo = 4209, damage = {-15, -30}, type = COMBAT_EARTHDAMAGE} } function onStepIn(creature, item, position, fromPosition) local trap = traps[item.itemid] if trap ~= nil then if creature:isMonster() then doTargetCombatHealth(0, creature, trap.type or COMBAT_PHYSICALDAMAGE, trap.damage[1], trap.damage[2], CONST_ME_NONE) end if trap.transformTo ~= nil then Item(item.uid):transform(trap.transformTo) end end return true end function onStepOut(creature, item, position, fromPosition) Item(item.uid):transform(item.itemid - 1) return true end function onRemoveItem(item, tile, position) local trap = Item(item.uid) local thingPos = trap:getPosition() if getDistanceBetween(thingPos, position) > 0 then trap:transform(item.itemid - 1) thingPos:sendMagicEffect(CONST_ME_POFF) end return true end -
Bruxa0 deu reputação a luanluciano93 em [Pedido] Aumentar dano das trapsO 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 → Scripting → Geral"
Para: "OTServ → Suporte OTServ → Suporte de Scripts"
-
Bruxa0 deu reputação a zipter98 em NPC UpgraderOi, vi a ideia desse NPC em um lugar por aí e resolvi fazer.
Consiste em um NPC que aprimora seu item (deve estar em uma das mãos - esquerda ou direita) a troco de um outro item (configurável).
A cada nível de aprimoramento, seu item recebe um valor configurável no ataque, defesa e/ou armadura.
Você pode configurar o nível de aprimoramento máximo, chance de falhar, valor adicional que o item receberá a cada aprimoração e, como já dito antes, o item que será cobrado pelo NPC.
Em data/npc, crie um arquivo com extensão .XML, nomeie-o Upgrader, e coloque o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Upgrader" script="upgradenpc.lua" walkinterval="3000" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="134" head="39" body="113" legs="38" feet="0" addons="3" corpse="2212"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|, voce gostaria de aprimorar o seu equipamento?"/> </parameters> </npc> Em data/npc/scripts, crie um arquivo com extensão .lua, nomeie-o upgradenpc.lua, e coloque o seguinte conteúdo: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local config = { items = {12343, 10}, --Respectivamente, ID do item que o NPC irá cobrar e quantidade. maxBoost = 10, --Nível máximo do equipamento. failChance = 20, --Em porcentagem. upgradeValue = 1, --Valor adicional que o item receberá a cada aprimoração. } if msgcontains(msg:lower(), "yes") then for slot = 5, 6 do local item = getPlayerSlotItem(cid, slot) if item.uid > 0 then if getItemAttack(item) > 0 or getItemDefense(item) > 0 or getItemArmor(item) > 0 then if doPlayerRemoveItem(cid, config.items[1], config.items[2]) then local newUpgrade = (getItemAttribute(item.uid, "upgrade") or 0) + 1 if newUpgrade <= config.maxBoost then if math.random(1, 100) > config.failChance then doItemSetAttribute(item.uid, "name", getItemInfo(item.itemid).name.." [+"..newUpgrade.."]") if getItemAttack(item) > 0 then setItemAttack(item, getItemAttack(item) + config.upgradeValue) end if getItemDefense(item) > 0 then setItemDefense(item, getItemDefense(item) + config.upgradeValue) end if getItemArmor(item) > 0 then setItemArmor(item, getItemArmor(item) + config.upgradeValue) end doItemSetAttribute(item.uid, "upgrade", newUpgrade) selfSay("Seu equipamento foi aprimorado com sucesso.", cid) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) else selfSay("Aah, parece que a aprimoração falhou! Mais sorte na próxima vez.", cid) end return true else return selfSay("Seu equipamento já alcançou o nível máximo.", cid) end else return selfSay("Você não tem "..config._item[2].."x "..getItemNameById(config._item[1])..(config._item[2] > 1 and "s" or "")..".", cid) end end end end selfSay("Parece que você não tem um item para aprimorar.", cid) elseif msgcontains(msg:lower(), "no") then selfSay("Tudo bem, então.") end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Versão testada: 8.54 Bem, é só isso, até mais. -
Bruxa0 deu reputação a Qwizer em Porta Ou Tile Que so Passa se tiver x Item e outrosem actions/script crie um arquivo porta.lua e coloque:
depois va em actions.xml e adicione:
agora no seu mapa editor coloque o actions id 55555 na porta que quiser , teste e seja feliz.
RUNA DE UTITO TEMPO
Va em spells/script/support e crio utitotempo.lua e coloque isso:
em spells.xml procure por support runes e add la
<rune name="Utito Tempo Runes" id="2269" allowfaruse="1" charges="1" lvl="8" maglv="0" exhaustion="2000" needtarget="1" blocktype="solid" event="script" value="support/utitotempo.lua"> em id="2269" coloque o id da runa que queira usar. AOL INFINITO E so vc ir no items.xml procurar um amulet e por isso: <attribute key="preventDrop" value="1"/> salve e pronto. -
Bruxa0 deu reputação a textoy em closedtopic(solved)#
-
Bruxa0 deu reputação a zipter98 em [Talkaction] Avançar de levellocal levels = {717217, 903637, 1034406} --Adicione aqui os levels que participarão do script. function onSay(cid, words) if isInArray(levels, getPlayerLevel(cid)) then db.executeQuery("UPDATE players SET level = "..(getPlayerLevel(cid) + 1)..", experience = 10000 WHERE id = "..getPlayerGUID(cid)) doRemoveCreature(cid) end return true end
-
Bruxa0 deu reputação a zipter98 em Texto em teleports (8.6)Se não se importa, fiz minha versão do código (configuração mais fácil):
local config = { --["text"] = {{position}, effect, color}, ["Batata"] = {{x = 500, y = 500, z = 7}, 11, 140}, ["Cenoura"] = {{x = 497, y = 503, z = 7}, 13, 123}, } function onThink() for text, info in pairs(config) do doSendAnimatedText(info[1], text, info[3]) doSendMagicEffect(info[1], info[2]) end return true end -
Bruxa0 deu reputação a Caronte em Texto em teleports (8.6)function onThink(cid, interval, lastExecution) doSendAnimatedText({x = 500, y = 500, z = 7}, "Batata", 140) doSendMagicEffect({x = 500, y = 500, z = 7}, 11) doSendAnimatedText({x = 497, y = 503, z = 7}, "Cenoura", 130) doSendMagicEffect({x = 500, y = 500, z = 7}, 13) return true end Fazendo rápido, dá nisso /\ , teste...
Ou
function onThink(cid, interval, lastExecution) local config = { --[cor] = {pos}, [140] = {x = 500, y = 500, z = 7}, [123] = {x = 497, y = 503, z = 7}, } for cor, pos in pairs(config) do doSendAnimatedText(pos, "Batata", cor) -- Configurar texto aqui doSendMagicEffect(pos, 11) doSendAnimatedText(pos, "Cenoura", cor) doSendMagicEffect(pos, 13) end return true end