-
Total de itens
489 -
Registro em
-
Última visita
-
Dias Ganhos
15
Tudo que Leoxtibia postou
-
function onUse(cid, item, frompos, item2, topos) playerpos = {x=topos.x, y=topos.y, z=topos.z, stackpos=2} player = getThingfromPos(playerpos) ml = getPlayerMagLevel(cid) lvl = getPlayerLevel(cid) formula = 800 if item2.itemid == 1 and ml >= 1 then doSendMagicEffect(playerpos,12) doCreatureAddHealth(cid ,formula) doCreatureAddMana(cid ,formula) if item.type > 1 then doChangeTypeItem(item.uid,item.type-9) else end end if item2.itemid == 1 and ml <= 1 then doSendMagicEffect(frompos,2) doPlayerSendCancel(cid,"You dont Have Magic Level to use this rune.") end if item2.itemid >= 2 then doPlayerSendCancel(cid,"You can only use this rune in you or in players.") doSendMagicEffect(frompos,2) end return 1 end
-
Pra que dois tópicos com o mesmo pedido? Dificultou até pra você porque eu já tinha respondido no outro. http://www.xtibia.com/forum/topic/189554-pedidoteleport-diferente/ Vlw, espero ter ajudado.
-
Em data/npcs/scripts, coloque no arquivo.lua do seu npc o seguinte: local focus = 0 local talk_start = 0 local target = 0 local following = false local attacking = false stime = 60 -- Tempo entre as falas do npc (em segundos) time = os.clock() function onThink() if (time + stime) < os.clock() then time = os.clock() local mensagens = {"Uma msg aqui", "Outra Msg aqui"} doBroadcastMessage(mensagens[math.random(1,table.maxn(mensagens))], 22) end end É só editar as msgs e o tempo entre uma e outra. Vlw, espero ter ajudado.
-
Em data/actions/scripts crie um arquivo.lua e cole isto dentro: local cfg = { stg = 7231, -- storage que vai ganhar corpse = 1111, -- id do corpo do monstro time = 10, --- tempo em segundos para o teleport sumir tppos = {x=1,y=1,z=1,stackpos=1}, --- posição que o tp aparecerá // n mexa no stackpos newpos = {x=1,y=1,z=1} -- posição que o tp levará } function onUse(cid, item, itemEx, position, fromPosition, toPosition) if itemEx.itemid == corpse then doSendMagicEffect(cfg.tppos, 10) doCreatureSay(cid, "O teleport sumirá em ".. cfg.time .." segundos", TALKTYPE_ORANGE_1) pid = doCreateTeleport(1387, cfg.newpos, cfg.tppos) addEvent(deleteTp, cfg.time*1000, pid) setPlayerStorageValue(cid, cfg.stg, 1) end return true end function deleteTp() doRemoveItem(getThingfromPos(cfg.tppos).uid,1) end O script é autoexplicativo, é só trocar pelos dados que você quer. Em actions.xml adicione a tag: <action itemid="XXXX" event="script" value="NOMEDOSEUARQUIVO.lua"/> Em XXXX você coloca o item que dará use no corpo do monstro. Depois, em data/movements/scripts, crie um arquivo.lua e cole isto dentro: function onStepIn(cid, item, position, fromPosition, toPosition) local cfg = { newpos = {x=1, y=1, z=1}, -- local que o teleport vai levar stg = 4128 -- storage que o player precisará ter } if getPlayerStorageValue(cid, cfg.stg) >= 0 then local fromPosition,toPosition = {x = 1, y = 1, z = 1},{x = 2, y = 2, z = 2} -- começo e final da área for x = fromPosition.x, toPosition.x do for y = fromPosition.y, toPosition.y do local pos = {x=x, y=y, z=fromPosition.z} local m = getTopCreature(pos).uid if m ~= 0 and isPlayer(m) then return doPlayerSendCancel(cid, "Alguém está fazendo a quest") end end end doTeleportThing(cid,cfg.newpos) doSendMagicEffect(cfg.newpos,10) else doTeleportThing(cid,fromPosition) doPlayerSendCancel(cid, "Você não tem permissão para entrar aqui.") end end Nessa linha: local fromPosition,toPosition = {x = 1, y = 1, z = 1},{x = 2, y = 2, z = 2} -- começo e final da área A primeira posição refere-se a posição do canto superior esquerdo da sala na qual o monstro estará e a segunda, a posição do canto inferior direito. Depois, em movements.xml cole a tag: <movevent type="StepIn" actionid="ACTION_ID_DO_TELEPORT" event="script" value="NOMEDOSEUARQUIVO.lua"/> É só colocar na tag o actionid do teleport que levará para a sala do monstro. Vlw, espero ter ajudado.
-
Tentei baixar e não estou conseguindo. Posta o script aí, fica mais fácil pra ajudar.
- 6 respostas
-
- already have
- this addon
-
(e 3 mais)
Tags:
-
Em actions/scripts crie um arquivo.lua e cole isto dentro: local cfg = { storage = 3256, -- n mexa idpedra = 1111, -- id da pedra idkey = 2222, --- id da chave que vai dar time = 5 *60 --- tempo para poder usar o item na pedra novamente [Ali está 5 minutos] } function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, cfg.storage) > os.time() then doPlayerSendTextMessage(cid, 22, "Você deve esperar ".. cfg.time .." segundos para fazer isso de novo.") return false end if itemEx.itemid == cfg.idpedra and itemEx.actionid == 3241 then doPlayerAddItem(cid, cfg.idkey, 1) doCreatureSay(cid, "Voce conseguiu uma ".. getItemNameById(cfg.idkey) ..".", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, cfg.storage, os.time() + cfg.time) end return true end O script já explica como editar. Para que o player não pudesse usar o item em todas as pedras desse id no seu servidor, coloquei um actionid. Então, a pedra que você quiser que o player possa pegar a chave, coloque actionid 3241. Se quiser que funcione em todas, retire essa parte: and itemEx.actionid == 3241. Depois, em actions.xml cole a tag: <action itemid="XXXX" event="script" value="NOMEDOSEUARQUIVO.lua"/> Em XXXX coloque o id do item que dará use na pedra. Vlw, espero ter ajudado.
-
Vá em actions.xml dê um cntrl+f e coloque 10000 para ver a qual arquivo se refere o seu baú e veja se o erro está nele.
-
Dúvida Sanada. Tópico reportado! Para você dar Rep a ele, é só clicar nessa setinha verde pra cima /\ no post dele.
-
dúvida Ajudar Com As Portas (Action) Docreateitem (Resolvido)
pergunta respondeu ao Bennyhappy de Leoxtibia em Scripts
Verdade, devo ter apagado sem querer ^^. Tópico reportado para moverem. -
Ok, Tópico reportado para moverem.
-
Crie um arquivo.lua em data/creaturescripts/scripts e cole isto dentro: function onAdvance(cid, skill, oldLevel, newLevel) local config = { [50] = {item = 2160, count = 50}, } if skill == 8 then for level, info in pairs(config) do if newLevel >= level and (getPlayerStorageValue(cid, 30700) == -1 or not (string.find(getPlayerStorageValue(cid, 30700), "'" .. level .. "'"))) then doPlayerAddItem(cid, info.item, info.count) doPlayerSendTextMessage(cid, 27, "Parabéns Guerreiro você atingiu o level "..newLevel.." e ganhou "..info.count.." "..getItemNameById(info.item)..".") local sat = getPlayerStorageValue(cid, 30700) == -1 and "Values: '" .. level .. "'" or getPlayerStorageValue(cid, 30700) .. ",'" .. level .. "'" setPlayerStorageValue(cid, 30700, sat) end end end return TRUE end Em creaturescripts/scripts procure o arquivo login.lua e cole isto antes do ultimo return true: registerCreatureEvent(cid, "LevelItem") Em creaturescripts.xml adicione a tag: <event type="advance" name="LevelItem" event="script" value="NOMEDOSEUARQUIVO.lua"/> Para configurar, é só editar essa linha: [50] = {item = 2160, count = 50}, => [LEVEL QUE IRA GANHAR O ITEM] = {item = ID_DO_ITEM, count = QUANTIDADE} Vlw, espero ter ajudado.
-
dúvida Ajudar Com As Portas (Action) Docreateitem (Resolvido)
pergunta respondeu ao Bennyhappy de Leoxtibia em Scripts
Assim: function onUse(cid, item, fromPosition, itemEx, toPosition) local monstros ={ {{x = 9168, y = 8572, z = 7}, "Dragon"}, {{x = 9175, y = 8558, z = 7}, "Dragon"}, {{x = 9169, y = 8575, z = 7}, "Dragon"}, {{x = 9172, y = 8556, z = 7}, "Dragon"}, {{x = 9173, y = 8567, z = 7}, "Dragon"}, {{x = 9161, y = 8566, z = 7}, "Dragon"}, {{x = 9165, y = 8567, z = 7}, "Dragon"}, {{x = 9163, y = 8557, z = 7}, "Dragon"}, {{x = 9183, y = 8560, z = 7}, "Dragon"}, {{x = 9181, y = 8566, z = 7}, "Dragon"}, {{x = 9165, y = 8560, z = 7}, "Dragon"}, {{x = 9171, y = 8575, z = 7}, "Dragon Lord"}, {{x = 9184, y = 8557, z = 7}, "Dragon Lord"}, {{x = 9184, y = 8565, z = 7}, "Dragon Lord"}, {{x = 9177, y = 8556, z = 7}, "Dragon Lord"}, {{x = 9168, y = 8558, z = 7}, "Dragon Lord"}, {{x = 9165, y = 8555, z = 7}, "Dragon Lord"}, {{x = 9162, y = 8563, z = 7}, "Dragon Lord"}, {{x = 9175, y = 8575, z = 7}, "Dragon Lord"}, {{x = 9170, y = 8565, z = 7}, "Dragon Lord"}, {{x = 9169, y = 8562, z = 7}, "Dragon Lord"}, {{x = 9177, y = 8567, z = 7}, "Dragon Lord"}, {{x = 9169, y = 8568, z = 7}, "Dragon Lord Hatchling"}, {{x = 9178, y = 8573, z = 7}, "Dragon Lord Hatchling"}, {{x = 9182, y = 8570, z = 7}, "Dragon Lord Hatchling"}, {{x = 9178, y = 8563, z = 7}, "Dragon Lord Hatchling"} } if SevenFloor() == false then return doPlayerSendCancel(cid, "sorry already have monster.") end for _, summon in pairs(monstros) do doCreateMonster(summon[2], summon[1]) end doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) local walls = {{x=9166, y=8574, z=7, stackpos=1},{x=9173, y=8569, z=7, stackpos=1},{x=9180, y=8581, z=7, stackpos=1}} local doors = {9166, 5278, 9165} for i=1, 3 do if getTileItemById(walls[i], doors[i]).uid > 0 then return false else doCreateItem(doors[i],1,walls[i]) end end function SevenFloor() local fromPosition,toPosition = {x = 9155, y = 8552, z = 7},{x = 9191, y = 8589, z = 7} -- começo e final da ára for x = fromPosition.x, toPosition.x do for y = fromPosition.y, toPosition.y do local pos = {x=x, y=y, z=fromPosition.z} local m = getTopCreature(pos).uid if m ~= 0 and isMonster(m) then return false end doCleanTile(pos) end end return true end -
Qual o erro dos baús? Não abrem? Dá algum erro no distro? Dê look em um desses baús e manda aqui pra q agente possa te ajudar melhor.
-
O script da anihi você pode encontrar neste tópico: http://www.xtibia.com/forum/topic/184621-algumas-levers-reformuladas/
-
Em creaturescripts/scripts crie um arquivo.lua e cole isto dentro: local item = getPlayerSlotItem(cid, ID_SLOT).itemid == ID_DO_ITEM function onDeath(cid, lastHitKiller, mostDamageKiller) if getPlayerSkullType(cid) >= 4 then doCreatureSetDropLoot(item, false) else doCreatureSetDropLoot(item, false) end return true end Em creaturescripts/scripts/login.lua cole, antes do return true: registerCreatureEvent(cid, "noDrop") Em creaturescripts.xml, cole a tag: <event type="death" name="noDrop" event="script" value="NOMEDOSEUARQUIVO.lua"/> É só editar o ID_SLOT e o ID_DO_ITEM. Em alguns servers, a depender do distro, não funciona com red skull... deve ser algum problema no distro mesmo. Vlw, espero ter ajudado aí.
-
Ok, tópico reportado para moverem.
-
function onSay(cid, words, param) if getTilePzInfo(getPlayerPosition(cid)) == FALSE then doPlayerSendCancel(cid,"você não esta em protection zone.") elseif getPlayerSkullType(cid) == 3 then doCreatureSetSkullType(cid, 0) doRemoveCreature(cid) else doRemoveCreature(cid) end return TRUE end
-
Sobre o dos skulls: redSkullLength = 48 * 60 * 60 blackSkullLength = 48 * 60 * 60 Sobre o do trap, você pode achar nesse tópico: http://www.xtibia.com/forum/topic/186630-system-anti-trap-low-level/ Espero ter ajudado, abraços.
-
Cara, explica isso direito aí. Você quer que só possa o usar o comando em pz não é? Como que um pk vai tá dentro do pz? Você quer que tire o pk dele se ele estiver fora?
-
Em talkaction/script, crie um arquivo.lua e cole isto dentro: function onSay(cid, words, param, channel) doPlayerSendChannelMessage(cid, false, '[Kawrl]SnOR: Este channel e so para tirar dúvidas sobre o modo de jogo e não sobre spoilers de quests e etc..',TALKTYPE_CHANNEL_O,7) end Em talkactions.xml cole a tag: <talkaction words="/help" script="NOMEDOSEUARQUIVO.lua"/> Ali coloquei o id do Help Channel como 7, que nem você falou. Em alguns o id é 9, se for 9 mesmo, é só colocá-lo no lugar do 7. Vlw, espero ter ajudado.
-
Então cara, é só você colocar só os monstros que quiser, siga o script desse link: http://www.xtibia.com/forum/topic/151636-simple-task-20/ Mas, em vez de colocar o data/lib que tem lá, você coloca esse: tasktabble = { ["minotaur"] = {storage_start = 200201, storage = 9100,count = 12,exp = 1000,reward = {{2656,1},{7730,1},{2152,20}}}, ["dragon"] = {storage_start = 200202, storage = 9101,count = 14,exp = 2000,reward = {{2152,50}}}, ["necromancer"] = {storage_start = 200203, storage = 9102,count = 25,exp = 4000,reward = {{2462,1},{2648,1},{2152,35}}} } function CheckTask(cid) for k, v in pairs(tasktabble) do if getPlayerStorageValue(cid,v.storage_start) >= 1 then return true end end return false end function finisheAllTask(cid) local x = true for k, v in pairs(tasktabble) do if tonumber(getPlayerStorageValue(cid,v.storage)) then x = false end end if x == true then local b = getGlobalStorageValue(63004) if b == -1 then b = 1 end if b < 11 then setGlobalStorageValue(63004,b+1) doBroadcastMessage('[Task Mission Complete] '..getCreatureName(cid)..' was the '..b..'° to finish the task!.') doPlayerAddPremiumDays(cid, 10) doItemSetAttribute(doPlayerAddItem(cid, 7369), "name", "trophy of the 10 firsts finish all task") end end end function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot=0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function getItemsFromList(items) -- by vodka local str = '' if table.maxn(items) > 0 then for i = 1, table.maxn(items) do str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1]) if i ~= table.maxn(items) then str = str .. ', ' end end end return str end function doAddItemsFromList(cid,items) -- by vodka if table.maxn(items) > 0 then for i = 1, table.maxn(items) do local count = items[i][2] while count > 0 do if isItemStackable(items[i][1]) then doPlayerAddItemStacking(cid, items[i][1], 1) else doPlayerAddItem(cid, items[i][1],1) end count = count - 1 end end end end function pairsByKeys(t, f) local a = {} for n in pairs(t) do table.insert(a, n) end table.sort(a, f) local i = 0 local iter = function () i = i + 1 if a[i] == nil then return nil else return a[i], t[a[i]] end end return iter end Daí só precisa editar a seu gosto: count = 12,exp = 1000,reward = {{2656,1},{7730,1},{2152,20}}}, ===> count = quantidade de monstros, exp = Experiência que o player ganhará ao terminar a task e falar com o npc, reward = Items que o player ganhará do NPC. Depois, é só você colocar um tile com a actionid na frente do teleport, para que só passe aqueles players que tiverem o storage da task. Actionid para teleport do Minotaur = 9000 / Actionid para dragon = 9101 / Actionid para necro = 9102
-
Talvez esses tópicos te ajude: http://www.xtibia.com/forum/topic/185160-simple-task-system-do-vodkart/ http://www.xtibia.com/forum/topic/151636-simple-task-20/ http://www.xtibia.com/forum/topic/173420-advanced-task-system-task-system-gesior-php/ Vlw, espero ter te ajudado, abraços.
-
Sim, eu sei. Você pode dar uma olhada nesse script pra ter uma base: http://www.xtibia.com/forum/topic/170485-spell-change-corpse/
-
Sobre o doTeleportThing você pode seguir esse exemplo mais ou menos: local function doSend(pos1, pos2, num) doSendDistanceShoot(getCreaturePosition(pos1), getCreaturePosition(pos2), 4) doSendDistanceShoot(getCreaturePosition(pos2), getCreaturePosition(pos1), 4) if type(num) == "number" and num == 1 then if math.random(1, 100) <= config.chance then local pp1 = getCreaturePosition(pos1) local pp2 = getCreaturePosition(pos2) doTeleportThing(pos2, pp1) doTeleportThing(pos1, pp2) else doPlayerSendCancel(cid, "Try again.") end end return true end E sobre só usar enquanto tiver atacando é isso: local target = getCreatureTarget(cid) if type(target) ~= "number" or target == 0 then doPlayerSendCancel(cid, "Selecione alguma criatura para usar o comando.") return false end
-
dúvida Bug Promotion, Quando Desloga Perde Ela
pergunta respondeu ao eduardo190696 de Leoxtibia em Scripts
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.