Ir para conteúdo

Kuro o Shiniga

Colaborador
  • Total de itens

    233
  • Registro em

  • Última visita

  • Dias Ganhos

    4

Kuro o Shiniga venceu a última vez em Maio 12

Kuro o Shiniga had the most liked content!

Sobre Kuro o Shiniga

Perfil

  • Gênero
    Masculino

Informações

  • Forma que conheci o xTibia
    Otservs
  • Sou
    Player

Últimos Visitantes

8.677 visualizações
  1. Não acontece nada, o player vai de poss em poss com doTeleportThing
  2. Vendo Sources OTX 8.6, capacidade de 800 players online !

  3. O Jogador usa o item e volta ate o local aonde ele morreu, o item só pode ser utilizado dentro do PZ. Actions : function onUse(cid, item, fromPosition, itemEx, toPosition) local pose = {x=getPlayerStorageValue(cid, 2307), y=getPlayerStorageValue(cid, 2308), z=getPlayerStorageValue(cid, 2309)} if getTilePzInfo(getCreaturePosition(cid)) == false then doSendMagicEffect(getPlayerPosition(cid), 2) return doCreatureSay(cid, "Não pode usar fora do pz", TALKTYPE_ORANGE_1) end doSendMagicEffect(getThingPos(cid), 10) doTeleportThing(cid, pose) doSendMagicEffect(getThingPos(cid), 61) doPlayerSendTextMessage(cid, 22, "Return to death") setPlayerStorageValue(cid, 2307, -1) setPlayerStorageValue(cid, 2308, -1) setPlayerStorageValue(cid, 2309, -1) doRemoveItem(item.uid, 1) return true end <action itemid="IDITEM" script="NOME_DO_ARQUIVO.lua"/> CreatureScript: function onDeath(cid, corpse, deathList, target) local config = { x=2307, y=2308, z=2309, } if getPlayerStorageValue(cid, config.x) < 1 and getPlayerStorageValue(cid, config.y) < 1 and getPlayerStorageValue(cid, config.z) < 1 then setPlayerStorageValue(cid, config.x, getThingPosition(cid).x) setPlayerStorageValue(cid, config.y, getThingPosition(cid).y) setPlayerStorageValue(cid, config.z, getThingPosition(cid).z) doSendMagicEffect(getThingPos(cid), 49) return true end end <event type="death" name="strdead" event="script" value="arquivo.lua"/> Login.lua: registerCreatureEvent(cid, "strdead")
  4. O NPC caminha junto com o player ate a hunt. Esse sistema é bem SIMPLES, um amigo me pediu, desenvolvi para ele e vim compartilhar com vocês Crie um arquivo lua em npcs e adicione : local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local possnpc = { --- poss que o npc vai andar {x=81 ,y=339, z=7}, {x=82 ,y=339, z=7}, {x=83 ,y=339, z=7}, {x=84 ,y=339, z=7}, {x=85 ,y=339, z=7}, {x=86 ,y=339, z=7}, {x=79, y=340, z=7} } local possplayer = { -- poss que o player vai andar {x=81 ,y=339, z=7}, {x=82 ,y=339, z=7}, {x=83 ,y=339, z=7}, {x=84 ,y=339, z=7}, {x=85 ,y=339, z=7}, {x=86 ,y=339, z=7} } local pid = getNpcId() -- não mexa local config = { -- não mexa str = 150729, tempo = 30, } function andarnpc() for i, pos in ipairs(possnpc) do addEvent(doTeleportThing, 1000+400*(i-1), pid, pos) end end function andarplayer(cid) for i, posdois in ipairs(possplayer) do if isCreature(cid) then addEvent(doTeleportThing, 1000+500*(i-1), cid, posdois) end end end for _, player in pairs(getPlayersOnline()) do if msgcontains(msg, "hunt") and getPlayerStorageValue(player, config.str) >= os.time() then selfSay("Não posso atender você agora!", cid) break end if msgcontains(msg, "hunt") and getPlayerStorageValue(player, config.str) < os.time() then setPlayerStorageValue(cid, config.str, os.time() + config.tempo) selfSay("Vou te levar ate a caverna misteriosa !", cid) andarnpc() andarplayer(cid) break end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configuração : Aqui é aonde o npc vai andar, são as mesma poss que o player vai andar, porem você tem que por uma ultima poss para o npc, nessa ultima poss você coloca a posição aonde o npc estava antes do jogador falar com ele ! local possnpc = { --- poss que o npc vai andar {x=81 ,y=339, z=7}, {x=82 ,y=339, z=7}, {x=83 ,y=339, z=7}, {x=84 ,y=339, z=7}, {x=85 ,y=339, z=7}, {x=86 ,y=339, z=7}, {x=79, y=340, z=7} } Essa é a poss do inicio, aonde o npc vai aparecer quando ele levar o jogador, não esqueca de colocar a posição correta, se não o npc vai ficar dentro da hunt com o player, e outros players não vão conseguir encontrar o npc. {x=79, y=340, z=7} -- poss aonde o npc tava antes de levar o player para a hunt OBS: Existe um tempo para poder falar com o NPC, caso o npc esteja levando algum player para a hunt, outro jogador não pode conversar com ele, ate que ele complete a caminhada, caso queira mudar o tempo edite aqui : tempo = 30, -- 30 = 30 segundos
  5. Para deixar 15 minutos coloca essas linha no lugar da que estão : tempo = 900, tempoarena = 900000, -- tempo que ele tem para terminar a arena 30000 = 30s para adicionar coordenadas para cada monstro vai ter que modificiar algumas umas coisas
  6. Sistema SIMPLES de Dungeon, o player entra no teleport e é criado alguns monstros para o jogador matar dentro de um tempo de 30 segundos, se ele matar todos os monstro no tempo ele recebe a recompensa em Exp e Gold, se ele não matar todos ele volta para o templo e da a chance de outro jogador entrar na Dungeon. Testado: Snowz Thyranic 3.1 [Especial Edition] (8.6) Em movements crie um arquivo do teleport da dungeon e adicione: function onStepIn(cid, item, position, fromPosition) local config = { posdung = {x=317, y=120, z=7}, -- poss da arena str = 15281, -- não mexer storage = 98551, -- não mexer tempo = 30, tempoarena = 30000, -- tempo que ele tem para terminar a arena 30000 = 30s monsterum = "Dragon" -- primeiro monstro que vai ser criado quando o player entrar na arena } local posstemplo = {x=63, y=42, z=7} function Tp() if isCreature(cid) then doTeleportThing(cid, posstemplo) end return true end function Str() if isCreature(cid) then setPlayerStorageValue(cid,config.storage, 0) end return true end function deletamonstro() local spec = getSpectators(config.posdung, 10, 10) if spec ~= nil then for _, s in pairs(spec) do if isMonster(s) then doRemoveCreature(s) end end end end for _, player in pairs(getPlayersOnline()) do if getPlayerStorageValue(player, config.str) >= os.time() then doTeleportThing(player, fromPosition) doPlayerSendTextMessage(cid, 22, "Já existe player em batalha!") elseif getPlayerStorageValue(player, config.str) < os.time() then setPlayerStorageValue(cid, config.str, os.time() + config.tempo) doTeleportThing(cid, config.posdung) doSendMagicEffect(getThingPos(cid), 10) doCreateMonster(config.monsterum, getThingPos(cid)) addEvent(Tp, config.tempoarena) addEvent(Str, config.tempoarena) addEvent(deletamonstro, config.tempoarena) break end end end <movevent type="StepIn" actionid="2569" event="script" value="arquivo.lua"/> CreatureScripts crie um arquivo lua e adicione : local monster = { --- tabela de monstro, se quiser adicionar mais e so adicionar na tabela [1] = "Dragon", [2] = "Dragon Lord", [3] = "Hydra", [4] = "Demon", } local config = { posstemplo = {x=63, y=42, z=7}, -- poss aonde o player vai ser enviado quando terminar ou se falhar storage = 98551, -- não mexa premioexp = 800000, -- tanto de exp que o player vai ganhar quant = 1000000, --- quantidade de dinheiro que vai ganhar } function onDeath(cid, corpse, deathList, target) local storage_value = getPlayerStorageValue(deathList[1], config.storage) < 1 and 1 or getPlayerStorageValue(deathList[1], config.storage) local new_value = storage_value + 1 if getCreatureName(cid) == monster[storage_value] then setPlayerStorageValue(deathList[1], config.storage, new_value) doSendMagicEffect(getPlayerPosition(deathList[1]), 12) doCreatureSay(cid, 'Fight', TALKTYPE_MONSTER) if new_value > #monster then doPlayerSendTextMessage(deathList[1], 22, "Completa!") doPlayerAddMoney(deathList[1], config.quant) doPlayerAddExp(deathList[1], config.premioexp) doTeleportThing(deathList[1], config.posstemplo) doSendMagicEffect(getThingPos(cid), 10) else doCreateMonster(monster[new_value], getThingPos(cid)) end end end <event type="death" name="dungeon" event="script" value="arquivo.lua"/> Adicione dentro do arquivo de cada monstro que vai ter na dungeon : <script> <event name="dungeon"/> </script> Configurando : Em movements você adiciona a poss da dungeon posdung = {x=317, y=120, z=7}, -- poss da arena Aqui você adiciona o primeiro monstro da dungeon monsterum = "Dragon" -- primeiro monstro que vai ser criado quando o player entrar na arena Em creaturescript você adiciona a poss do templo aonde o player vai aparecer quando finalizar a dungeon posstemplo = {x=63, y=42, z=7}, -- poss aonde o player vai ser enviado quando terminar E aqui os monstros que vai ter na dungeon local monster = { --- tabela de monstro, se quiser adicionar mais e so adicionar na tabela [1] = "Dragon", [2] = "Dragon Lord", [3] = "Hydra", [4] = "Demon", } Dentro da sala da dungeon coloque ANT-LOGOUT pelo mapa editor, para evitar de jogadores fazer logout dentro da dungeon.
  7. Não pode remover a linha do script lol tem um simbolo na linha do codigo que não era para ter, copia o script de novo e da reload
  8. Substitui o action da sua alavanca que você postou ai em cima por esse : ----------------------------------- ---------SCRIPT por PC98------------ NAO REMOVA OS CREDITOS ----------------------------------- function onUse(cid, item, frompos, item2, topos) ------------------ Inicio das Config ------------ local castle_one_name = "castelo" -- Nome do castelo 1 local storages = {154154,54321,123123} -- Storages ( se vc eh iniciante, deixe como está...) -------PREMIOs I N D I V I D U A L --------- local premio_por_vezes = 1 -- Premio por vezes de conquista de castelo. (1) = Ativo (0) = Desativa. local premio_vezes = 1 -- Caso ativo, a quantidade de conquista que o player tem, para ganhar PREMIO. local premio = 5956 -- ID do Premio local premio_cont = 1 -- Quantidade do Premio local premio_reset = 1 -- Resetar o contador do premio depois que atingir a meta?? (1) = SIM (0) = NAO local expe = 2 -------FIM PREMIOs I N D I V I D U A L --------- ----------------- FIM DAS CONFIG ----------------- local hora = tonumber(os.date("%H")) if hora < 04 or hora > 05 then doPlayerSendTextMessage(cid,18,"A Guild House só pode ser invadida entre as 22 e 23 horas.") return true end local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) if item.itemid == 9826 then doTransformItem(item.uid,item.itemid-1) doPlayerSendCancel(cid,"A Guild House ja foi invadida hoje.") return false end if item.itemid == 9825 then for posx = 1254,1256 do -- checar posição X, começo e final da sala for posy = 690,690 do -- checar posicao Y, começo e final da sala local pos = {x=posx, y=posy, z=6, stackpos=253} -- posição que ira verificar se existe creatures (stackpos = 253) local creature = getThingfromPos(pos) -- pega informações da creature da posição if isMonster(creature.uid) then -- verifica se é um monster doTransformItem(item.uid,item.itemid+1) doPlayerSendTextMessage(cid,18,"Para dominar a guild house é necessario matar os guardas.") return false end end end end if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then setPlayerStorageValue(cid,guild_sto,guild) if getPlayerStorageValue(cid,storages[1]) == -1 then setPlayerStorageValue(cid,storages[1],0) end sto_vezes = getPlayerStorageValue(cid,storages[1]) setGlobalStorageValue(storages[3],getPlayerGuildId(cid)) setPlayerStorageValue(cid,storages[1], sto_vezes + 1) sto_vezes_total = getPlayerStorageValue(cid,storages[1]) doBroadcastMessage("A guild "..getPlayerGuildName(cid).." acaba de dominar o Castelo") doPlayerSetExperienceRate(cid, expe) doSendMagicEffect(getThingPos(cid), 12) for _, player in pairs(getPlayersOnline()) do if getPlayerStorageValue(player, guild_sto) < 1 then doPlayerSetExperienceRate(player, 1) doSendMagicEffect(getPlayerPosition(cid), 2) break end end if premio_por_vezes == 1 then if getPlayerStorageValue(cid,storages[1]) == premio_vezes then if getItemWeightById(premio,1) <= getPlayerFreeCap(cid) then doPlayerAddItem(cid, premio,premio_cont) ----------------------------------------------- -- if premio_reset == 1 then -- setPlayerStorageValue(cid,storages[1],0) -- Resetar a contagem end -- ----------------------------------------------- -- else doPlayerSendTextMessage(cid, 18, "Voce nao tem capacidade para ganhar o item. Vamos verificar novamente em 10 segundos!") addEvent(additem,10000,cid,premio,premio_cont,premio_reset) end end end else doPlayerSendCancel(cid,"Sua guild já está dominando a guild house.") doTransformItem(item.uid,item.itemid+1) end else doPlayerSendCancel(cid,"O sistema está desativado") end else doPlayerSendCancel(cid,"É nescessario ter guild para dominar a guild house.") doTransformItem(item.uid,item.itemid+1) end end ------------------------- por pc98 ------------------------- por pc98 function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end ATENÇÃO : Domina o castle com um char e veja se ele ganhou double exp, se estiver tudo OK e ele ganhar a exp, você domina o castle com outro char de guild diferente e veja se o novo char ganhou double e se o primeiro dominante perdeu a double
  9. Como que faz para dominar o castle e ganhar a storage?
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...