-
Total de itens
271 -
Registro em
-
Última visita
-
Dias Ganhos
12
Tudo que Kuro o Shiniga postou
-
Como assim? não consegui te entender
-
Já resolvi um problema parecido aqui no forum, segue o link e utilize o mesmo script https://www.xtibia.com/forum/topic/249175-resolvido-860-erro-na-troca-de-vocação
-
Posta o script, pelo jeito ele ta adicionando a promotion pela função setPlayerPromotionLevel Se for por ela não vai funcionar, toda vez que o player logar vai voltar a promotion anterior, você precisa fazer o sistema adicionar direto pelo banco de dados
-
Você quer fazer um sistema que heala apenas em certa poss ?
-
Você adicionou a tag de StepOut no movements.xml ? Não teria porque healar rapadio, o player pode esperar os 20s em cima do tile, e sair e pisar de novo, mas apos ele sair ele para o evento, e quando pisa começa tudo de novo <movevent type="StepOut" actionid="action_id_tile" event="script" value="arquivolua.lua"/>
-
[PEDIDO] Regem de stamina Training online
pergunta respondeu ao luciano0223 de Kuro o Shiniga em Scripts
Já existe esse sistema no forum https://www.xtibia.com/forum/topic/212632-ganhar-stamina-treinando/ -
porque não retira os acessos das quest ?
-
Toda vez que o player pisa no Tile o evento de cura é chamado, e toda vez que tu sai ele para, se ficar pisando toda hora vai healar rapido mesmo porque sempre chama o evento quando pisa, tenta assim : local config = { storageum = 11155, _soul = 3, seg = 2, effect = 0, evento = nil } function Soul(cid) if isPlayer(cid) then doSendMagicEffect(getThingPos(cid), config.effect) doPlayerAddSoul(cid, config._soul) config.evento = addEvent(Soul, 1000*config.seg, cid) doSendAnimatedText(getCreaturePosition(cid), "HEALTH", 170) end end function onStepIn(cid, item, pos, topos) if isPlayer(cid) and getPlayerStorageValue(cid, config.storageum) < os.time() then setPlayerStorageValue(cid, config.storageum, os.time() + config.seg*10) Soul(cid) else doSendMagicEffect(getThingPos(cid), 2) doPlayerSendTextMessage(cid, 22, "Voce nao pode retornar agora, espere por 20 segundos!") doTeleportThing(cid, topos) end return true end function onStepOut(cid, item, pos) stopEvent(config.evento) doSendAnimatedText(getCreaturePosition(cid), "STOP", 180) end Tem que adicionar as tag StepIn e StepOut no movements.xml <movevent type="StepIn" actionid="action_id_tile" event="script" value="arquivolua.lua"/> <movevent type="StepOut" actionid="action_id_tile" event="script" value="arquivolua.lua"/>
-
Qual servidor você utiliza, tem site seu servidor ?
-
show
-
PEDIDO] Botar a quest In Service of Yalahar Quest na missão 10
pergunta respondeu ao luciano0223 de Kuro o Shiniga em Scripts
Tem que modificar no script da quest, posta o script que consigo te ajudar -
Não vai ser teleportado nunca, a condição para ele ser teleportado é o player ter talkState == 3 elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'Yes')) and talkState[talkUser] == 3 then em nenhum momento ele ganhou esse talkState, então nunca vai ser teleportado, retira essa condição ou adicione a talkState no player
-
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!
-
[NPC] Walk Hunt - Npc Caminha ate a hunt.
tópico respondeu ao Kuro o Shiniga de Kuro o Shiniga em NPCs, monsters e raids
Não acontece nada, o player vai de poss em poss com doTeleportThing -
[NPC] Walk Hunt - Npc Caminha ate a hunt.
tópico respondeu ao Kuro o Shiniga de Kuro o Shiniga em NPCs, monsters e raids
Sim ^^ -
[SIMPLE] Battle Dungeon - Player X Monster
tópico respondeu ao Kuro o Shiniga de Kuro o Shiniga em CreatureScripts e Movements
Acredito que sim bro -
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")
-
[NPC] Walk Hunt - Npc Caminha ate a hunt.
um tópico no fórum postou Kuro o Shiniga NPCs, monsters e raids
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 -
[SIMPLE] Battle Dungeon - Player X Monster
tópico respondeu ao Kuro o Shiniga de Kuro o Shiniga em CreatureScripts e Movements
Show -
[SIMPLE] Battle Dungeon - Player X Monster
tópico respondeu ao Kuro o Shiniga de Kuro o Shiniga em CreatureScripts e Movements
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 -
[SIMPLE] Battle Dungeon - Player X Monster
um tópico no fórum postou Kuro o Shiniga CreatureScripts e Movements
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. -
O jogador que Ter X storage ganha tantos % de exp
pergunta respondeu ao AdilsonHacker de Kuro o Shiniga em Scripts
Saquei, vou ajeitar tudo isso e já posto -
O jogador que Ter X storage ganha tantos % de exp
pergunta respondeu ao AdilsonHacker de Kuro o Shiniga em Scripts
https://pastebin.com/1JW1ejCa -
O jogador que Ter X storage ganha tantos % de exp
pergunta respondeu ao AdilsonHacker de Kuro o Shiniga em Scripts
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
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.