Ir para conteúdo

Yugami

Membro
  • Registro em

  • Última visita

Tudo que Yugami postou

  1. Testa essa script colega: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 34) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -5.2, -0 , -4.2, -0) local arr = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 3, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) local summon = getCreatureSummons if (table.maxn(summon) == 1) then doCombat(summon[1], combat, var) doRemoveCreature(summon[1]) else doPlayerSendCancel(cid, "No have Summon") return false end end
  2. Desculpe, estou montando pelo bloco de notas aqui do trampo ai acabo me desatentando a esses detalhes., copia la novamente eu me desatentei e esqueci de colocar o sinal de = após o from.
  3. então não necessariamente precisaria ser um comando que ativa uma spell, no caso seria bom detalhar mais sobre o que faria a script, por exemplo: Precisava de um script na qual ao player utilizar X spell, se ele tiver um summon ativo, o summon morre/desaparece e vai dar um dano de x sqm, e o cooldown da spell sera de x segundos/minutos.
  4. possível é, seria tipo estilo Poketibia ou Digitibia, entretanto essa sua ideia seria para um Summon? ou o jogadores invocaria mais de um Summon
  5. fiz algumas correções na script local c = { storage = 20000, -- storage do evento ativo pos_zone = {from = {x = 2100, y = 2100, z = 7}, to = {x = 2100, y = 2100, z = 7}}, -- posição superior esquerda, posição inferior direita pos = {x = 2100, y = 2100, z = 7}, -- posição que o player sera teleportado dentro do storage oldPEffect = 200, -- efeito quando ele morrer newPEffect = 200, -- efeito quando ele renascer exit = {x = 1000, y = 1000, z = 7}, -- posição que ele sera levado caso ele não tenha a storage } function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) local zone = c.pos_zone if (isInRange(getCreaturePosition(cid), zone.from, zone.to)) then if (getCreatureStorage(cid, c.storage) ~= 0) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doSendMagicEffect(getCreaturePosition(cid), c.oldPEffect) doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) else doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) end end return false end
  6. Ola amigo, acredito que você precisa prestar mais atenção ao ler um tópico ou até mesmo uma script, pois a própria script já lhe responde estas perguntas pos -> posição de criação do teleport toPos -> posição na qual ele vai levar time -> tempo de duração do teleport storage -> valor da storage que vai adicionar value -> valor da storage ["Ushuriel"] = {pos = {x=33157, y=31730, z=11}, toPos = {x=33069, y=31783, z=13}, time = 60, storage = 56123, value = 1}, referente a sua duvida "código do boss", ele se refere ao arquivo na qual fica o código do monster, resumindo é o arquivo.xml que você criou na pasta data/monsters. ----------------EDIT-------------- Outra observação, o script acredito esta errado, pois o mesmo faz um laço em "players", porem não existe nenhuma variável players, Caso eu esteja enganado peço que alguem me corrija. -- EDIT -- caso queira testar para ver se funciona local tps = { ["Ushuriel"] = { pos_zone = {from = {x=33069, y=31783, z=13}, to = {x=33069, y=31783, z=13}}, -- from canto superior esquerdo, to canto inferior direito pos = {x=33157, y=31730, z=11}, -- posição que vai ser criado o teleport toPos = {x=33069, y=31783, z=13}, -- posição que vai levar o teleport time = 60, -- duração do teleport storage = 56123, -- numero da storage ganha value = 1 -- valor da storage ganha }, } local function removeTp(tp) local t = getTileItemById(tp.pos, 5023).uid if (t > 0) then doRemoveItem(t) doSendMagicEffect(tp.pos, CONST_ME_POFF end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then local zone = tp.zone for _, pid in ipairs(getPlayersOnline()) do if (isInRange(getPlayerPosition(cid), zone.from, zone.to)) then setCreatureStorageValue(pid, tp.storage, tp.value) end end doCreateTeleport(5023, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return true end
  7. Ola amigo, então o próprio erro já diz que ele esta tentando checar uma skill que é inexistente, verifica em qual tabela e coluna a função getSkill faz a busca, e em seguida verifica o padrão de numero de skills la, era pra ir de 0-6.
  8. Atah, ambos os erro foi por que esqueci de add o to na position, tenta agora, fiz uma edição no script .
  9. caso o do nosso amigo acima não funcione, e queira tentar oque eu tentei resumi do dele, fiz pelo bloco de notas qualquer erro só postar. local c = { cooldown = 25, -- tempo em segundos para usar novamente effect = 200, -- efeito que vai sair quando for utilizado a spell storage = 32598, -- storage do cooldown pos_user = { x = 1509, y = 1261, z = 7}, pos_target = { x = 1509, y = 1255, z = 7}, time_back = 15, -- tempo em segundos para retornar points = 70, -- pontos de skills que o usuario terar a mais spell_room = {from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, restricted_zones = { [1] = {from = {x = 1483, y = 1110, z = 7}, to = {x = 1648, y = 1275, z = 7}}, [2] = {from = {x = 1054, y = 910, z = 7}, to = {x = 1069, y = 925, z = 7}} } } local function teleportPlayer(cid, pos, time, posBack) addEvent(doTeleportThing, time, cid, posBack) doTeleportThing(cid, pos) end local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, c.time_back*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, c.points) function onCastSpell(cid, var) local spellRoom = c.spell_room local restrictZones = c.restricted_zones local target = getCreatureTarget(cid) if (isInRange(getCreaturePosition(cid), spellRoom.from, spellRoom.to)) then doPlayerSendTextMessage(cid, 25, "You are already within the dimension of this spell.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end for _, zone in ipairs(restrictZones) do if (isInRange(getCreaturePosition(cid), zone.from, zone.to)) then doPlayerSendTextMessage(cid, 25, "It is impossible to use this spell here.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end end if (isPlayer(cid)) and (exhaustion.check(cid, c.storage)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Wait ".. exhaustion.get(cid, c.storage) .. " seconds") return false end if (not isPlayer(target)) then doPlayerSendCancel(cid, "This spell can only be used in Player.") return false end teleportPlayer(cid, c.pos_target, c.time_back*1000, getCreaturePosition(target)) teleportPlayer(cid, c.pos_user, c.time_back*1000, getCreaturePosition(cid)) doSendMagicEffect(getCreaturePosition(target), c.effect) return TRUE end
  10. local c = { storage = 20000, -- storage do evento ativo from,to = {x = 2100, y = 2100, z = 7}, {x = 2100, y = 2100, z = 7}, -- posição superior esquerda, posição inferior direita pos = {x = 2100, y = 2100, z = 7}, -- posição que o player sera teleportado dentro do storage oldPEffect = 200, -- efeito quando ele morrer newPEffect = 200, -- efeito quando ele renascer exit = {x = 1000, y = 1000, z = 7}, -- posição que ele sera levado caso ele não tenha a storage } function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) if (isInRange(getCreaturePosition(cid), c.from, c.to) then if ((cid, c.storage) ~= 0) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doSendMagicEffect(getCreaturePosition(cid), c.oldPEffect) doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) else doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) end end return false end tenta desta forma que coloquei acima.
  11. Não entendi muito bem oque você quer, ver se funciona o script que fiz pelo bloco de notas: OBS: não esqueça de adicionar a tags do creaturescripts.xml, e dentro do login.lua. Após adicionar o script, se caso o servidor estiver aberto, feche-o e o abra novamente. local c = { storage = 20000, -- storage do evento ativo arena = {from = {x = 2100, y = 2100, z = 7}, to = {x = 2100, y = 2100, z = 7}}, -- posição superior esquerda, posição inferior direita pos = {x = 2100, y = 2100, z = 7}, -- posição que o player sera teleportado dentro do storage oldPEffect = 200, -- efeito quando ele morrer newPEffect = 200, -- efeito quando ele renascer exit = {x = 1000, y = 1000, z = 7}, -- posição que ele sera levado caso ele não tenha a storage } function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) if (isInRange(getCreaturePosition(cid), c.arena.from, c.arena.to)) then if (getPlayerStorageValue(cid, c.storage) ~= 0) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doSendMagicEffect(getCreaturePosition(cid), c.oldPEffect) doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) else doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) end end return false end
  12. Caro, acredito que se você precisar de ajuda seria bom reformular seu tópico, na minha opinião ninguém deve ter entendido direito oque você precisa.
  13. Companheiro não tenho tantas noções de linguaguem de PHP e SQL, entretanto acredito que o erro é pelo seguinte motivo: #0 /var/www/html/system/libs/pot/OTS_Account.php(140): PDO->exec('INSERT INTO `ac...') ele esta tentando inserir um valor na coluna "vip_time", porem não existe nada que faça referencia ao mesmo, então o próprio banco de dados esta configurado para que quando inserir um valor vazio ele inserir um valor X, è neste valor X que esta o erro, pois o mesmo não deve estar configurado. acredito que seja isso.
  14. se colocou a tag no Creaturescripts.xml e no login.lua? se não colocou faz assim: no creaturescripts.xml coloque e em login.lua se coloca se no creaturescripts.xml vc colocou "Nome_do_Sistema" com o N e S maiusculo, no login.lua tem que coloca da mesma forma, se for maiusculo coloca maiusculo e se for minusculo coloca minusculo...
  15. tenta agora, eu esqueci de fexar as " . "
  16. tenta isso local config = { [1] = {itemid= 2471}, [2] = {itemid= 2471}, [3] = {itemid= 2471}, } function examine(cid, position, corpse_id) if not isPlayer(cid) then return true end local corpse = getTileItemById(position, corpse_id).uid if corpse <= 1 or not isContainer(corpse) then return true end for slot = 0, getContainerSize(corpse) - 1 do local item = getContainerItem(corpse, slot) if item.uid <= 1 then return true end for i = 1, #config do if item.itemid == config[i].itemid then doBroadcastMessage("DROP MENSAGEM: O Jogador (" .. getCreatureName(cid) .. ") Dropou o Item (" .. getItemNameById(config[i].itemid) .. ")." , 19) end end end end function onKill(cid, target) if not isMonster(target) then return true end local corpse_id = getMonsterInfo(getCreatureName(target)).lookCorpse addEvent(examine, 2, cid, getThingPos(target), corpse_id) return true end
  17. Tenta desta forma. function onKill(cid, target, lastHit) local target = getCreatureTarget(isPlayer(cid)) if target then doSendAnimatedText(getPlayerPosition(cid), "10000000", 215) doPlayerAddExperience(cid, getPlayerExperience(target) / 5000) end return TRUE end
  18. então tu tem que arrumar os newtype de todos elas, provavelmente ela ta com algum "newtype" bugado que no client não tem, ou que esta com a descrição do objeto diferente por exemplo se no item.orb ele estiver com o useable marcado e no newtype do object buider, ele não tiver com esta opção marcada, possa ser que de divergência e acaba debugando mesmo. ai o jeito é tu deixa os dois iguais.
  19. ser for a bp, tu procura o ID dela e axa ela la no item editor se for o item, tu procura o ID do item e axa ele la no item editor ali em cid é o "newtype" do objeto, esse newtype do objeto tu tem q axar pelo programa do Dat editor ou Object Buider
  20. baixa este programa e depois extrai ele para alguma pasta, coloca seu tibia.spr e tibia.dat nesta mesma pasta, e abre o programa, ai só abri o seu itens.xml, caça o ID da potion, logo em seguida tu vai no programa abre o itens.orb procura esse mesmo ID que tava no itens.xml, e editar o ID da newtype que tiver la, para alguma que não debug
  21. Yugami postou uma resposta no tópico em Suporte Tibia OTServer
    Ver se funciona no seu mapa vai na pasta do seu OT/data/actions/scripts e cria um arquivo.lua com nome de alavancaquestion e coloca este código dentro local config = { placa = 1945, -- ID da Placa exausted = 24, -- Exausted em Horas storage = 15555, -- Storage da Questão effect = 222, -- ID do efeito durante o teleport posteleport = {x=996, y=1087, z=7, stackpos=253}, -- Piso onde o Player vai ser teleportado } function onUse(cid, item, frompos, item2, topos) if item.itemid == config.placa then if getPlayerStorageValue(cid, config.storage) - os.time() >= 1 then local left = getPlayerStorageValue(cid, config.storage) - os.time() left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60), seconds = math.ceil((left % 3600)%60)} doPlayerSendCancel(cid, 'Aguarde '.. left.hour ..' horas e '..left.minutes..' minutos e '..left.seconds..' segundos para fazer novamente.') return false end if getPlayerStorageValue(cid, config.storage) - os.time() < 1 then doSendMagicEffect(config.posteleport, config.effect) doTeleportThing(cid,config.posteleport) doPlayerSendCancel(cid,"Você foi teleportado.") -- MSG após ser teleportado return TRUE end end return TRUE end agora cria outro arquivo.lua com nome de bauquestion e coloca este outro código local config = { level = 222, -- Level necessário para fazer exausted = 24, -- Exausted em Horas storage = 15555, -- Storage da Questão } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storage) - os.time() < 1 and getPlayerLevel(cid) >= config.level then setPlayerStorageValue(cid, config.storage, 24 * 60 * 60 + os.time()) doPlayerAddItem(cid, 2150, 1) -- Item que vai ganha, e a quantidade doPlayerSendTextMessage(cid,20,"Você terminou quest.") -- MSG após termina a quest else doPlayerSendTextMessage(cid,20, "Você ainda não pode fazer esta questão.") -- MSG se ele ainda estiver com o exausted end end agora vai no actions.xml e coloca essas tag <action actionid="22222" event="script" value="alavancaquestion.lua" /> -- Actionid da alavanca <action actionid="22221" event="script" value="bauquestion.lua" /> -- Actionid do bau
  22. qual versão do seu jogo? 854,860...?
  23. você tem o programa "item editor" da versão do seu jogo?

Informação Importante

Confirmação de Termo