Ir para conteúdo

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. 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
  2. mas daí daria pra prender players lá '-' leva eles e volta sem eles... como vc sugere que dê pra arrumar isso?
  3. 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)
  4. é 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
  5. @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
  6. 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
  7. 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")
  8. 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 :/
  9. xWhiteWolf postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    se quiser que seja imediato é só diminuir o tempo na configuração do script pra algo tipo "0.1"
  10. Vou tentar fazer pra você, ok?
  11. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    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.
  12. refaz o seu tópico identando corretamente.. fica complicado alguém te ajudar e ver um script inteiro em duas linhas '-'
  13. xWhiteWolf postou uma resposta no tópico em Suporte Tibia OTServer
    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"/>
  14. xWhiteWolf postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    tem ué mas o player vai teleportar de qualquer maneira uhauhauha
  15. mas oque vc não deixou muito claro é se o target vai ser um summon qualquer ou um player
  16. porra macalo, isso é uma função do script: se vc deixar anonimato = "sim" vai aparecer "alguém está te olhando" mas sem falar o nome do player, se vc colocar anonimato = "nao" vai aparecer o nome... vc mesmo disse isso '---'
  17. não tem como eu te ajudar cara, vc não precisa de ajuda '-' isso daí são apenas as funções do script
  18. 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
  19. 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.
  20. @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!
  21. sim cara, acesso 3 pra cima são os Gm's, CM's e God's do server.
  22. eu não mexo com poketibia então nem sei oque é isso ): sinto muito por não poder ajudar
  23. 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

Informação Importante

Confirmação de Termo