-
Total de itens
104 -
Registro em
-
Última visita
-
Dias Ganhos
6
Tipo de Conteúdo
Perfis
Fóruns
Calendário
Publique
Tudo que MatteusDeli postou
-
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
-
- tibia
- programacao
- (e 5 mais)
-
@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>
-
@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 }
-
@deza Tem que ver se essa funcao onStatsChange existe no tfs 3996, pode ser que ela esteja com outro nome
-
Scripting Alguem ajuda? [ 8.60 ]
MatteusDeli respondeu ao tópico de Strikerzerh em Suporte Tibia OTServer
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. -
Scripting Alguem ajuda? [ 8.60 ]
MatteusDeli respondeu ao tópico de Strikerzerh em Suporte Tibia OTServer
@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" /> -
(Resolvido)onStepOut Movements
MatteusDeli respondeu ao tópico de Fiapets em Suporte Tibia OTServer (Resolvidos)
@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." -
(Resolvido)Usar um item em outro e ganhar stg
MatteusDeli respondeu ao tópico de lolksky em Suporte Tibia OTServer (Resolvidos)
@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 -
Scripting Bug script action item de summon
MatteusDeli respondeu ao tópico de Gatinha Pirada em Suporte Tibia OTServer
@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. -
Scripting Bug script action item de summon
MatteusDeli respondeu ao tópico de Gatinha Pirada em Suporte Tibia OTServer
@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 -
(Resolvido)Usar um item em outro e ganhar stg
MatteusDeli respondeu ao tópico de lolksky em Suporte Tibia OTServer (Resolvidos)
@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"/> -
@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
-
@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
-
Pedido SCRIPT SLOT MACHINE "ROLETA" SIMPLES DE CASSINO PEDIDO DE SCRIPT
MatteusDeli respondeu ao tópico de Glacial08 em Suporte Tibia OTServer
@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 -
Scripting editar sistema de lavanca
MatteusDeli respondeu ao tópico de Carlinhous1996 em Suporte Tibia OTServer
@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 -
Pedido [TFS 0.4 860] {Pedido} NPC de quest de 3 etapas
MatteusDeli respondeu ao tópico de koyotestark em Suporte Tibia OTServer
@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 -
Scripting Quest diaria por IP
MatteusDeli respondeu ao tópico de leandroneves em Suporte Tibia OTServer
@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 -
Help NPC que teleporta a cada 24 horas
MatteusDeli respondeu ao tópico de Gustavo0098 em Suporte Tibia OTServer
@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() -
Suporte [AJUDA] ESTATUA VOCATION
MatteusDeli respondeu ao tópico de DeathRocks em Suporte Tibia OTServer
@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 = -
Suporte [AJUDA] ESTATUA VOCATION
MatteusDeli respondeu ao tópico de DeathRocks em Suporte Tibia OTServer
@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] = { -
(Resolvido)Como arrumar o npc que da vocation apos level 200?
MatteusDeli respondeu ao tópico de juvelino em Suporte Tibia OTServer (Resolvidos)
@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) -
(Resolvido)Tile que gasta soul ao entrar
MatteusDeli respondeu ao tópico de deza em Suporte Tibia OTServer (Resolvidos)
@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 -
Suporte Complementar Script
MatteusDeli respondeu ao tópico de Doidodepeda em Suporte Tibia OTServer
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) -
Suporte Complementar Script
MatteusDeli respondeu ao tópico de Doidodepeda em Suporte Tibia OTServer
@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 -
Normal Reflect stones (storage)
MatteusDeli respondeu ao tópico de shadowfall em Suporte Tibia OTServer
@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: <
TibiaKing
Open Tibia Server
Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.
Anuncie no TibiaKing
Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no OTKing e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!