Tudo que Storm postou
-
Problema para criar OT
È mais fácil criar um client próprio e evitar esse erro do Ip changer , já tentou utilizar outros programas que mudam o IP ?
-
Teleportar boss com 80% de vida
Sobre os monstros , eles seriam somente um ou seria monstros aleatórios de uma tabela ?
-
[PEDIDO] MAGIA
O ùnico jeito de identificar se o player usou o item é através da storage cara.
-
Reward Level [Montaria, Level e Addons]
creature:registerEvent("RewardLevel")
-
Reward Level [Montaria, Level e Addons]
Você adicionou no login.lua ?
- Anti Mage Bomb (ACCMANAGER)
-
(Resolvido)[PEDIDO] Spell regeneração
function repeatEff(cid, eff, tempo, health) local pos = {x = getCreaturePosition(cid).x + 0, y = getCreaturePosition(cid).y + 0, z = getCreaturePosition(cid).z} if not isCreature(cid) or tempo == 0 then return end doSendMagicEffect(pos, eff) doCreatureAddHealth(cid, health) addEvent(repeatEff, 1000, cid, eff, tempo-1) end function onCastSpell(cid, var) local eff = 7 -- Efeito local tempo = 30 -- em segundos local health = 200 -- Quanto ganhará de vida em aproximadamente alguns segundos quebrados if isPlayer(cid) then doCreatureSetNoMove(cid, true) repeatEff(cid, eff, tempo, health) addEvent(doCreatureSetNoMove, tempo * 1000, cid, false) return true end return true end
-
[PEDIDO] MAGIA
Após o function onCastSpell(cid, var) Adicione : local storage = 15234 -- Coloque aqui a storage que o player ganhou ao completar a quest if getPlayerStorageValue(cid, storage) == -1 then doPlayerSendTextMessage(cid, 27, "Você precisa concluir a quest para usar a magia") doSendMagicEffect(getCreaturePosition(cid), 4) return true end
-
(AJUDA REVERTER SCRIPT)
Usa essa <event type="death" name="Boss" event="script" value="Peterson/doomboss.lua"/>
-
(AJUDA REVERTER SCRIPT)
Você errou na configuração na XML , posta ai pra mim ver como ficou
-
(AJUDA REVERTER SCRIPT)
Não.
-
(AJUDA REVERTER SCRIPT)
Creaturescripts , basta substituir a que você postou aqui.
-
[Pedido] NPC Task System
Interessante , mas no caso seria apenas um tipo de monstro para matar ou o player escolheria qual daqueles matar ?
-
(AJUDA REVERTER SCRIPT)
local a = { ["Rabbit"] = {[1] = {2150, 3}, -- [MONSTERNAME] = {[1] = {ITEM ID, COUNT}} // Você pode criar quantas quiser e deve separalas por virgula , observe meu exemplo. [2] = {2160, 4}, [3] = {2155, 10}, } ------------------------------ } function onDeath(cid, corpse, deathList) local b = a[getCreatureName(cid)] local killer = deathList[1] if not isMonster(cid) or not isPlayer(killer) then return true end if b then for _, v in ipairs(b) do doPlayerAddItem(killer, v[1], v[2] or 1) end doBroadcastMessage("O player [".. getCreatureName(killer) .."] matou o boss [".. getCreatureName(cid) .."]", 27) return true end end Na XML do monstro, adicione : <script> <event name="Boss"/> </script>
-
TALKACTION CM
local blocked = {2150, 2155, 2180} -- ID dos itens não permitidos local group = 4 -- GROUP ID não permitido a usar o comando e criar os itens da tabela acima // 4 por exemplo , isso significa que nenhum GROUP que for igual a quatro ou menor que quatro seria permitido a criar os itens da tabela function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") local ret = RETURNVALUE_NOERROR local pos = getCreaturePosition(cid) local id = tonumber(t[1]) if(not id) then id = getItemIdByName(t[1], false) if(not id) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end end if isInArray(blocked, id) and getPlayerGroupId(cid) <= group then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce nao pode criar alguns itens especificos.") return true end local amount = 100 if(t[2]) then amount = t[2] end local item = doCreateItemEx(id, amount) if(t[3] and getBooleanFromString(t[3])) then if(t[4] and getBooleanFromString(t[4])) then pos = getCreatureLookPosition(cid) end ret = doTileAddItemEx(pos, item) else ret = doPlayerAddItemEx(cid, item, true) end if(ret ~= RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1]) return true end doDecayItem(item) if(not isPlayerGhost(cid)) then doSendMagicEffect(pos, CONST_ME_MAGIC_RED) end return true end Basta substituir sua script atual do /i por essa.
-
(Resolvido)Raid Boss por Quantidade de Monstro Mortos
@peterson18 Perdão , erro meu na script , agora vai : local t = { ["Rabbit"] = {1003, "Demon", 2, l = { [1] = {x = 92, y = 129, z = 7}, -- ["Nome do monstro"] = {Storage, NOME DO MONSTRO, QNT NECESSARIA PARA NASCER O BOSS, l = POSIÇÕES} [2] = {x = 93, y = 129, z = 7}, }} ------------------------------ } function onDeath(cid, corpse, deathList) local killer = deathList[1] if not isMonster(cid) or not isPlayer(killer) then return true end local a = t[getCreatureName(cid)] if a then if getGlobalStorageValue(a[1]) >= a[3] then doCreateMonster(a[2], a.l[math.random(#a.l)]) setGlobalStorageValue(a[1], 0) doBroadcastMessage("O monstro ".. a[2] .." nasceu!", math.random(10, 27)) else setGlobalStorageValue(a[1], getGlobalStorageValue(a[1]) + 1) end end return true end
-
(Resolvido)Raid Boss por Quantidade de Monstro Mortos
local t = { ["Rabbit"] = {1001, "[Boss]Rabbit", 100, l = {[1] = {x = 100, y = 100, z = 7}, -- ["Nome do monstro"] = {Storage, NOME DO MONSTRO, QNT NECESSARIA PARA NASCER O BOSS, l = POSIÇÕES} [2] = {x = 100, y = 200, z = 7}, } } } function onDeath(cid, corpse, deathList) local a = t[getCreatureName(cid)] local killer = deathList if not isMonster(cid) or not isPlayer(killer[1]) then return true end if a then local random = math.random(1, #a.l) if getGlobalStorageValue(a[1]) >= a[3] then doCreateMonster(a[2], random) setGlobalStorageValue(a[1], 0) doBroadcastMessage("O monstro ".. a[2] .." nasceu!", math.random(10, 27)) return true else setGlobalStorageValue(a[1], getGlobalStorageValue(a[1]) + 1) return true end return true end return true end È uma script para todos os monstros , registre na XML de cada monstro que estiver na tabela e registre no CreatureScripts.XML; bastante cuidado com essa tabela.
-
(Resolvido)Raid Boss por Quantidade de Monstro Mortos
@peterson18 Após matar uma quantidade de monstro o monstro nascerá no lugar onde o último monstro morreu ou nascerá em outro local ?
-
[Pedido] Script do jutsu Susano atack
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -60.2, 1, -60.2, 1) function onCastSpell(cid, var) local storage = 1004 local waittime = 4.0 -- Exaust local effect = 16 -- Efeito que vai sair no player que usa a spell local effect2 = 18 -- efeito que vai sair no player que vai receber dano local distance = 3 -- ShootEffect local position = {x = getThingPosition(getCreatureTarget(cid)).x - 3, y = getThingPosition(getCreatureTarget(cid)).y + 1, z = getThingPosition(getCreatureTarget(cid)).z} local position1 = {x = getThingPosition(getCreatureTarget(cid)).x, y = getThingPosition(getCreatureTarget(cid)).y, z = getThingPosition(getCreatureTarget(cid)).z} local position2 = {x = getCreaturePosition(cid).x , y = getCreaturePosition(cid).y, z = getCreaturePosition(cid).z} if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Você tem que espera " .. exhaustion.get(cid, storage) .. " segundos.") return false end doSendMagicEffect(position2, effect) addEvent(doSendMagicEffect, 750, position1, effect2) addEvent(doSendDistanceShoot, 500, position, getCreaturePosition(getCreatureTarget(cid)), distance) exhaustion.set(cid, storage, waittime) return doCombat(cid, combat, var) end
-
[DUVIDA] Red Skull
function onUse(cid, item, frompos, item2, topos) if getCreatureSkullType(cid) == SKULL_RED then doPlayerSendTextMessage(cid, 21, "Você não pode usar este item enquanto estiver RED SKULL") return false end local nplayer1pos = {x=160, y=54, z=7} if getPlayerMana(cid) >= 0 then doSendMagicEffect(nplayer1pos,65535) doPlayerAddMana(cid,0) doTeleportThing(cid,nplayer1pos) doSendMagicEffect(topos,65535) doPlayerSendTextMessage(cid,22,"") else doPlayerSendTextMessage(cid,22,"Você não tem mana.") return false end return true end
-
(Resolvido)Colocar Efeito na Spell
function onCastSpell(cid, var) local tempo = 5 local target = getCreatureTarget(cid) local position = getPlayerPosition(cid) doCreatureSetNoMove(target, true) setPlayerStorageValue(cid, 5421, os.time()+tempo) movePlayer(position, target, cid) local distance = 4 local effect = 56 addEvent(doSendMagicEffect, 150, getCreaturePosition(target), effect) doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(target), distance) return true end function movePlayer(position, target, cid) if isCreature(target) and isPlayer(cid) then local pos = getCreaturePosition(target) if getPlayerPosition(cid).x ~= position.x then pos = {x = getCreaturePosition(target).x+(getPlayerPosition(cid).x +(- 1 * position.x)), y = getCreaturePosition(target).y, z = getCreaturePosition(target).z} elseif getPlayerPosition(cid).y ~= position.y then pos = {x = getCreaturePosition(target).x, y = getCreaturePosition(target).y+(getPlayerPosition(cid).y +(- 1 * position.y)), z = getCreaturePosition(target).z} end if isWalkable(pos) then doTeleportThing(target, pos) end if (getPlayerStorageValue(cid, 5421) - os.time()) > 0 then addEvent(movePlayer, 100, getPlayerPosition(cid), target, cid) else doPlayerSendTextMessage(cid, 22, "Voce perdeu o controle.") doCreatureSetNoMove(target, false) end end end function isWalkable(pos, creature, pz, proj) -- nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end local creature = getTopCreature(pos) if creature.type > 0 then return false end if getTilePzInfo(pos) and not pz then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end
-
(Resolvido)Help Como usar mais Effect
òbvio
-
(Resolvido)Habilidade que Causa danos continuo
local condition = createConditionObject(CONDITION_POISON) -- FIRE, POISON, etc.. setConditionParam(condition, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition, 5, 3000, -45) -- vezes, intervalo, dano setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
-
Não ataca mesma classe
Sim , está certa.
-
Não ataca mesma classe
Utilize a script que você mesmo colocou aqui , mas deixando a minha script ativa também.