Ir para conteúdo
  • Cadastre-se

MatteusDeli

Membro
  • Total de itens

    104
  • Registro em

  • Última visita

  • Dias Ganhos

    6

Tudo que MatteusDeli postou

  1. Nesse tópico você irá aprender a diferença entre ItemID, ActionID e UniqueID na criação de scripts. Primeiramente vamos começar com o ItemID, imagine que você está criando um simples script que o player pode ter acesso a uma área VIP, só que para ele entrar, primeiro precisará passar por um tile especial que possui o ID 471, até aqui tudo bem, só que qualquer player do servidor irá ter acesso também, já que não possui nenhuma restrição. Como poderíamos resolver isso? É aqui que entra a função da ActionID, com ela podemos dizer que os tiles que tiverem o valo
  2. @Strikerzerh Tem que criar o arquivo Traveler.xml na pasta data/npc e adicionar esse código nele. <?xml version="1.0" encoding="UTF-8"?> <npc name="Traveller" script="data/npc/scripts/traveler.lua" walkinterval="1000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="96" body="99" legs="76" feet="115" addons="1"/> </npc>
  3. @Strikerzerh Boa noite XML do Npc <?xml version="1.0" encoding="UTF-8"?> <npc name="Traveller" script="data/npc/scripts/traveler.lua" walkinterval="1000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="96" body="99" legs="76" feet="115" addons="1"/> </npc> Na pasta data/npc/scripts crie um arquivo chamado traveler.lua e adicione isso dentro: local TELEPORT_EFFECT = 10 local config = { ['Demonland'] = { position = { x=160, y=54, z=7 }, items = { [2160] = { count = 1 }, [2124] = { count = 1 }
  4. @deza Tem que ver se essa funcao onStatsChange existe no tfs 3996, pode ser que ela esteja com outro nome
  5. Tem varias maneiras, da para adicionar pelo RME, usar o comando /attr actionid Numero_da_action ou criar um script que já adicione para o player essa chave ja com a actionid setada.
  6. @Strikerzerh Boa tarde local config = { item = 8988, -- ID ou ACTIONID que o item do player será usado, exemplo seria uma porta teleport = { position = { x=160, y=54, z=7 }, -- Posição para onde o player será teleportado effect = 10 -- Efeito do teleporte } } function onUse(cid, item, fromPos, itemEx, toPos) if (itemEx.itemid == config.item or itemEx.actionid == config.item) then doTeleportThing(cid, config.teleport.position) doSendMagicEffect(getThingPos(cid), config.teleport.effect) end return true end <action itemid="ID_ITEM" script="ARQUIVO.lua" />
  7. @Fiapets Vê se é isso, não testei -- Stamine Trainer -- <movevent type="StepIn" actionid="22120" event="script" value="stamine_trainer.lua"/> -- <movevent type="StepOut" actionid="22120" event="script" value="stamine_trainer.lua"/> STAMINA_MESSAGE = "Você ganhou 1 minutos de Stamina." STAMINA_TIME = 60 * 2000 STAMINA_EFFECT = 12 STAMINA_ADD = 1 ACCESS_AREA_STORAGE = 154578 ACCESS_AREA_TIME = 1 -- Tempo definido em minutos ACCESS_AREA_DENIED_MESSAGE = "Você tem que esperar " ..ACCESS_AREA_TIME.. " minuto(s) para começar acessar a area de treino novamente."
  8. @lolksky Tenta assim local config = { itemY = 2160, -- Id do item Y message = 'A mensagem que ira aparecer quando usar o item X no item Y.', storage = 412311 } function onUse(cid, item, fromPosition, itemEx, toPosition) if (itemEx.itemid == config.itemY) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.message) doRemoveItem(item.uid, 1) doCreatureSetStorage(cid, config.storage, 1) end return true end Na hora de checar nos outros scripts tente assim: if getCreatureStorage(cid, 412311) >= 1 then
  9. @Gatinha Pirada Creio que seja um bug em outro script no caso auto_loot.lua que fica na pasta data/lib e no auto_loot da pasta creaturescripts/scripts/auto_loot.lua, tente trocar o valor da storage para outro.
  10. @Gatinha Pirada Boa tarde, tente assim: local monsters = {"Druid familiar"} -- todos os monsters que podem ser summonados. local time = 30 -- tempo em minutos para usar o item novamente. local storage = 10923 -- storage qualquer, que não esteja em uso. function onUse(cid, Item, fromPosition, itemEx, toPosition) if isInArray({2,4}, getPlayerVocation(cid)) then -----> vocaciones 4 8 puede aumentar mas local summon = getCreatureSummons(cid) if (table.maxn(summon) < 1) then if getPlayerStorageValue(cid, storage) - os.time() <= 0 then local summonRandom = monsters[math.r
  11. @lolksky Boa noite, seria isso? local config = { itemY = 2160, -- Id do item Y message = 'A mensagem que ira aparecer quando usar o item X no item Y.', storage = 412311 } function onUse(cid, item, fromPosition, itemEx, toPosition) if (itemEx.itemid == config.itemY) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.message) doRemoveItem(item.uid, 1) setPlayerStorageValue(cid, config.storage, 1) end return true end <action itemid="3114" script="nomedoarquivo.lua"/>
  12. @Muvuka Boa noite. local items = {} local sellTable = { [2498] = 40000, [2475] = 6000, [2497] = 9000, [2491] = 5000, [2462] = 4000, [2663] = 500, [2458] = 35, [2459] = 30, [2645] = 400000, [2195] = 40000, [2646] = 100000, [2472] = 100000, [2492] = 60000, [2494] = 90000, [2466] = 30000, [2487] = 20000, [2476] = 5000, [2656] = 15000, [2500] = 2500, [2463] = 400, [2465] = 200, [2464] = 100, [2470] = 80000, [2488] = 15000, [2477] = 6000, [2647] = 500, [2487] = 100, [2514] = 80000, [2520] = 40000, [2523] = 150000, [2522] = 10
  13. @ricardo3 Boa tarde, o script do outfit: local config = { exhaustionInSeconds = 30, storage = 34534 } function onSay(cid, words, param) if(exhaustion.check(cid, config.storage) == TRUE) then doPlayerSendCancel(cid, "You can change outfit only 1 time per " .. config.exhaustionInSeconds .. " seconds.") return TRUE end local playerGuild = getPlayerGuildId(cid) if(playerGuild == FALSE) then doPlayerSendCancel(cid, "Sorry, you're not in a guild.") return TRUE end local playerGuildLevel = getPlayerGuildLevel(cid) if(playerGuildLevel < GUILDLEVEL_LEADER) th
  14. @Glacial08 Boa tarde, seria isso? O script não está limitado a apenas 3 slots, pode ser quantos quiser, lembrando que quanto mais slots mais difícil. Crie um arquivo chamado slotsMachine.lua em data/actions/scripts e adicione isso nele: local createdItems = {} local config = { startPos = { x = 165, y = 47, z = 7}, -- Posicao aonde o player estara para poder usar a alavanca leverIds = { from = 9825, to = 9826, }, slotsPos = { -- As posicoes dos slots { x = 164, y = 45, z = 7}, { x = 165, y = 45, z = 7}, { x = 16
  15. @Carlinhous1996 Boa noite, seria isso? local config = { pos = {x=7508, y=12624, z=11}, stoneOne = 7522, stoneTwo = 7524, time = 20 -- time in seconds to remove the stone } function onUse(cid, item, fromPosition, itemEx, toPosition) local posItemOne = getTileItemById(config.pos, config.stoneOne).uid if (posItemOne > 0) then doRemoveItem(posItemOne, 1) doCreateItem(config.stoneTwo, config.pos) doPlayerSendTextMessage(cid,22,"a parede falsa foi removida.") doSendMagicEffect(config.pos, CONST_ME_MAGIC_RED) addEvent(function() local posItemTwo = getTileIt
  16. @underpunk Boa tarde, seria isso? npc.xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Stages" script="data/npc/scripts/stages.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="134" head="78" body="88" legs="0" feet="88" addons="3"/> </npc> data/npcs/scripts loadmodlib('npc_stages_config') local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local stage = nil function onCreatureAppear(cid) n
  17. @Breniinx talkactions/scripts dailyQuestIpTime.lua: local storage = 18000 -- Manter essa storage igual a que esta no bau local ip = getPlayerIp(cid) function onSay(cid, words, param) if getIpStorageValue(ip, storage) - os.time() > 0 then return false end doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Espere " .. timeString(getIpStorageValue(ip, storage) - os.time()) .. " para pegar um novo item!") return true end talkactions.xml: <talkaction words="/dailyTime" event="script" value="dailyQuestIpTime.lua"/> Créditos: @Vodkar
  18. @Gustavo0098 Boa tarde local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local config = { position = { x = 151, y = 57, z = 7 }, -- posicao para onde o player irá timeInHours = 24, -- tempo em horas para o teleport storage = 78186 } 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()
  19. @DeathRocks Tenta agora local storage = 62669 local message = "Voce nao pode treinar essa skill, escolha a estatua de sua vocacao." local config = { [1444] = { -- ID statue vocations = {4, 8}, -- Knight and Elite Knight skill = SKILL_SWORD }, [8836] = { vocations = {4, 8}, -- Knight, Elite Knight skill = SKILL_AXE }, [8834] = { vocations = {1, 2, 5, 6}, -- Sorcerer, Druid, Master Sorcerer, Elder Druid skill = SKILL__MAGLEVEL }, [8626] = { vocations = {4, 8}, -- Knight, Elite Knight skill = SKILL_CLUB }, [10353] = { vocations =
  20. @DeathRocks Boa noite, tenta assim: local storage = 62669 local message = "Voce nao pode treinar essa skill, escolha a estatua de sua vocacao." local config = { [1444] = { -- ID statue vocations = {4, 8}, -- Knight and Elite Knight skill = SKILL_SWORD }, [8836] = { vocations = {4, 8}, -- Knight, Elite Knight skill = SKILL_AXE }, [8834] = { vocations = {1, 2, 5, 6}, -- Sorcerer, Druid, Master Sorcerer, Elder Druid skill = SKILL__MAGLEVEL }, [8626] = { vocations = {4, 8}, -- Knight, Elite Knight skill = SKILL_CLUB }, [10353] = {
  21. @juvelino Opa, não testei mais creio que é isso: local config = { storage = 457771, cost = 1000000, -- Quantidade em gold (1000000 = 1kk) minimumLevel = 200, -- Level minimo necessario vocation = { sorcerer = { id = 1, name = "Sorcerer"}, druid = { id = 2, name = "Druid"}, paladin = { id = 3, name = "Paladin"}, knight = { id = 4, name = "Knight"}, } } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid)
  22. @deza Boa noite, não testei o script mais acho que seria isso em data/movements crie um arquivo chamado soul.lua e cole isso nele local config = { soul = 10, -- Quantidade de soul que será removida message = { text = "Voce nao possui soul suficiente para passar aqui", color = MESSAGE_STATUS_CONSOLE_BLUE } } function onStepIn(cid, item, position, fromPosition) local playerSoul = getPlayerSoul(cid) if not isPlayer(cid) then return false end if playerSoul < config.soul then doPlayerSendTextMessage(cid, config.message.color, config.mess
  23. Só alterar a ultima função por essa aqui: Lembre-se que a variável "z" na configuração tem que ser do menor para o maior, caso contrario pode dar erro. Exemplo: { { x = 10, y = 12, z = 4 }, { x = 11, y = 12, z = 7 } }. function teleportarJogadoresEmArea() for x = config.area[1].x, config.area[2].x do for y = config.area[1].y, config.area[2].y do for z = config.area[1].z, config.area[2].z do local pos = {x=x, y=y, z=z} local player = getTopCreature(pos).uid if isPlayer(player) then doTeleportThing(player, config.togo)
  24. @Doidodepeda Boa tarde, tenta assim: Altere a variável "area" na config, para a área aonde você quer que os players estejam para serem teleportados. local config = { tempo = 1*60, pos = {x=405, y=155, z=7, stackpos = 253}, area = { { x=100, y=100, z=7 }, { x=100, y=100, z=7 } }, tp = {x=167, y=43, z=7}, togo = {x=395, y=147, z=7}, premio = 12681, count = 5, effect = 27 } function onSay(cid, words, param, channel) doBroadcastMessage("The fight for the throne has begun, the last man standing there after "..config.tempo/60 .." minute(s) will be the winner.", 21
  25. @FearWar data\creaturescripts\scripts crie um arquivo chamado reflectStone.lua e adicione isso nele: local lvldodge = 48903 local percent = 0.5 function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then if (getPlayerStorageValue(cid, lvldodge)*3) >= math.random (0,1000) then value = math.ceil(value*(percent)) doCreatureAddHealth(attacker, -value) doSendAnimatedText(getCreaturePos(cid), "Reflected!", 6) return false end end return true end creaturescripts.xml: <
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo