Ir para conteúdo

Kuro o Shiniga

Colaborador
  • Total de itens

    234
  • 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.771 visualizações
  1. Sistema simples de bless, idêntico ao global, cada bless em seu determinado NPC. Level Preço por Bênção 1-30 2 000 gps 31 2 200 gps 32 2 400 gps 33 2 600 gps 34 2 800 gps 35 3 000 gps 36 3 200 gps 37 3 400 gps 38 3 600 gps 39 3 800 gps 40 4 000 gps 41 4 200 gps 42 4 400 gps 43 4 600 gps 44 4 800 gps 45 5 000 gps 46 5 200 gps 47 5 400 gps 48 5 600 gps 49 5 800 gps 50 6 000 gps 51 6 200 gps 52 6 400 gps Level Preço por Bênção 53 6 600 gps 54 6 800 gps 55 7 000 gps 56 7 200 gps 57 7 400 gps 58 7 600 gps 59 7 800 gps 60 8 000 gps 61 8 200 gps 62 8 400 gps 63 8 600 gps 64 8 800 gps 65 9 000 gps 66 9 200 gps 67 9 400 gps 68 9 600 gps 69 9 800 gps 70 10 000 gps 71 10 200 gps 72 10 400 gps 73 10 600 gps 74 10 800 gps 75 11 000 gps Level Preço por Bênção 76 11 200 gps 77 11 400 gps 78 11 600 gps 79 11 800 gps 80 12 000 gps 81 12 200 gps 82 12 400 gps 83 12 600 gps 84 12 800 gps 85 13 000 gps 86 13 200 gps 87 13 400 gps 88 13 600 gps 89 13 800 gps 90 14 000 gps 91 14 200 gps 92 14 400 gps 93 14 600 gps 94 14 800 gps 95 15 000 gps 96 15 200 gps 97 15 400 gps 98 15 600 gps Level Preço por Bênção 99 15 800 gps 100 16 000 gps 101 16 200 gps 102 16 400 gps 103 16 600 gps 104 16 800 gps 105 17 000 gps 106 17 200 gps 107 17 400 gps 108 17 600 gps 109 17 800 gps 110 18 000 gps 111 18 200 gps 112 18 400 gps 113 18 600 gps 114 18 800 gps 115 19 000 gps 116 19 200 gps 117 19 400 gps 118 19 600 gps 119 19 800 gps 120+* 20 000 gps No global são 8 npcs você adiciona esse script em todos : 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 lvlp = getPlayerLevel(cid) soma = 200*lvlp-4000 if getPlayerBlessing(cid, 1) then selfSay("You have your blessing.", cid) return true end if msgcontains(msg, "The Spiritual Shielding") and lvlp < 30 and getPlayerMoney(cid) >= 2000 then doPlayerRemoveMoney(cid, 2000) selfSay("You have been blessed.", cid) doPlayerAddBlessing(cid, 1) doSendMagicEffect(getThingPos(cid), 12) if msgcontains(msg, "The Spiritual Shielding") and lvlp >= 30 and getPlayerMoney(cid) >= soma then doPlayerAddBlessing(cid, 1) doSendMagicEffect(getThingPos(cid), 12) selfSay("You have been blessed.", cid) doPlayerRemoveMoney(cid, soma) end else selfSay("You do not have enough money.", cid) end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) NÃO ESQUEÇA! Aqui é a bless que cada npc vai te dar : if getPlayerBlessing(cid, 1) then doPlayerAddBlessing(cid, 1) Cada npc da um valor, o primeiro npc da o 1, o segundo tem que dar o 2 e assim por diante!
  2. Não acontece nada, o player vai de poss em poss com doTeleportThing
  3. Vendo Sources OTX 8.6, capacidade de 800 players online !

  4. 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")
  5. 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
  6. 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
  7. 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.
  8. 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
  9. 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
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...