
Tudo que xWhiteWolf postou
-
[actions] Bau BUGADO PARA KINIGHTS!
velho.. o script tá certo, não tá dando nenhum erro no console?? local club, sword, axe = getPlayerSkillLevel(cid, 1), getPlayerSkillLevel(cid, 2), getPlayerSkillLevel(cid, 3) if club > sword and club >= axe then skillid = 10 elseif sword >= axe and sword >= club then skillid = 15 elseif axe > sword and axe > club then skillid = 30 return skillid end if skillid == 15 then quest = doPlayerAddItem(cid,115,1) -- sword elseif skillid == 10 then quest = doPlayerAddItem(cid,2421,1) -- club elseif skillid == 30 then quest = doPlayerAddItem(cid,2431,1) -- axe return quest end ele só dá axe de axe for sua maior skill; a id que tá dando é a 2431 se for axe e se for club vc ganha 2421... checa essas id's no seu server
-
(Resolvido){Pedido} Lança-Chamas
vai em actions e cria um arquivo qualquer e coloca isso nele: local arr = { {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0} } local area = createCombatArea(arr) local tempo = 1 local storage = 19481 function onUse(cid, item, frompos, item2, topos) if getPlayerSlotItem(cid, 5).itemid == item.itemid or getPlayerSlotItem(cid, 6).itemid == item.itemid then if not exhaustion.get(cid, storage) then doAreaCombatHealth(cid, 1, getThingPos(cid), area, -(getPlayerLevel(cid) * 2 / 3), -(getPlayerLevel(cid) * 4 / 3), 15) exhaustion.set(cid, storage, tempo) else doPlayerSendCancel(cid, "You are exhausted.") end end return true end depois vai em actions.xml e coloca: <action itemid="7460" script="flamethrower.lua"/>
-
(Resolvido)Efeito apenas para God
vai em creaturescripts\scripts\login.lua e adiciona isso daqui: if getPlayerGroupId(cid) >= 3 and isPlayer(cid) then local tempo = 0.3 --- de quanto em quanto segundos ele solta o efeito function loop (cid) local pos = getCreaturePosition(cid) local effects = math.random (28,30) local effectPositions = { {x = pos.x, y = pos.y - 1, z = pos.z}, {x = pos.x, y = pos.y + 1, z = pos.z}, {x = pos.x - 1, y = pos.y, z = pos.z}, {x = pos.x + 1, y = pos.y, z = pos.z}, {x = pos.x - 1, y = pos.y + 1, z = pos.z}, {x = pos.x - 1, y = pos.y - 1, z = pos.z}, {x = pos.x + 1, y = pos.y - 1, z = pos.z}, {x = pos.x + 1, y = pos.y + 1, z = pos.z} } doSendMagicEffect(effectPositions[math.random(1, #effectPositions)], effects) addEvent(function() if isCreature(cid) then loop(cid) end end, 1000 * tempo) return true end loop(cid) end de preferencia antes do ultimo return true.. assim que logar ja vai estar os efeitos
-
[Pedido] scripter pvp
http://lmgtfy.com/?q=arena+script+otserv
-
[actions] Bau BUGADO PARA KINIGHTS!
function onUse (cid, item, frompos, item2, topos) playervoc = getPlayerVocation(cid) if playervoc == 1 or playervoc == 5 or playervoc == 9 then -- Especifica se o player é sorcerer ou master sorcerer if item.uid == 3002 then -- Unique ID colocado no mapa queststatus = getPlayerStorageValue(cid, 3002) -- Storage Value if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid, 22, "Você recebeu seu item.") --Mensagem da Quest local quest = doPlayerAddItem(cid,7424,1) -- Item ID no caso SpellBook of mind control doItemSetAttribute(quest,"description","Esse item foi obtido por "..getPlayerName(cid)..".") setPlayerStorageValue(cid, 3002, 1) --Storage Value else doPlayerSendTextMessage(cid,22,"Desculpe, você já pegou seu premio.") -- Mensagem Caso Player já tenha feito a Quest end else return 0 end return 1 end if playervoc == 2 or playervoc == 6 or playervoc == 10 then -- Especifica se o player é druid ou elder druid if item.uid == 3002 then -- Unique ID colocado no mapa queststatus = getPlayerStorageValue(cid, 3002) -- Storage Value if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid, 22, "Você recebeu seu item.") --Mensagem da Quest local quest = doPlayerAddItem(cid,7424,1) -- Item ID no caso SpellBook of dark mysteries doItemSetAttribute(quest,"description","Esse item foi obtido por "..getPlayerName(cid)..".") setPlayerStorageValue(cid, 3002, 1) --Storage Value else doPlayerSendTextMessage(cid,22,"Desculpe, você já pegou seu premio.") -- Mensagem Caso Player já tenha feito a Quest end else return 0 end return 1 end if playervoc == 3 or playervoc == 7 or playervoc == 11 then -- Especifica se o player é pally ou royal pally if item.uid == 3002 then -- Unique ID colocado no mapa queststatus = getPlayerStorageValue(cid, 3002) -- Storage Value if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid, 22, "Você recebeu seus items.") --Mensagem da Quest local quest1 = doPlayerAddItem(cid,7438,1) -- Item ID no caso 100 assassin stars doItemSetAttribute(quest1,"description","Esse item foi obtido por "..getPlayerName(cid)..".") local quest2 = doPlayerAddItem(cid,2352,1) doItemSetAttribute(quest2,"description","Esse item foi obtido por "..getPlayerName(cid)..".") setPlayerStorageValue(cid, 3002, 1) --Storage Value else doPlayerSendTextMessage(cid,22,"Desculpe, você já pegou seus premios.") -- Mensagem Caso Player já tenha feito a Quest end else return 0 end return 1 end if playervoc == 4 or playervoc == 8 or playervoc == 12 then --Especifica se o player é kina ou elite kina if item.uid == 3002 then -- Unique ID colocado no mapa queststatus = getPlayerStorageValue(cid, 3002) -- Storage Value if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid, 22, "Você recebeu seu item.") --Mensagem da Quest local club, sword, axe = getPlayerSkillLevel(cid, 1), getPlayerSkillLevel(cid, 2), getPlayerSkillLevel(cid, 3) if club > sword and club >= axe then skillid = 10 elseif sword >= axe and sword >= club then skillid = 15 elseif axe > sword and axe > club then skillid = 30 return skillid end if skillid == 15 then quest = doPlayerAddItem(cid,115,1) -- sword elseif skillid == 10 then quest = doPlayerAddItem(cid,2421,1) -- club elseif skillid == 30 then quest = doPlayerAddItem(cid,2431,1) -- axe return quest end doItemSetAttribute(quest,"description","Refinado(Atk): +26.\nEsse item foi obtido por "..getPlayerName(cid)..".") setPlayerStorageValue(cid, 3002, 1) --Storage Value else doPlayerSendTextMessage(cid,22,"Desculpe, você já pegou seu premio.") -- Mensagem Caso Player já tenha feito a Quest end else return 0 end return 1 end end Arruma os ID's dos items aqui: cid, ID DO ITEM, quantidade que ganha.
-
Colocar pra não usar comando quando tiver evento
<!-- Guild Outfit Command --> <config name="guild-outfit-config"><![CDATA[ exhaust = 30 -- in seconds storage = 3005 -- storage value used to save exhaustion ]]></config> <talkaction words="!go;/go" event="script"><![CDATA[ domodlib('guild-outfit-config') local config = { exhaustion = exhaust, storage = storage } function onSay(cid, words, param, channel) if (getPlayerStorageValue(cid, 140125) ~= -1) or (getPlayerStorageValue(cid, 140124) ~= -1) then doPlayerSendCancel(cid, "Você não pode usar invisible durante o evento!") doSendMagicEffect(getThingPos(cid), 2) return true end if(exhaustion.check(cid, config.storage)) then doPlayerSendCancel(cid, "You can change outfit only 1 time per " .. config.exhaustion .. " seconds.") return true end local playerGuild = getPlayerGuildId(cid) if(not playerGuild or playerGuild == 0) then doPlayerSendCancel(cid, "Sorry, you're not in a guild.") return true end if(getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendCancel(cid, "You have to be Leader of your guild to change outfits!") return true end local outfit, members = getCreatureOutfit(cid), 0 local message = "*Guild* Your outfit has been changed by leader. (" .. getCreatureName(cid) .. ")" for _, tid in ipairs(getPlayersOnline()) do if(getPlayerGuildId(tid) == playerGuild and cid ~= tid) then local newOutfit = outfit if(not canPlayerWearOutfit(tid, outfit.lookType, outfit.lookAddons)) then local tmpOutfit = getCreatureOutfit(tid) newOutfit.lookAddons = 0--tmpOutfit.lookAddons if(not canPlayerWearOutfit(tid, outfit.lookType, 0)) then newOutfit.lookType = tmpOutfit.lookType end end doSendMagicEffect(getCreaturePosition(tid), 66) doCreatureChangeOutfit(tid, newOutfit) doPlayerSendTextMessage(tid, MESSAGE_INFO_DESCR, message) members = members + 1 end end exhaustion.set(cid, config.storage, config.exhaustion) doPlayerSendCancel(cid, "Guild members outfit has been changed. (Total: " .. members .. ")") return true end ]]></talkaction>
-
Potion de Ataque
não sei se seria possível fazer isso... oque dá pra fazer é o seguinte: é uma potion que checa sua vocação e te dá uma condition própria dependendo do seu ml. Exemplo: Knight ml 5 ganha + 10 em todas as skills, ml 7 ganha + 15 em todas as skills, ml 10 ganha + 25 em todas as skills; Sorcerer: ml 30 ganha + 2 ml; ml 45 ganha + 10 de ml; ml 70 ganha +30 de ml druid mesma coisa paladin ganha skill de distance da mesma forma que o knight.
-
(Resolvido){Pedido} Lança-Chamas
tenta me explicar oque a magia faz sem tentar me ensinar como fazer ela... em outras palavras, me diz oque vc quer que a magia do shield faça. A area é feita de uma vez só ou é por event?
-
[actions] Bau BUGADO PARA KINIGHTS!
function onUse (cid, item, frompos, item2, topos) playervoc = getPlayerVocation(cid) if playervoc == 1 or playervoc == 5 or playervoc == 9 then -- Especifica se o player é sorcerer ou master sorcerer if item.uid == 3002 then -- Unique ID colocado no mapa queststatus = getPlayerStorageValue(cid, 3002) -- Storage Value if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid, 22, "Você recebeu seu item.") --Mensagem da Quest local quest = doPlayerAddItem(cid,7424,1) -- Item ID no caso SpellBook of mind control doItemSetAttribute(quest,"description","Esse item foi obtido por "..getPlayerName(cid)..".") setPlayerStorageValue(cid, 3002, 1) --Storage Value else doPlayerSendTextMessage(cid,22,"Desculpe, você já pegou seu premio.") -- Mensagem Caso Player já tenha feito a Quest end else return 0 end return 1 end if playervoc == 2 or playervoc == 6 or playervoc == 10 then -- Especifica se o player é druid ou elder druid if item.uid == 3002 then -- Unique ID colocado no mapa queststatus = getPlayerStorageValue(cid, 3002) -- Storage Value if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid, 22, "Você recebeu seu item.") --Mensagem da Quest local quest = doPlayerAddItem(cid,7424,1) -- Item ID no caso SpellBook of dark mysteries doItemSetAttribute(quest,"description","Esse item foi obtido por "..getPlayerName(cid)..".") setPlayerStorageValue(cid, 3002, 1) --Storage Value else doPlayerSendTextMessage(cid,22,"Desculpe, você já pegou seu premio.") -- Mensagem Caso Player já tenha feito a Quest end else return 0 end return 1 end if playervoc == 3 or playervoc == 7 or playervoc == 11 then -- Especifica se o player é pally ou royal pally if item.uid == 3002 then -- Unique ID colocado no mapa queststatus = getPlayerStorageValue(cid, 3002) -- Storage Value if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid, 22, "Você recebeu seus items.") --Mensagem da Quest local quest1 = doPlayerAddItem(cid,7438,1) -- Item ID no caso 100 assassin stars doItemSetAttribute(quest1,"description","Esse item foi obtido por "..getPlayerName(cid)..".") local quest2 = doPlayerAddItem(cid,2352,1) doItemSetAttribute(quest2,"description","Esse item foi obtido por "..getPlayerName(cid)..".") setPlayerStorageValue(cid, 3002, 1) --Storage Value else doPlayerSendTextMessage(cid,22,"Desculpe, você já pegou seus premios.") -- Mensagem Caso Player já tenha feito a Quest end else return 0 end return 1 end if playervoc == 4 or playervoc == 8 or playervoc == 12 then --Especifica se o player é kina ou elite kina if item.uid == 3002 then -- Unique ID colocado no mapa queststatus = getPlayerStorageValue(cid, 3002) -- Storage Value if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid, 22, "Você recebeu seu item.") --Mensagem da Quest local club, sword, axe = getPlayerSkillLevel(cid, 1), getPlayerSkillLevel(cid, 2), getPlayerSkillLevel(cid, 3) if club > sword and club >= axe then skillid = 10 elseif sword >= axe and sword >= club then skillid = 15 elseif axe > sword and axe > club then skillid = 30 return skillid end if skillid == 15 then quest = doPlayerAddItem(cid,115,1) -- sowrd elseif skillid == 10 then quest = doPlayerAddItem(cid,2421,1) -- axe elseif skillid == 30 then quest = doPlayerAddItem(cid,2431,1) -- club return quest end doItemSetAttribute(quest,"description","Refinado(Atk): +26.\nEsse item foi obtido por "..getPlayerName(cid)..".") setPlayerStorageValue(cid, 3002, 1) --Storage Value else doPlayerSendTextMessage(cid,22,"Desculpe, você já pegou seu premio.") -- Mensagem Caso Player já tenha feito a Quest end else return 0 end return 1 end end
-
Como eu tiro essa mensagem quando loga no account manager.
vai em config.lua e procura algo parecido com isso: motd = "BEM VINDOS! Aproveitem o Whisper OT!"
-
[Pedido] scripter pvp
além de criar a arena, salvar e reabrir o server novamente vc precisa fazer o script pra que quando ele esteja na arena não perca exp nem loot e nem possa trocar de outfit.. isso vc acha aqui no fórum mesmo em vários scripts parecidos
-
(Resolvido)Efeito apenas para God
faltou só dizer a velocidade dos efeitos
- Volatile Spiderling
-
(Resolvido)[pedido Spells] auto-explosao
clica em melhor resposta pra ficar como resolvido e ajudar outras pessoas
-
(Pedido) NPC Attribute Refiner
item1 é o id do item que vc clonou e que qnd vc for colocar vai dar aquele atributo... o slot é o slot em que deve ser equipado pra dar o atributo.. segue essa tabela aqui: CONST_SLOT_FIRST = 1 CONST_SLOT_HEAD = CONST_SLOT_FIRST CONST_SLOT_NECKLACE = 2 CONST_SLOT_BACKPACK = 3 CONST_SLOT_ARMOR = 4 CONST_SLOT_RIGHT = 5 CONST_SLOT_LEFT = 6 CONST_SLOT_LEGS = 7 CONST_SLOT_FEET = 8 CONST_SLOT_RING = 9 CONST_SLOT_AMMO = 10
-
(Resolvido){Pedido} Arma de fogo
local bullets = 6529 local ammo = 2299 local glock, g_qtdd = 2406, 14 local tglock, tg_qtdd = 2407, 16 local sglock, sg_qtdd = 2408, 18 local spglock, spg_qtdd = 2431, 20 local tempo = 3 -- em segundos são os id's e tempo é o tempo de recarga. é um sistema de várias armas de fogo diferentes
-
(Resolvido){Pedido} Arma de fogo
eu tenho esse script aqui que o @Adriano SwaTT fez a mil anos atrás, vê se é oque tu tá procurando local bullets = 6529 local ammo = 2299 local glock, g_qtdd = 2406, 14 local tglock, tg_qtdd = 2407, 16 local sglock, sg_qtdd = 2408, 18 local spglock, spg_qtdd = 2431, 20 local tempo = 3 -- em segundos local condition_infight = createConditionObject(CONDITION_INFIGHT) setConditionParam(condition_infight, CONDITION_PARAM_TICKS, -1) function onUse(cid, item, frompos, itemEx, topos) local n = getPlayerSlotItem(cid, 10).type local m = getPlayerSlotItem(cid, 6).itemid local b = getPlayerItemCount(cid, ammo) if n >= 1 then doPlayerSendCancel(cid, "Deixe o slot de municao vazio para recarregar sua arma.") end if itemEx.itemid == glock and n == 0 and m == glock and b >= g_qtdd then doAddCondition(cid, condition_infight) doPlayerSendTextMessage(cid, 22, "Recarregando...") doPlayerRemoveItem(cid, ammo, g_qtdd) addEvent(reload_glock, tempo * 1000, cid) elseif itemEx.itemid == glock and m == glock and n == 0 and b < g_qtdd then doAddCondition(cid, condition_infight) doPlayerSendTextMessage(cid, 22, "Recarregando...") doPlayerRemoveItem(cid, ammo, b) addEvent(reload_glock2, tempo * 1000, cid) elseif itemEx.itemid == sglock and n == 0 and m == sglock and b >= sg_qtdd then doAddCondition(cid, condition_infight) doPlayerSendTextMessage(cid, 22, "Recarregando...") doPlayerRemoveItem(cid, ammo, sg_qtdd) addEvent(reload_sglock, tempo * 1000, cid) elseif itemEx.itemid == spglock and n == 0 and m == spglock and b >= spg_qtdd then doAddCondition(cid, condition_infight) doPlayerSendTextMessage(cid, 22, "Recarregando...") doPlayerRemoveItem(cid, ammo, spg_qtdd) addEvent(reload_spglock, tempo * 1000, cid) end return true end function reload_glock(cid) local n2 = getPlayerSlotItem(cid, 10).itemid local m = getPlayerSlotItem(cid, 6).itemid if n2 == 0 and m == glock then doPlayerAddItem(cid, bullets, g_qtdd) doPlayerSendTextMessage(cid, 21, "Glock recarregada com sucesso.") doRemoveCondition(cid, CONDITION_INFIGHT) else doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Glock empunhada para recarregar.") addEvent(reload_glock, 4000, cid) end return true end function reload_glock2(cid) local n2 = getPlayerSlotItem(cid, 10).itemid local m = getPlayerSlotItem(cid, 6).itemid if n2 == 0 and m == glock then doPlayerAddItem(cid, bullets, b) doPlayerSendTextMessage(cid, 21, "Glock recarregada com sucesso.") doRemoveCondition(cid, CONDITION_INFIGHT) else doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Glock empunhada para recarregar.") addEvent(reload_glock2, 4000, cid) end return true end function reload_tglock(cid) local n2 = getPlayerSlotItem(cid, 10).itemid local m = getPlayerSlotItem(cid, 6).itemid if n2 == 0 and m == tglock then doPlayerAddItem(cid, bullets, tg_qtdd) doPlayerSendTextMessage(cid, 21, "Tactical Glock recarregada com sucesso.") doRemoveCondition(cid, CONDITION_INFIGHT) else doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Tactical Glock empunhada para recarregar.") addEvent(reload_tglock, 4000, cid) end return true end function reload_sglock(cid) local n2 = getPlayerSlotItem(cid, 10).itemid local m = getPlayerSlotItem(cid, 6).itemid if n2 == 0 and m == sglock then doPlayerAddItem(cid, bullets, sg_qtdd) doPlayerSendTextMessage(cid, 21, "Super Glock recarregada com sucesso.") doRemoveCondition(cid, CONDITION_INFIGHT) else doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Super Glock empunhada para recarregar.") addEvent(reload_sglock, 4000, cid) end return true end function reload_spglock(cid) local n2 = getPlayerSlotItem(cid, 10).itemid local m = getPlayerSlotItem(cid, 6).itemid if n2 == 0 and m == spglock then doPlayerAddItem(cid, bullets, spg_qtdd) doPlayerSendTextMessage(cid, 21, "Special Glock recarregada com sucesso.") doRemoveCondition(cid, CONDITION_INFIGHT) else doPlayerSendTextMessage(cid, 21, "Deixe o slot de municao vazio e sua Special Glock empunhada para recarregar.") addEvent(reload_spglock, 4000, cid) end return true end
-
(Pedido) NPC Attribute Refiner
é muito simples.. vc vai fazer a action da pedra que quando vc dá use with na arma ela transforma na arma clonada (que vai ser igual com excessão do nome [MANA] ou [LIFE] ou [PARALYZE]) daí vc faz no movements dar a condição ao equipar (no caso do PARALYZE) vai ter que ser por weapons.xml então não vai dar pra equipar a pedra de paralyze em shields ou armaduras; aqui tem um exemplo de uma armadura que tá adicionando 50 de cada atributo.. mas lembre-se que dá pra editar essa condition pro que você quiser. -- NW SET SYSTEM local config = { slot1 = 4, item1 = 8889, } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, 50) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, 50) function onEquip(cid, item, slot) if getPlayerSlotItem(cid, config.slot1).itemid == config.item1 then doAddCondition(cid, condition) doSendMagicEffect(getCreaturePos(cid), 10) end 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 <movevent type="Equip" itemid="8889" slot="armor" event="script" value="set.lua"/> <movevent type="DeEquip" itemid="8889" slot="armor" event="script" value="set.lua"/>
-
(Resolvido)[PEDIDO] Recompensa Ao Pega Level
é só ir em creaturescripts.xml e procurar algum script que seja onAdvanced e colocar isso nele: local level = 100 if skill == 8 and newlevel == level then local pointsForPlayer = 5 -- quantos pontos vai ganhar db.executeQuery("UPDATE `accounts` SET `premium_points` = `premium_points`+" .. pointsForPlayer .. " WHERE `id` IN (" .. table.concat(accounts, ',') .. ");") doSendMagicEffect(getThingPos(cid), CONST_ME_HOLYAREA)
-
(Pedido) NPC Attribute Refiner
se for uma pedra que vc coloca ela no item e esse item se transforma em outro item que esteja programado pra dar a condition de recuperar mana/vida ou paralisar então é possível... mas pra isso vc vai ter que ir no item otb e clonar os items que vc pretende utilizar e colocar as versões clonadas no items.xml e no movements.xml pra eles darem certas conditions. Se você souber clonar os items eu te ensino a fazer o resto
-
Volatile Spiderling
Fala galera do TK, hoje eu venho mais uma vez trazer uma das magias mais incríveis que eu já vi até hoje (sério). A magia original foi feita em outro fórum mas para a versão 10.1... como eu vi que ninguém conseguiu adaptar pra versões inferiores eu decidi criar a minha própria volatile spiderling. Confesso que no começo eu tive muita dificuldade em achar as funções certas mas depois de tentar ajudar o membro @234567890z no suporte eu tive uma epifania. Sem mais delongas eu vou explicar oque o script faz e em seguida ensinar a colocá-lo no seu server. • Explicação: A magia foi feita baseada na personagem Elise do jogo League of Legends: você faz uma cria que anda até os oponentes e se explodem causando dano em area e deixando eles envenenados. Aqui tem um gif da magia funcionando obs: note que esse gif não fui eu que fiz mas ele demonstra exatamente como a magia funciona. • Instalação: Pra instalá-lo no seu servidor vai ser um pouco complicado pois ele requer diversas modificações... antes de mais nada, coloque essas linhas no seu spells.xml: <instant name="Volatile Spiderling" words="utevo res tera" lvl="40" mana="20" prem="1" selftarget="1" exhaustion="2000" groups="1,2000" icon="88" needlearn="0" event="script" value="especiais/spiderling.lua"> <vocation id="3"/> <vocation id="7"/> </instant> <instant name="poison explosion" words="poison explosion" lvl="0" mana="0" prem="0" aggressive="1" exhaustion="3000" needlearn="1" event="script" value="especiais/newspider.lua"> </instant> Agora você vai ter que criar os dois arquivos na pasta spells\scripts\especiais. Em newspider.lua coloque o seguinte: agora em spiderling.lua coloque o seguinte: Agora feito isso vc vai precisar criar o monstro que usará essa spell.. vá em monster\monsters.xml e adicione a seguinte linha: <monster name="Clone Spider" file="arachnids/newspider.xml"/> agora crie o arquivo data\monsters\arachnids\newspider.xml e adicione o seguinte nele: local poisonpowder = createConditionObject(CONDITION_POISON) setConditionParam(poisonpowder, CONDITION_PARAM_DELAYED, 1) local damageTable = { {4, -3}, {9, -2}, {20, -1} } for i = 1, #damageTable do local t = damageTable[i] addDamageCondition(poisonpowder, t[1], 4000, t[2]) end local arr = { {0, 1, 0}, {1, 3, 1}, {0, 1, 0} } local area = createCombatArea(arr) function onPrepareDeath(cid, deathList) if isMonster(cid) and getCreatureName(cid):lower() == 'clone spider' then doAreaCombatHealth(cid, 1, getThingPos(cid), area, -1, -30, 20) doAreaCombatCondition(cid, getThingPos(cid), area, poisonpowder, 255) doSendMagicEffect(getThingPos(cid), 16) end return true end Agora eu vou ensinar vocês a editarem... não tem muito oque mudar, apenas se vc quiser alterar os danos da spell vá em newspider.lua e será possível editar os danos do poison e da explosão: local damageTable = { {4, -3}, {9, -2}, {20, -1} } aqui você muda quantos danos serão e quanto cada um tirará.. no caso serão 4 hits de -3, depois 9 hits de -2 e por fim 20 hits de -1 até o poison parar. Lembrando que esses danos saem de 4 em 4 segundos. Se você quiser que eles sejam mais rápidos é só editar aqui: addDamageCondition(poisonpowder, t[1], 4000, t[2]) (4000 significa 4 segundos). Feito isso será possível editar também a area e o dano da explosão respectivamente em: Area: Dano: doAreaCombatHealth(cid, 1, getThingPos(cid), area, -1, -30, 20) Em vermelho temos o dano mínimo, analogamente, em azul, temos o dano máximo. Em verde é possível editar o efeito da explosão Só lembrando que as edições que forem feitas no newspider.lua devem ser feitas no spider.lua para que a magia tenha graça.. se não o dano da explosão/poison ao explodir será diferente caso ela morrer antes. Em spiderling.lua vc pode editar a quantidade máxima de crias que um player pode ter... o normal está setado para 2 mas vc pode sentir-se livre pra colocar quantas queira. local maxsummon = 2 (Só lembre-se que ao explodir uma aranha pode acertar outra então não é muito bom deixar um numero maior que 3); Se você for daqueles bem chatinhos com a magia você ainda pode editar algumas coisas importantes tais como: O efeito que sai quando ela explode por morte ou pela spell: doSendMagicEffect(getThingPos(cid), 16) O tempo em que ela executa a spell, a chance da spell sair naquele tempo e quantos sqm de distancia a criatura alvo deve estar pra aranha se explodir: <attack name="poison explosion" interval="1000" range="1" chance="50"/> interval = de quantos em quantos segundos ela executa a spell range = distancia em sqm que o alvo deve estar pra que ela execute a spell chance = chance de executar a spell a cada interval (nesse caso a cada 1 segundo tem 50% de chance dela soltar a magia) Você ainda pode editar aqui em vermelho: o tempo que leva pra criatura executar a magia.. Por padrão eu deixei 2 segundos, ou seja... eu sumono a aranha, ela vai até o alvo e a cada segundo q ela passa grudada no alvo (1 sqm de distancia) ela tem 50% de chance de ativar a spell e ficar parada no lugar durante 2 segundos até explodir. Se você quiser que ela leve menos tempo pra explodir é só baixar o 2000 (em milisegundos).. Se você quiser aumentar o dano e deixar ela parada por mais tempo até explodir pode editar a vontade aumentando os 2000. • Bom, isso é tudo que dava pra eu explicar... é óbvio que dá pra editar muito mais coisa mas se você não é scripter e não tem muita idéia de como editar eu dei uma ensinada básica doque você está autorizado a mexer. Espero que vocês curtam a spell e deem aquele REP+ pra fortalecer kkkk Eu não pretendia liberar essa spell visto que ela é extremamente complexa e nenhum servidor tem ela, mas, acho que seria muito babaca da minha parte ficar guardando um script tão bonito hahaha. Qualquer erro ou dúvida postem nos comentários que eu tento ajudar. ah, mais uma coisa: Os créditos são 90% meus visto que eu fiz praticamente tudo.. 9% é pro cara que fez a magia original (se vcs derem uma procurada vcs vão ver que não tem quase nada a ver com a minha mas os créditos dele são por ele ter me dado a idéia) e 1% pro cara no suporte que me pediu ajuda numa spell do mesmo gênero e me fez correr atrás de uma forma de fazer essa magia pra versões inferiores a TFS 1.0
-
Hirashin Ni No Dan
basicamente oque vc tá me pedindo é pra eu fazer um summon ao invés de atacar ele exploda e tire dano em área... bom, eu ja vi um script que faz isso mas ele é só pra 10.1 pra cima então acho que o jeito seria fazer uma spell que só o monstro pudesse usar e que ela soltasse um dano em área e removesse toda a vida atual do monstro (fazendo ele morrer) Vou tentar fazer isso e posto aqui o resultado: EDIT: Consegui fazer... usei o script como base pra fazer essa spell aqui http://www.tibiaking.com/forum/topic/36307-volatile-spiderling/ dá uma olhada e segue os passos que com pouquíssimas alterações fica idêntico ao que vc quer
-
(Resolvido)[pedido Spells] auto-explosao
local cooldown = 24*60*60 function onCastSpell(cid, var) if os.time() - getPlayerStorageValue(cid, 19329) >= cooldown then doPlayerSetStorageValue(cid, 19329, os.time()) local target = getCreatureTarget(cid) doCreatureAddHealth(cid, -getCreatureHealth(cid)) doCreatureAddHealth(target, -getCreatureHealth(target)) doCreatureSay(cid, "SUICIDE!!", 20) doSendMagicEffect(getPlayerPosition (cid), 0) doSendMagicEffect(getPlayerPosition (target), 0) else doPlayerSendCancel(cid, "Your skill is in cooldown, you can use it again after "..math.floor((cooldown - (os.time() - getPlayerStorageValue(cid, 19329)))/60).." minute(s).") end return true end <instant name="Suicide" words="suicide" lvl="50" mana="20" prem="1" range="4" needtarget="1" blockwalls="1" exhaustion="2000" groups="1,2000" icon="88" needlearn="0" event="script" value="especiais/assistedsuicide.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant>
-
(Resolvido)Talkaction redutora de exp por tempo
eai cara, eu gostaria de um feedback... deu certo no seu servidor? gostou do sistema? eu levei um tempo pra fazer ele e gostaria de saber se te agradou
-
Bike System
velho, como assim??? vc já tem o script, oque vc quer que a gente faça???? Explica melhor cara... esse script não tá funcionando? tá dando erro? que versão vc tá usando?? vc testou o script do carinho aqui em cima e deu erro:? qual erro?