Jump to content
Close

MatteusDeli

Member
  • Content Count

    28
  • Joined

  • Last visited

About MatteusDeli

  • Rank
    Craftsman
  • Birthday 07/10/1997

Profile Information

  • Gender
    Masculino
  • I am
    Scripter

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. @juvelino Altere o codigo a cima pra esse, foi erro meu esqueci de mudar o andar, a variavel newPos esta com a posicao 7 e tem que ser 10, acredito que agora vai funcionar. local monsters_in_lobby = {} for posX=position_lobby.x1.x, position_lobby.x2.x do for posY=position_lobby.x1.y, position_lobby.x2.y do local newPos = {x=posX,y=posY,z=position_lobby.x1.z, stackpos=253} local monsters = getTopCreature(newPos).uid if (isMonster(monsters)) then if (monsters > 0) then table.insert(monsters_in_lobby, monsters) end end end end
  2. @juvelino Opa, estranho eu testei aqui e funcionou, tenta setar a área da sala denovo pegando as duas posições como ta na imagem e testa pra ver se vai. O erro na distro é pq acumulou muitos monstros na mesma posicao ai o quando voce puxa a alavanca ele nao consegue criar outro demon.
  3. @juvelino position_lobby = { -- Posição da sala no formato quadrado x1 = {x=174,y=61,z=7}, x2 = {x=180,y=67,z=7} } summons = { [1] = { monster= "Demon", pos= {x = 174 ,y = 61,z = 7}}, [2] = { monster= "Demon", pos={x = 180,y = 67,z = 7}}, --[3] = {monster = "Morgaroth", pos = {x= 181, y= 55, z= 7}}, } mensagemBroadcast = "Tem um time upando nas ruínas" function onUse(cid, item, fromPosition, itemEx, toPosition) local monsters_in_lobby = {} for posX=position_lobby.x1.x, position_lobby.x2.x do for posY=position_lobby.x1.y, position_lobby.x2.y do local newPos = {x=posX,y=posY,z=7, stackpos=253} local monsters = getTopCreature(newPos).uid if (isMonster(monsters)) then if (monsters > 0) then table.insert(monsters_in_lobby, monsters) end end end end if (#monsters_in_lobby == 0) then for i=1, #summons do doCreateMonster(summons[i].monster, summons[i].pos) end SetSwitch(item) doBroadcastMessage(mensagemBroadcast) else doPlayerSendCancel(cid, "Voce tem que matar todos os demons.") end return true end function SetSwitch(item) if (item.itemid == 1945) then doTransformItem(item.uid, item.itemid+1) end if (item.itemid == 1946) then doTransformItem(item.uid, item.itemid-1) end end
  4. @gleandro97 Caso não ache alguém que faça e ainda estiver precisando, eu posso fazer, só mandar mensagem inbox aqui mesmo.
  5. @poko360 sim, mais se o player sair da area que voce definiu no script ele já vai setar o storage pra -1, entao eu acho que nem precisa fazer outro script de movements, é só colocar um tp normal mesmo.
  6. @poko360 Acredito que agora vai funcionar 1 - Apague o script do globalevent/scripts e exclua a linha do globalevents.XML 2 - Vá em creatureevents/scripts e crie um arquivo chamado teleportSala.lua e cole isso: 2.1 - Registre o evento no creatureevents.XML e no Login.lua em creatureevents/scripts: 3 - Altere o script que esta em movements/scripts para este:
  7. @poko360 Veja se eu entendi o que voce quer, testa ai: Em globalevents altere o script para este No globalevent.xml altere para essa linha: Altere seu script em moveevents para este:
  8. @poko360 Veja se é isso que você quer. 1 - Vá em data/globalevents crie um arquivo chamado salaTempo.lua e adicione isso dentro: x_inicial = 158 -- Posição X inicial da sala x_final = 161 -- Posição X final da sala y_inicial = 52 -- Posição Y inicial da sala y_final = 55 -- Posição Y final da sala z_andar = 7 -- Andar da sala (Posição Z) teleport_effect = 10 -- Efeito do teleport position_teleport = {x=164,y=54,z=7}-- Posição aonde o player será teleportado depois dos 10 minutos. function onThink(interval, lastExecution) for i = x_inicial, x_final do for j = y_inicial, y_final do local position = {x=i,y=j,z=z_andar,stackpos=STACKPOS_TOP_CREATURE} local player = getTopCreature(position) if (isPlayer(player.uid)) then local newPos = doTeleportThing(player.uid, position_teleport) doSendMagicEffect(getThingPos(player.uid), teleport_effect) break end end end return true end 2 - Vá em data/globalevents e abra o arquivo globalevents.xml e cole essa linha dentro dele: <globalevent name="tempoSala" interval="600" script="tempoSala.lua" /> Configurando: (Pense em um retângulo, o retângulo seria a sala) x_inicial é o começo do retângulo. x_final é o final do retângulo. y_inicial é o ponto em cima do retângulo. y_final é o ponto em baixo do retângulo. z_andar é o andar que esta a sala.
  9. @Margela Só alterar na lista: local pokePrice = {["Bulbasaur"] = 3000, ["Ivysaur"] = 4500, --alterado v1.6["Venusaur"] = 12000,} Se voce quiser que o npc pague 20 dls pelo bulbasaur, é só voce alterar o 3000 para 30. Exemplo: 30 = 30 dls 300 = 300 dls 3.000 = 3k 30.000 = 30k 300.000 = 300k 3.000.000 = 3kk E assim por diante...
  10. @Margela posta o script do npc que vende pokemon pra nós ver
  11. @usoparagames Veja se é isso que você quer. 1 - INSTALANDO O SCRIPT NA LIB DO SERVIDOR 2 - CRIANDO O NPC DAILY 3 - CONFIGURANDO O CREATURESCRIPTS 4 - CONFIGURANDO UM NOVO POKEMON
  12. @ASSAFSAF Veja se é assim que você quer: 1 - data/scripts/actions crie um arquivo chamado questDaily.lua: local storageBlock = 451112 -- Não alterar este Storage local storage = 44541 local hour = 1 -- Tempo em horas que o player poderá pegar a recompensa novamente local effectChest = 10 -- Efeito Bau local itemRewardID = 2160 -- ItemID que será enviado para o depot local count = 1 -- Quantidade do Item local time = 60 * 60 * hour local messageSucess = "Voce recebeu uma recompensa do bau, ela foi enviada para o seu depot." -- mensagem que irá aparecer quando o player pegar a recompensa local messageFail = "Voce tem que esperar para poder pegar a quest novamente." -- mensagem que irá aparecer quando o player já pegou a recompensa function onUse(cid, item, fromPosition, itemEx, toPosition) local playerName = getCreatureName(cid) if (getPlayerStorageValue(cid, storage) - os.time() < storage) then local timeLeft = getPlayerStorageValue(cid, storage) - os.time() local time = { hour = math.floor(timeLeft/3600), minutes = math.ceil((timeLeft % 3600)/60) } doPlayerSendCancel(cid, messageFail) end if (getPlayerStorageValue(cid, storage) <= os.time()) then doPlayerSendMailByName(playerName, doCreateItemEx(itemRewardID, count), getPlayerTown(cid)) doSendMagicEffect(getThingPos(cid), effectChest) doPlayerSendCancel(cid,messageSucess) setPlayerStorageValue(cid, storage, os.time() + time) setPlayerStorageValue(cid, storageBlock, 1) end end Agora vamos registrar a ActionID do baú que fará a action no arquivo actions.XML. 2 - Vá em data/actions e abra o arquivo actions.xml e cole esta tag: <action actionid="9991" script="questDaily.lua"/> Agora vamos configurar a mensagem que vai ser enviada para o player quando ele tiver a permissão de pegar a recompensa outra vez. 3 - Vá em data/creaturescripts/scripts, crie um arquivo lua chamado questDaily.lua: local storage = 44541 -- Mesmo Storage que você colocou no Script do Bau (data/actions/scripts/dailyQuest.lua) local storageBlock = 451112 -- Não alterar este Storage local message = "Voce ja pode pegar a recompensa novamente." -- mensagem que será enviada quando o player tiver a permissao para pegar a recompensa novamente. function onThink(cid, interval) if(not isCreature(cid)) then return end if (os.time() == getPlayerStorageValue(cid, storage) and getPlayerStorageValue(cid, storageBlock) >= 1) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, message) setPlayerStorageValue(cid, storageBlock, -1) end return true end Agora vamos registrar o evento no Creaturescripts.XML 4 - Vá em data/creaturescripts e abra o arquivo creaturescripts.xml e cole está linha: <event type="think" name="questDaily" interval="10" event="script" value="questDaily.lua"/> Agora vamos registrar o evento no Login.lua 5 - Vá em data/creaturescripts/login.lua e cole esta linha la dentro: registerCreatureEvent(cid, "questDaily")
  13. @alexpaimel Posta o script walkback.lua que está em data/movements/scripts/ pra nós dar uma olhada
  14. @DouGlaS Mapper Substitua o script data/talkactions/createitem.lua do seu server por este: (aconselho a fazer um backup do antigo script caso queira voltar a usar o script antigo) -- Configurations -- local CONSOLE_COLOR = MESSAGE_STATUS_CONSOLE_BLUE -- Cor da mensagem que irá aparecer no Default local MESSAGE = "Voce nao tem permissao para criar este item." -- A mensagem que irá parecer caso ele não possa criar o item local stages = { -- [GroupId] = {Os Id's dos itens que serão bloqueados seguidos por virgula EX: 2160,2554,5564} [5] = {2160, 2454, 5777}, [6] = {3977, 3976, 5777}, } ------------------- function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") local ret = RETURNVALUE_NOERROR local pos = getCreaturePosition(cid) local id = tonumber(t[1]) for k,v in pairs(stages) do if (getPlayerGroupId(cid) == k) then for i=1, #v do if (id == v[i]) then doPlayerSendTextMessage(cid, CONSOLE_COLOR, MESSAGE) return true end end end end local amount = 100 if(t[2]) then amount = t[2] end local item = doCreateItemEx(id, amount) if(t[3] and getBooleanFromString(t[3])) then if(t[4] and getBooleanFromString(t[4])) then pos = getCreatureLookPosition(cid) end ret = doTileAddItemEx(pos, item) else ret = doPlayerAddItemEx(cid, item, true) end if(ret ~= RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1]) return true end doDecayItem(item) if(not isPlayerGhost(cid)) then doSendMagicEffect(pos, CONST_ME_MAGIC_RED) end return true end

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.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...