
Tudo que xWhiteWolf postou
-
[Pedido] Player atinge X kills recebe item
No caso seria uma OnKill que checa se o target é player, se for adiciona um certo storage no player (contando que vc não tem nenhum frag system), se o storage for == X então adiciona um item no player ;] fim auheuhuha
-
(Resolvido)[PEDIDO] SPELL KAMUI
mas daí daria pra prender players lá '-' leva eles e volta sem eles... como vc sugere que dê pra arrumar isso?
-
[Duvida] Como Colocar pra GOD Matar Player e mostrar Level no Default [55]
Pra mudar os gods vc tem que ir em data\XML\groups.xml e editar o grupo 6 (que é o god) <group id="6" name="God" flags="301808996032504" customFlags="67108863" access="5" depotLimit="5000" maxVips="500"/> tá vendo esse numero gigante flags e o customFlags? Esses números definem tudo que vc pode fazer e pra editar vc tem que usar uma calculadora de flags que vc acha facilmente por aí (http://www.tibiaking.com/forum/topic/9640-flags-calculator-html)
-
Script pra não combar spell dos monstros
é normal stackar os ataques, não era pra lagar e nem congelar ninguém; Não sei nenhum modo de fazer não juntar os ataques e acredito que os outros players que entraram pra ler isso daqui também não sabe, por isso não te ajudaram. Esse travamento não é normal, seu pc não deve ter ram suficiente pra rodar o server ou tem alguma coisa muito satânica acontecendo nas suas sources, de qualquer jeito tenta trocar de server que a gente verifica se o erro é nas sources ou no seu pc
-
[AJUDA] Script que fica "floodando" a screen
@roriscrave, se você não sabe então não comenta no tópico, isso é considerado flood! Leia as regras . @Topic, acho que você esqueceu de fazer uma checagem pra só pedir a party se o target for um player haha Testa assim: function onAttack(cid, target) if isPlayer(cid) and isPlayer(target) and isInParty(cid) and isInParty(target) then if getPlayerParty(cid) == getPlayerParty(target) then doPlayerSendCancel(cid, "You can not attack your party members") return false end end return true end
-
(Resolvido)[Pedido][Action] Transporte de players.
não, não é um pedido simples e nunca diga que o pedido de alguém não é valido e que ela deve ir no google.. é pra isso que o fórum serve. Não quero voltar a ver esse tipo de atitude por aqui. local pos = {x = 160, y = 54, z = 7} -- posição que será teleportado local from = {x = 145, y = 40, z = 7} ---- posição de um dos cantos do area que será analisado local to = {x = 151, y = 53, z = 7} ---- posição de um dos cantos da area que será analisado function onUse(cid, item, frompos, item2, topos) function getSpectatorsFromArea(fromPosition, toPosition) local width = (math.max(fromPosition.x, toPosition.x) - math.min(fromPosition.x, toPosition.x)) / 2 + 1 local height = (math.max(fromPosition.y, toPosition.y) - math.min(fromPosition.y, toPosition.y)) / 2 + 1 local center = {x = math.min(fromPosition.x, toPosition.x) + width, y = math.min(fromPosition.y, toPosition.y) + height, z = fromPosition.z} return getSpectators(center, width, height, false) end function TeleportAllInArea(from, to) for _, pid in pairs(getSpectatorsFromArea(from, to) or {}) do if isPlayer(pid) then doTeleportThing(pid, pos, true) doSendMagicEffect(getPlayerPosition(pid), 10) end end end TeleportAllInArea(from, to) doSendMagicEffect(getPlayerPosition(cid), 13) return true end
-
[AJUDA] Script de Remover TRAP
creaturescripts\scripts\nomequalquer.lua function onKill(cid, target, lastHit) local tempo = 20*1000 local idparede = 1483 --DIGITE AQUI O ID DAS TRAPS ------ POSIÇÃO DAS TRAPS ---------- local wall1 = {x=74, y=410, z=5, stackpos=1} local pos1 = getThingfromPos(wall1) local wall2 = {x=75, y=410, z=5, stackpos=1} local pos2 = getThingfromPos(wall2) ---------------------------------------- function wait1(wall1) doCreateItem(idparede,1,wall1) end function wait2(wall2) doCreateItem(idparede,1,wall2) end if isMonster(target) and getCreatureName(target):lower() == 'nome do monstro aqui' then doPlayerSendTextMessage(cid,22,"MENSAGEM AO MATAR O MONSTRO!") local storage = getPlayerStorageValue(cid,13340) if storage ~= 1 then ------------ FUNÇÃO DE REMOVER ------------- doRemoveItem(pos1.uid,1) doSendMagicEffect(pos1,12) doRemoveItem(pos2.uid,1) doSendMagicEffect(pos2,12) ----------------------------------------------------------------------- addEvent(wait1,tempo,wall1) addEvent(wait2,tempo,wall2) setPlayerStorageValue(cid, 13340, 1) end end return true end creaturescripts.xml <event type="kill" name="NOME DO EVENTO" script="nomequalquer.lua"/> creaturescripts\scripts\login.lua (adiciona antes do ultimo return true): registerCreatureEvent(cid, "NOME DO EVENTO")
-
Magia que Empurra
consegui: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 2) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -9.0, -30, -10.0, 4) local arr = { {1, 1, 1}, {1, 1, 1}, {1, 1, 1}, {0, 1, 0}, {0, 3, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) local function doPushCreature(uid,direction,distance,time) if isCreature(uid) == TRUE then local rand = (2*math.random(0,1))-1 local rand2 = math.random(-1,0) if direction == 0 then signal = {0,rand,-rand,rand,-rand,0,-1,-1,-1,0,0,0} elseif direction == 1 then signal = {1,1,1,0,0,0,0,rand,-rand,rand,-rand,0} elseif direction == 2 then signal = {0,rand,-rand,rand,-rand,0,1,1,1,0,0,0} elseif direction == 3 then signal = {-1,-1,-1,0,0,0,0,rand,-rand,rand,-rand,0} elseif direction == 4 then signal = {-1,rand2,(-rand2)-1,0,1,rand2+1,rand2,0} elseif direction == 5 then signal = {1,-rand2,-((-rand2)-1),0,1,rand2+1,rand2,0} elseif direction == 6 then signal = {-1,rand2,(-rand2)-1,0,-1,(-rand2)-1,rand2,0} else signal = {1,-rand2,-((-rand2)-1),0,-1,(-rand2)-1,rand2,0} end local pos = getThingPos(uid) nsig = #signal nvar = 0 repeat nvar = nvar+1 newpos = {x=pos.x+(signal[nvar]),y=pos.y+(signal[(nsig/2)+nvar]),z=pos.z} newtile = {x=newpos.x,y=newpos.y,z=newpos.z,stackpos=0} until getTileThingByPos(newtile).uid ~= 0 and hasProperty(getTileThingByPos(newtile).uid,3) == FALSE and queryTileAddThing(uid,newpos) == 1 or nvar == (nsig/2) if canWalk(newpos) == TRUE then if distance == nil or distance == 1 then doTeleportThing(uid,newpos,TRUE) else distance = distance-1 doTeleportThing(uid,newpos,TRUE) if time ~= nil then addEvent(doPushCreature,time,uid,direction,distance,time) else addEvent(doPushCreature,500,uid,direction,distance,500) end end end end end local function getPosfromArea(cid,area) icenter = math.floor(table.getn(area)/2)+1 jcenter = math.floor(table.getn(area[1])/2)+1 center = area[icenter] ivar = table.getn(area) jvar = table.getn(area[1]) i = table.getn(area)^2 j = table.getn(area[1])^2 if center[jcenter] == 3 then if getPlayerLookDir(cid) == 0 then signal = {-1,1,1,2} elseif getPlayerLookDir(cid) == 1 then signal = {1,-1,2,1} elseif getPlayerLookDir(cid) == 2 then signal = {1,-1,1,2} else signal = {-1,1,2,1} end else signal = {-1,1,1,2} end POSITIONS = {} P = 0 repeat pvar = {0,0} I = area[ivar] J = I[jvar] i = i-1 j = j-1 if J == 1 then if jvar < jcenter then pvar[signal[3]] = signal[1]*math.abs((jcenter-jvar)) elseif jvar > jcenter then pvar[signal[3]] = signal[2]*math.abs((jcenter-jvar)) end if ivar < icenter then pvar[signal[4]] = signal[1]*math.abs((icenter-ivar)) elseif ivar > icenter then pvar[signal[4]] = signal[2]*math.abs((icenter-ivar)) end end if jvar > 1 then jvar = (jvar-1) elseif ivar > 1 then jvar = table.getn(area[1]) ivar = (ivar-1) end local pos = getThingPos(cid) local areapos = {x=pos.x+(pvar[1]),y=pos.y+(pvar[2]),z=pos.z} if pos.x ~= areapos.x or pos.y ~= areapos.y then P = P+1 POSITIONS[P] = areapos end until i <= 0 and j <= 0 return POSITIONS end function canWalk(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 function onCastSpell(cid, var) pos = getPosfromArea(cid,arr) n = 0 while n < #pos do n = n+1 thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253} if isCreature(getThingfromPos(thing).uid) == TRUE then doPushCreature(getThingfromPos(thing).uid,getPlayerLookDir(cid)) doSendAnimatedText(getThingPos(cid), "GET OFF", 215) end end return doCombat(cid, combat, var) end era um problema no tipo de damage que tava :/
- Hirashin Ni No Dan
- (Resolvido)Spell que transfere dano recebido
-
Erro Promotion
provavelmente algum player tem esse storage 3636 como sendo esse valor aí "4294967295" e na hora de setar a vocação pra esse valor ta dando erro pois esse numero não é um ID de vocação válido.
-
(Resolvido)Ajuda Nesse Scrpit Transform
refaz o seu tópico identando corretamente.. fica complicado alguém te ajudar e ver um script inteiro em duas linhas '-'
-
Duvida
No caso vc tá perguntando se poderia fazer dois melee's? claro que pode auhuhauha Agora se a sua pergunta for se pode colocar o nome dos ataques como um comentário no script, tb pode mas vc tem que seguir as regras. Se for xml coloque o nome: <!-- AQUI --> <attack name="melee" interval="2000" skill="0" attack="0"/>
- Hirashin Ni No Dan
- (Resolvido)Spell que transfere dano recebido
- Looking at you [Look]
- Looking at you [Look]
- (Resolvido)Spell que transfere dano recebido
-
(Resolvido)[Pedido] Talkaction WAND VIP TFS 1.0
local combat_values = { ["ice"] = 1, ["fire"] = 2, ["earth"] = 3, ["energy"] = 4, ["holy"] = 5, ["death"] = 6, } local config = { storage = 101010, time_storage = 101011, price = 0, delay = 0, msg = { default = "Por favor selecione um dos elementos disponíveis: Ice, Fire, Earth, Energy, Holy ou Death.", help = "Elementos disponíveis: Ice, Fire, Earth, Energy, Holy, Death.", invalid = "Digite um elemento válido! Fale !wand para saber os elementos disponíveis.", changed = "O elemento da wand foi trocado para %s.", nomoney = "Você não possui dinheiro.", delayed = "Você precisa esperar para trocar o efeito.", } } function onSay(cid, words, param) local param = param:lower() local value = combat_values[param] if param == "help" then doPlayerSendCancel(cid, string.format(config.msg.help, config.price)) return true end if param == "" then doPlayerSendCancel(cid, string.format(config.msg.default, config.price)) return true end if not value then doPlayerSendCancel(cid, config.msg.invalid) return end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return true end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return true end if getPlayerStorageValue(cid, config.time_storage) + config.delay > os.time() then doPlayerSendCancel(cid, config.msg.delayed) return true end if not (getPlayerItemCount(cid, 23607) >= 1) then doPlayerSendCancel(cid, "Você não possui a wand".) return true end setPlayerStorageValue(cid, config.storage, value) setPlayerStorageValue(cid, config.time_storage, os.time()) doPlayerRemoveMoney(cid, config.price) doPlayerSendCancel(cid, string.format(config.msg.changed, param)) return true end copiei direto da ana e ela não tinha colocado o "Você não tem wand" entre aspas
-
(Resolvido)[Pedido] Talkaction WAND VIP TFS 1.0
local combat_values = { ["ice"] = 1, ["fire"] = 2, ["earth"] = 3, ["energy"] = 4, ["holy"] = 5, ["death"] = 6, } local config = { storage = 101010, time_storage = 101011, price = 0, delay = 0, msg = { default = "Por favor selecione um dos elementos disponíveis: Ice, Fire, Earth, Energy, Holy ou Death.", help = "Elementos disponíveis: Ice, Fire, Earth, Energy, Holy, Death.", invalid = "Digite um elemento válido! Fale !wand para saber os elementos disponíveis.", changed = "O elemento da wand foi trocado para %s.", nomoney = "Você não possui dinheiro.", delayed = "Você precisa esperar para trocar o efeito.", } } function onSay(cid, words, param) local param = param:lower() local value = combat_values[param] if param == "help" then doPlayerSendCancel(cid, string.format(config.msg.help, config.price)) return end if param == "" then doPlayerSendCancel(cid, string.format(config.msg.default, config.price)) return end if not value then doPlayerSendCancel(cid, config.msg.invalid) return end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return end if getPlayerMoney(cid) < config.price then doPlayerSendCancel(cid, config.msg.nomoney) return end if getPlayerStorageValue(cid, config.time_storage) + config.delay > os.time() then doPlayerSendCancel(cid, config.msg.delayed) return end if not (getPlayerItemCount(cid, 23607) >= 1) then doPlayerSendCancel(cid, Você não possui a wand.) return end setPlayerStorageValue(cid, config.storage, value) setPlayerStorageValue(cid, config.time_storage, os.time()) doPlayerRemoveMoney(cid, config.price) doPlayerSendCancel(cid, string.format(config.msg.changed, param)) return end prontinho, faltou colocar um not na frente já que a checagem é pra ver justamente se ele não tem a wand.
-
Spell de paralyze diferente
@Sr.Samuel, essa parte do fórum é cheia de ódio e problemas de comunicação... não torne as coisas piores. Deixe as gracinhas e piadas pro Playground porque brincadeiras desse tipo por aqui vão só irritar os membros e acabar fazendo você ser banido. Leia, e principalmente, siga as regras do fórum!
- (Resolvido)Spell que transfere dano recebido
- Looking at you [Look]
- Nurse Joy que cure os pokémons com icon system
-
(Resolvido)Problema com Bike (Poketibia)
testa agora: -- [[ Bike Sistema 100% -- By SmiX ^}^ ]] -- --[[ • Ela deixa você mais rápido a partir da volocidade determinada no script + sua estamina.]]-- --[[ • Adiciona e remove outfit do player.]]-- local config = { velocidadeDaSuaBike = 10, -- A volocidade da bike, sempre bote números de 1 á 10. Caso bote mais que isso a volicidade vai ficar muito alta. outfitMale = 1787, -- Outfit male outfitFemale = 1618, -- Outfit female efeito = 18, -- Efeito que ira aparescer quando der use. storageValue = 5602, -- Storage Para a bike } function onUse(cid, item, itemEx, fromPosition, toPosition) if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end if getPlayerStorageValue(cid, config.storageValue) <= 0 then setPlayerStorageValue(cid, 3624, getCreatureBaseSpeed(cid)) a = {lookType = config.outfitMale, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet} b = {lookType = config.outfitFemale, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet} doSendMagicEffect(getThingPos(cid), config.efeito) speedRate = config.velocidadeDaSuaBike * 1000 doChangeSpeed(cid, speedRate + getPlayerStorageValue(cid, 3624)) setPlayerStorageValue(cid, config.storageValue, 1) if getPlayerSex(cid) == 0 then doSetCreatureOutfit(cid, b, -1) else doSetCreatureOutfit(cid, a, -1) end else doSendMagicEffect(getThingPos(cid), config.efeito) doRemoveCondition(cid, CONDITION_OUTFIT) retireSpeedRate = config.velocidadeDaSuaBike * 100 playerSpeedNow = (retireSpeedRate + getPlayerStorageValue(cid, 3624)) doChangeSpeed(cid, -(playerSpeedNow)) setPlayerStorageValue(cid, config.storageValue, 0) end return TRUE end