-
Total de itens
489 -
Registro em
-
Última visita
-
Dias Ganhos
15
Tudo que Leoxtibia postou
-
Você já adicionou as cidades em Map>Edit Towns >Add?
-
Em alguns ots, os scripts dos potions têm a seguinte linha: setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100)) E esse "timeBetweenExActions" fica no config.lua, é só encontrar a linha lá no config.lua: timeBetweenExActions = 1000 E trocar o 1000 pelo exaushted que preferir. Espero ter ajudado.
-
Em data/spells/spells.xml dê cntrl+F e encontre a tag da sudden death. A linha é como a de baixo e você pode editar o exaushted nessa parte: <rune name="Sudden Death" id="2268" allowfaruse="1" charges="3" lvl="45" maglv="15" exhaustion="1300" needtarget="1" blocktype="solid" script="attack/sudden death.lua"/> É só você trocar o 1300 pelo exaushted que queira... quanto mais, maior o exausthed. Vlw, espero ter ajudado.
-
Ok, tópico reportado para moverem.
-
Já tinha editado lá vê se é isso que você quer.
-
Acho que é só clicar com o direito emcima da caixinha do depot e escolher a city a qual akele depot se refere. Eu faço assim e funciona ^^
-
local config = { pos = {x=1, y=1, z=1}, -- posicao do templo time = 1, --- tempo em horas wall = {x=90, y=1, z=1, stackpos=1}, -- posicao do id 8649 walli = {x=90, y=1, z=1,stackpos=1} -- posicao do id 8651 } function onSay(cid, item, position, words, param) local players = getPlayersOnline() for i=1, #players do doTeleportThing(players[i], config.pos) doPlayerPopupFYI(players[i], "Area vip está aberta por ".. config.time .." hora.") end db.executeQuery("UPDATE `players` SET `posx` = '"..config.pos.x.."', `posy` = '"..config.pos.y.."', `posz` = '"..config.pos.z.."';") doRemoveItem(getThingfromPos(config.wall).uid, 1) doRemoveItem(getThingfromPos(config.walli).uid, 1) addEvent(createStone, config.time*60*60*1000) addEvent(backTemple, config.time*60*60*1000) return true end function createStone() doCreateItem(8649, 1, config.wall) --- confira os ids doCreateItem(8651, 1, config.walli) end function backTemple() local players = getPlayersOnline() for i=1, #players do doTeleportThing(players[i], config.pos) doPlayerPopupFYI(players[i], "Area vip foi fechada.") end db.executeQuery("UPDATE `players` SET `posx` = '"..config.pos.x.."', `posy` = '"..config.pos.y.."', `posz` = '"..config.pos.z.."';") return true end
-
Em data/talkactions/scripts crie um arquivo.lua e cole isto dentro: local config = { pos = {x=1, y=1, z=1}, -- posicao do templo time = 1, --- tempo em horas wall = {x=1, y=1, z=1, stackpos=1}, -- posição da primeira wall // não mexa no stackpos walli = {x=1, y=1, z=1,stackpos=1}, -- posição da segunda wall idwall = 1111 -- id da wall } function onSay(cid, item, position, words, param) local players = getPlayersOnline() for i=1, #players do doTeleportThing(players[i], config.pos) end doBroadcastMessage("Area vip está aberta por ".. config.time .." hora.") doRemoveItem(getThingfromPos(config.wall).uid, 1) doRemoveItem(getThingfromPos(config.walli).uid, 1) addEvent(createStone, config.time*60*60*1000) addEvent(backTemple, config.time*60*60*1000) return true end function createStone() doCreateItem(config.idwall, 1, config.wall) doCreateItem(config.idwall, 1, config.walli) end function backTemple() local players = getPlayersOnline() for i=1, #players do doTeleportThing(players[i], config.pos) end doBroadcastMessage("Area vip foi fechada.") db.executeQuery("UPDATE `players` SET `posx` = '"..config.pos.x.."', `posy` = '"..config.pos.y.."', `posz` = '"..config.pos.z.."';") return true end Em talkactions.xml adicione a tag: <talkaction words="/openvip" script="NOMEDOSEUARQUIVO.lua"/> É só editar as posições e o id da wall no script. Vlw, espero ter ajudado.
-
Tinha bugado tudo lá, editei agora. Não dá conflito não, o seu tile vai ter actionid 13540 para q só vips possam passar.
-
Em data/actions/scripts crie um arquivo.lua e cole isto dentro: function onUse(cid, item, fromPosition, itemEx, toPosition) local days = 1 -- dias que serão adicionados local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") doRemoveItem(item.uid, 1) end Em actions.xml adicione a tag: <action itemid="ID_DO_ITEM" script="NOMEDOSEUARQUIVO.lua"/>
-
Não, não faz... você ali no seu usou item2,frompos,topos que também tá certo.
-
Como você me mandou pm pedindo uma ajuda, vou postar aqui pra tentar ajudar outros tbm: Ok, vamos dizer que você quer criar uma action que ao dar use no item o player recebe uma mensagem: Então, a sintaxe das actions é: function onUse(cid, item, itemEx, fromPosition, toPosition) onUse = ao usar cid = Creature Id item = é o item principal itemEx = o segundo item fromPosition = daPosição toPosition = paraPosição então o correto seria: function onUse(cid, item, itemEx, fromPosition, toPosition) end TODO IF TEM QUE TER UM END se João for para a rua então ele vai perder o lanche end que equivale a: if joao for para a rua then ele vai perder o lanche end Agora vamos fazer a função: function onUse(cid, item, itemEx, fromPosition, toPosition) -- sintaxe das actions if item.itemid == 2113 then --- se o id do item for 2113 então doPlayerSendCancel(cid, "Você usou o item") --- manda a mensagem: Você usou o item end --- end do if end -- end da função Espero ter ajudado, procure outros tutoriais aqui no xtibia e vá começando pelas coisas simples ^^.
-
Esse é meu primeiro script que fiquei vendo um tutorial por favor peguem leve é meu primeiro script to tao felliz Me digam se estiver certo Não amigo... Todo if tem que ter um end Toda função deve ser fechada com um end Você colocou item2.itemUNID Você colocou pra dar female e male. Aqui em doPlayerAddPremiumPoint(cid, days, -10) -- Você não colocou os days antes ou dentro da função. Sobre a função doPlayerAddOutfit... a sintaxe é doPlayerAddOutfit(cid, looktype, addons) Melhora isso aí e posta pra gente vê kk
-
Ok, fico feliz em ajudar =D Tópico reportado para moverem.
-
Acho que é só no config.lua. Lá tem uma linha assim: maxPlayers = 1000 e acho que quando ultrapassa esse valor começa a fila de espera. Você pode configurar se premiums vão poder pular a fila de espera, também no config.lua na linha: premiumPlayerSkipWaitList = false, se quiser que premiums pule, é só trocar o false por true.
-
Ok, mas provavelmente cortará o sistema de spells também.... não traria problema pra você? ...
-
Veja esse tópico, acho que vai te ajudar: http://www.xtibia.com/forum/topic/189850-npc-citizen-global/
-
Bem, via muita gente procurando por esse NPC na seção de Pedidos, então resolvi criá-lo. O Npc está igual ao global, salvo algumas falas. Assim que o player entregar os 100 minotaur leathers, deverá esperar 2 horas (configurável) para retornar ao npc. Diálogo (igual ao global): 1. Conhecendo a quest do addon. Jogador: Hi Lubo: Welcome to my adventurer shop, <name>! What do you need? Jogador: Addon Lubo: Sorry, the backpack I wear is not for sale. It's handmade from rare minotaur leather. Jogador: Minotaur Leather Lubo: Well, if you really like this backpack, I could make one for you, but minotaur leather is hard to come by these days. Are you willing to put some work into this? Jogador: Yes Lubo: Alright then, if you bring me 100 pieces of fine minotaur leather I will see what I can do for you. You probably have to kill really many minotaurs though... so good luck! 2. Entregando os minotaur leathers Jogador: Hi Lubo: Welcome to my adventurer shop, <name>! What do you need? Jogador: Backpack Lubo: Ah, right, almost forgot about the backpack! Have you brought me 100 pieces of minotaur leather as requested? Jogador: yes Lubo: Great! Alright, I need a while to finish this backpack for you. Come ask me later, okay? [2 Horas Depois] 3. Pegando o addon da backpack Jogador: Hi Lubo: Welcome to my adventurer shop, <name>! What do you need? Jogador: Addon Lubo: Just in time! Your backpack is finished. Here you go, I hope you like it. Jogador: Bye Lubo: Good bye. ___ Agora vamos ao script: Em data/npcs/scripts crie um arquivo.lua chamado citizen.lua e cole isto dentro: 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 time = 2 -- tempo em horas if msgcontains(msg, 'addon') then if getPlayerStorageValue(cid, 3422) <= 0 then if getPlayerStorageValue(cid, 3491) <= 0 then selfSay('Sorry, the backpack I wear is not for sale. It is handmade from rare {minotaur leather}.', cid) talkState[talkUser] = 0 else if getPlayerStorageValue(cid, 2411) - os.time() <= 0 then if getPlayerSex(cid) == 0 then doPlayerAddOutfit(cid, 136, 1) setPlayerStorageValue(cid, 3422, 1) selfSay('Just in time! Your backpack is finished. Here you go, I hope you like it.', cid) else doPlayerAddOutfit(cid, 128, 1) setPlayerStorageValue(cid, 3422, 1) selfSay('Just in time! Your backpack is finished. Here you go, I hope you like it.', cid) end else selfSay('This job requires patient and hability. Wait a little time.', cid) end end else selfSay('You have already taken your backpack.', cid) end elseif msgcontains(msg, 'minotaur leather') then selfSay('Well, if you really like this backpack, I could make one for you, but minotaur leather is hard to come by these days. Are you willing to put some work into this?', cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 and msgcontains(msg, 'yes') then selfSay('Alright then, if you bring me 100 pieces of fine minotaur leather I will see what I can do for you. You probably have to kill really many minotaurs though... so good luck!', cid) talkState[talkUser] = 2 elseif talkState[talkUser] == 2 and msgcontains(msg, 'backpack') then selfSay('Ah, right, almost forgot about the backpack! Have you brought me 100 pieces of minotaur leather as requested?', cid) talkState[talkUser] = 3 elseif talkState[talkUser] == 3 and msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid, 5878, 100) then setPlayerStorageValue(cid, 3491, 1) setPlayerStorageValue(cid, 2411, os.time()+time*60*60) selfSay('Great! Alright, I need a while to finish this backpack for you. Come ask me later, okay?', cid) talkState[talkUser] = 4 end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Em data/npcs crie um arquivo.xml chamado Lubo.xml e cole isto dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Lubo" script="data/npc/scripts/citizen.lua" walkinterval="5000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="38" body="39" legs="96" feet="118" addons="3"/> <parameters> <parameter key="message_greet" value="Welcome to my adventurer shop, |PLAYERNAME|! What do you need?"/> <parameter key="message_farewell" value="Good bye."/> <parameter key="module_keywords" value="1" /> </parameters> </npc> Vlw, espero ter ajudado alguém, abraços.
-
function onUse(cid, item, position, fromPosition, toPosition, itemEx) local level = 100 --- level para passar local item,count = 6569,500 --- id do item, quantidade local tp = {x=1, y=1, z=1} -- posição onde o player irá if getPlayerLevel(cid) >= level then if getPlayerItemCount(cid, item) >= count or getPlayerStorageValue(cid, 5672) > 0 then doTeleportThing(cid, tp) doPlayerRemoveItem(cid, item, count) setPlayerStorageValue(cid, 5672,1) doSendMagicEffect(tp, 10) else doPlayerSendTextMessage(cid, 22, "Você precisa ter ".. count .." ".. getItemNameById(item) ..".") end else doPlayerSendTextMessage(cid, 22, "Você precisa ter level ".. level ..".") end return true end
-
Eu já tinha te respondido em outro tópico cara. local porta = {x=28, y=55, z=7, stackpos = 1} --- local da porta, nao mexa no stackpos function onUse(cid, item, position, fromPosition, itemEx, toPosition) if getTileItemById(porta, 1111).uid > 0 then doTransformItem(getThingfromPos(porta).uid, 2222) doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) end return true end É só trocar a posição da porta e onde tem 1111 colocar o id da porta fechada, e 2222 o da porta aberta. Além de por o actionid na alavanca e na tag abaixo: Em actions.xml adicione a tag: <action actionid="ACTION_ID_DA_ALAVANCA" script="NOMEDOSEUARQUIVO.lua"/>
-
Ok, aí está: local maxlevel = 80 -- abaixo desse level os players poderão ir local npc = {x=1, y=1, z=1} --- local que o npc estará function onSay(cid, words, param) if getPlayerLevel(cid) < 80 then if getCreatureCondition(cid, CONDITION_INFIGHT) == FALSE then doTeleportThing(cid, npc) doSendMagicEffect(npc, 10) else doPlayerSendTextMessage(cid, 22, "Você não pode estar em battle para se teleportar.") end else doPlayerSendTextMessage(cid, 22, "Apenas players com level abaixo de ".. maxlevel .." tem acesso ao npc.") end return true end
-
local tileConfig = { kickMsg = "você precisa ser vip para entrar nessa area.", enterMsg = "Bem vindo a area Vip!", enterEffect = CONST_ME_MAGIC_RED, } function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) then if not vip.hasVip(cid) or getPlayerStorageValue(cid, 13500) - os.time() <= 0 then doTeleportThing(cid, fromPosition) doSendMagicEffect(fromPosition, 2) doPlayerSendCancel(cid, tileConfig.kickMsg) else doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) end end return true end
-
===NPC=== Crie um arquivo.lua em data/npcs/scripts e cole isto dentro: 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 t = { --- posições para level menor que 40 ["cyclops"] = {pos = {x=1,y=1,z=1}}, ["templo"] = {pos = {x=100,y=40,z=7}}, ["troll"] = {pos = {x=1,y=1,z=1}}, ["dwarf"] = {pos = {x=1,y=1,z=1}}, ["elf"] = {pos = {x=1,y=1,z=1}}, ["amazon"] = {pos = {x=1,y=1,z=1}}, ["orc"] = {pos = {x=1,y=1,z=1}} } local x = { -- posições para level maior que 40 ["templo"] = {go = {x=100,y=40,z=7}}, ["dragon"] = {go = {x=1,y=1,z=1}}, ["scarab"] = {go = {x=1,y=1,z=1}}, ["vampire"] = {go = {x=1,y=1,z=1}}, ["giant spider"] = {go = {x=1,y=1,z=1}}, ["hydra"] = {go = {x=1,y=1,z=1}}, ["dragon lord"] = {go = {x=1,y=1,z=1}} } local min = "Escolha para onde quer ser teleportado: {cyclops}, {templo}, {troll}, {dwarf}, {orc}, {elf}, {amazon}." --- msg para lvl menor q 40 local max = "Escolha para onde quer ser teleportado: {templo}, {dragon}, {scarab}, {vampire}, {giant spider}, {hydra}, {dragon lord}." -- msg para lvl maior que 40 if msgcontains(msg, "travel") or msgcontains(msg, "Travel") then if getPlayerLevel(cid) <= 40 then selfSay(min, cid) talkState[talkUser] = 1 elseif getPlayerLevel(cid) > 40 and getPlayerLevel(cid) <= 80 then selfSay(max, cid) talkState[talkUser] = 2 end elseif talkState[talkUser] == 1 then if t[msg] then doTeleportThing(cid, t[msg].pos) doSendMagicEffect(getCreaturePosition(cid), 10) selfSay("Boa viagem.", cid) talkState[talkUser] = 0 end elseif talkState[talkUser] == 2 then if x[msg] then doTeleportThing(cid, x[msg].go) doSendMagicEffect(getCreaturePosition(cid), 10) selfSay("Boa viagem.", cid) end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Em data/npcs, crie um arquivo.xml e cole isto dentro: <npc name="NOMEDOSEUNPC" script="data/npc/scripts/NOMEDOSEUARQUIVO.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="134" head="78" body="88" legs="0" feet="88" addons="3"/> <parameters> <parameter key="message_greet" value="Ola. Para mais informacoes de meus servicos diga {travel}." /> <parameter key="message_farewell" value="Tchau." /> <parameter key="message_walkaway" value="Tchau." /> </parameters> </npc> ===TALKACTION=== Em data/talkactions/scripts crie um arquivo.lua e cole isto dentro: local maxlevel = 80 -- abaixo desse level os players poderão ir local npc = {x=1, y=1, z=1} --- local que o npc estará function onSay(cid, words, param) if getPlayerLevel(cid) < 80 then doTeleportThing(cid, npc) doSendMagicEffect(npc, 10) else doPlayerSendTextMessage(cid, 22, "Apenas players com level abaixo de ".. maxlevel .." tem acesso ao npc.") end return true end Em talkactions.xml cole a tag: <talkaction words="!teleport" script="NOMEDOSEUARQUIVO.lua"/> ===CREATURESCRIPTS=== Em data/creaturescripts/scripts crie um arquivo.lua e cole isto dentro: function onAdvance(cid, skill, oldLevel, newLevel) if getPlayerLevel(cid) >= 70 and getPlayerLevel(cid) <= 80 then doPlayerSendTextMessage(cid, 18, "Lembre-se que depois do level 80 você não poderá usar o comando !teleport") end return true end Em creaturescripts/scripts/login.lua cole antes do return true: registerCreatureEvent(cid, "Notice") Em creaturescripts.xml cole a tag: <event type="advance" name="Notice" event="script" value=NOMEDOSEUARQUIVO.lua"/> Vlw, espero ter ajudado, abraços. @edit Percebi que level 80+ podiam se teleportar com o npc,agora já resolvi isso.
-
Em data/actions/scripts crie um arquivo.lua e cole isto dentro: function onUse(cid, item, position, fromPosition, toPosition, itemEx) local level = 100 --- level para passar local item,count = 6569,500 --- id do item, quantidade local tp = {x=1, y=1, z=1} -- posição onde o player irá if getPlayerLevel(cid) >= level then if getPlayerItemCount(cid, item) >= count then doTeleportThing(cid, tp) doSendMagicEffect(tp, 10) else doPlayerSendTextMessage(cid, 22, "Você precisa ter ".. count .." ".. getItemNameById(item) ..".") end else doPlayerSendTextMessage(cid, 22, "Você precisa ter level ".. level ..".") end return true end É só colocar o actionid na porta e substituir na tag abaixo. Em actions.xml cole a tag: <action actionid="ACTION_ID_DA_PORTA" script="NOMEDOSEUARQUIVO.lua"/>
-
Cara, o script é de segunda promotion, isso aconteceu aqui quando eu tinha colocado como se fosse 1ª promotion. Veja se não foi isso que aconteceu com você. Abraços.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.