Ir para conteúdo

GiovaniRodrigo

Membro
  • Registro em

  • Última visita

Tudo que GiovaniRodrigo postou

  1. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Crie um arquivo chamado npcteleporvip.lua na pasta data/npc/scripts e cole isto 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 toPos = {x=160, y=154, z=7} local storage = 12345 if msgcontains(msg, 'ok') then if getPlayerStorageValue(cid, storage) >= 1 then doTeleportThing(cid, toPos) doSendMagicEffect(toPos, 10) npcHandler:say('You have been teleported to the VIP area, make good use of it!', cid) else npcHandler:say('Sorry, but you are not VIP and can not have access to this area.', cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configurando Crie um arquivo chamado NpcVIP.xml na pasta data/npc e cole isto <?xml version="1.0" encoding="UTF-8"?> <npc name="Nome Npc" script="data/npc/scripts/npcteleporvip.lua" walkinterval="25" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="128" head="97" body="100" legs="115" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hello, |PLAYERNAME|! Would like to know the VIP area? If yes says {ok}"/> <parameter key="message_walkaway" value="Hey Hey, where you go?"/> <parameter key="message_farewell" value="Goodbye |PLAYERNAME|."/> </parameters> </npc> Configurando Não testado, se der erro avise. Dúvidas? Me avise. Att. Giovani Rodrigo
  2. Crie um arquivo chamado fusionlever.lua na pasta data/actions/scripts e cole isto function onUse(cid, item, frompos, item2, topos) local cfg = { firstItemId = 8300, -- ID do primeiro item secondItemId = 8303, -- ID do segundo item rewardItemId = 8306 -- ID do item fundido } local firstItemPos = {x = 1020, y = 1018, z = 7, stackpos=2} -- Posição do primeiro item local secondItemPos = {x = 1021, y = 1018, z = 7, stackpos=2} -- Posição do segundo item local rewardItemPos = {x = 1021, y = 1020, z = 7} -- Posição do item fundido local getFirstItem = getThingfromPos(firstItemPos) local getSecondItem = getThingfromPos(secondItemPos) if item.uid == 9900 and item.itemid == 1945 and getFirstItem.itemid == cfg.firstItemId and getSecondItem.itemid == cfg.secondItemId then if doRemoveItem(getFirstItem.uid, 1) and doRemoveItem(getSecondItem.uid, 1) then doSendMagicEffect(firstItemPos, 2) doSendMagicEffect(secondItemPos, 2) doSendMagicEffect(rewardItemPos, 14) doCreateItem(cfg.rewardItemId, 1, rewardItemPos) doTransformItem(item.uid, item.itemid+1) doPlayerSendTextMessage(cid, 18, 'Congratulations! You merged '.. getItemNameById(cfg.firstItemId) ..' with '.. getItemNameById(cfg.secondItemId) ..' and got '.. getItemNameById(cfg.rewardItemId) ..'.') else return FALSE end elseif item.uid == 9900 and item.itemid == 1946 then if doRemoveItem(getFirstItem.uid, 1) and doRemoveItem(getSecondItem.uid, 1) then doSendMagicEffect(firstItemPos, 2) doSendMagicEffect(secondItemPos, 2) doSendMagicEffect(rewardItemPos, 14) doCreateItem(cfg.rewardItemId, 1, rewardItemPos) doTransformItem(item.uid, item.itemid-1) doPlayerSendTextMessage(cid, 18, 'Congratulations! You merged '.. getItemNameById(cfg.firstItemId) ..' with '.. getItemNameById(cfg.secondItemId) ..' and got '.. getItemNameById(cfg.rewardItemId) ..'.') else return FALSE end else doPlayerSendTextMessage(cid, 18, 'You didn\'t put the necessary items to make the merger.') end return TRUE end Configurando Adicione a seguinte linha no arquivo actions.xml que se encontra na pasta data/actions <action uniqueid="9900" event="script" value="fusionlever.lua" /> No map editor coloque a alavanca de ID 1945 e coloque o UniqueID da alavanca 9900 Testado e está 100% funcional. Dúvidas? Me avise. Att. Giovani Rodrigo
  3. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Não consome pois não configurei para consumir, achei que só precisava do item e não removia. Vou editar, copia a magia do mage de novo. Att. Giovani Rodrigo
  4. Reportado Dúvida Sanada Att. Giovani Rodrigo
  5. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Spell Paladin Spell Mage Efeitos para Spell Efeito a Distancia Efeito Direto no Player Testado e está 100% funcional. Dúvidas? Me avise. (OBS: Estou criando a spell do mage, daqui a pouco eu posto) Att. Giovani Rodrigo
  6. Na pasta data/movements/scripts crie um arquivo chamado tilevip.lua e cole isso function onStepIn(cid, item, position, fromPosition) if getPlayerStorageValue(cid, 13540) >= 1 then doPlayerSendTextMessage(cid, 18, 'Welcome to the City Vip.') else doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, 18, 'You are not vip, to get vip say !buyvip.') end end No arquivo movements.xml que se encontra na pasta data/movements adicione essa linha <movevent type="StepIn" actionid="4589" event="script" value="tilevip.lua" /> No map editor coloque o Action ID do piso que exige vip 4589. Testado e está 100% funcional. Dúvidas? Me avise. Att. Giovani Rodrigo
  7. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Será? rsrs Pesquisei e vi que algumas pessoas conseguiram com esse atributo.
  8. Tente esse código stat1 = {x=33281, y=32442, z=8, stackpos=1} stat2 = {x=33286, y=32444, z=8, stackpos=1} stat3 = {x=33284, y=32450, z=8, stackpos=1} stat4 = {x=33278, y=32450, z=8, stackpos=1} stat5 = {x=33276, y=32444, z=8, stackpos=1} oracle = {x=33284, y=32476, z=8, stackpos=1} stair1 = {x=33273, y=32458, z=8, stackpos=1} stair2 = {x=33273, y=32459, z=8, stackpos=1} uniqid = 9900 delay = 1 function gatevolta() getgate1 = getThingfromPos(stat1) getgate2 = getThingfromPos(stat2) getgate3 = getThingfromPos(stat3) getgate4 = getThingfromPos(stat4) getgate5 = getThingfromPos(stat5) getgate6 = getThingfromPos(oracle) getgate7 = getThingfromPos(stair1) getgate8 = getThingfromPos(stair2) if getgate1.itemid == 0 and getgate2.itemid == 0 and getgate3.itemid == 0 and getgate4.itemid == 0 and getgate5.itemid == 0 then doRemoveItem(getgate6.uid, 1) doRemoveItem(getgate7.uid, 1) doRemoveItem(getgate8.uid, 1) doCreateItem(3698, 1, stat1) doCreateItem(3698, 1, stat2) doCreateItem(3697, 1, stat3) doCreateItem(3697, 1, stat4) doCreateItem(3697, 1, stat5) doTransformItem(uniqid, 1946-1) else return FALSE end return TRUE end function onUse(cid, item, frompos, item2, topos) getgate1 = getThingfromPos(stat1) getgate2 = getThingfromPos(stat2) getgate3 = getThingfromPos(stat3) getgate4 = getThingfromPos(stat4) getgate5 = getThingfromPos(stat5) getgate6 = getThingfromPos(oracle) getgate7 = getThingfromPos(stair1) getgate8 = getThingfromPos(stair2) if item.uid == uniqid and item.itemid == 1945 and getgate1.itemid == 3698 and getgate2.itemid == 3698 and getgate3.itemid == 3697 and getgate4.itemid == 3697 and getgate5.itemid == 3697 then doRemoveItem(getgate1.uid, 1) doRemoveItem(getgate2.uid, 1) doRemoveItem(getgate3.uid, 1) doRemoveItem(getgate4.uid, 1) doRemoveItem(getgate5.uid, 1) doCreateItem(1448, 1, oracle) doCreateItem(7525, 1, stair1) doCreateItem(7521, 1, stair2) doTransformItem(item.uid, item.itemid+1) doPlayerSendTextMessage(cid, 22, 'Oh, there are stairs!') addEvent(gatevolta, delay*60*1000) else doPlayerSendTextMessage(cid, 26, 'Bad configuration') end return TRUE end Configurando Testado no TFS 8.6 DEV 0.4 (REV3884) e está 100% funcional. Dúvidas? Me avise. Att. Giovani Rodrigo
  9. Como assim mover a estátua? Poderia explicar melhor.
  10. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    No arquivo items.xml que se encontra na pasta data/items procure o item que você criou e adicione o seguinte atributo <attribute key="attackspeed" value="1500"/> Configurando Não testado, se der erro avise. Dúvidas? Me avise. Att. Giovani Rodrigo
  11. Você quer que volte as estátuas depois de certo tempo? Att. Giovani Rodrigo
  12. GiovaniRodrigo postou uma resposta no tópico em Playground (Off-topic)
    Sempre quis usar ele pra saber como é, mas jogo demais e a questão de compatibilidade quebra as pernas. Poderia deixar o Win7 e Ubuntu, mas toda vez que eu for jogar ter que reiniciar o PC e trocar de sistema fica meio difícil.
  13. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Crie um arquivo chamado skulldrop.lua na pasta data/creaturescripts/scripts e cole isso function onDeath(cid, lastHitKiller, mostDamageKiller) if getPlayerSkullType(cid) >= 1 then doCreatureSetDropLoot(cid, true) end return TRUE end Adicione essa linha no arquivo creaturescripts.xml que se encontra na pasta data/creaturescripts <event type="death" name="skullDropAll" event="script" value="skulldrop.lua"/> Adicione essa linha no arquivo login.lua que se encontra na pasta data/creaturescripts/scripts registerCreatureEvent(cid, "skullDropAll") Não testado, se der erro avise. Dúvidas? Me Avise Att. Giovani Rodrigo
  14. Nunca vi esse sistema, poderia explicar mais sobre as funções dele, pra que ele é usado exatamente. Att. Giovani Rodrigo
  15. GiovaniRodrigo postou uma resposta no tópico em Playground (Off-topic)
    Ubuntu. Seu computador pessoal?
  16. Tente postar o script do WoE. Att. Giovani Rodrigo
  17. Não é tão simples assim, se ele apenas remover do mapa ele pode perder funções no mesmo. Como por exemplo ela remover um UniqueID de uma quest, e ai como fica? Para ele retirar os UniqueID duplicados ele teria que alterar os scripts que usam o mesmo. Já sobre o erro do executável você pode estar certo. Att. Giovani Rodrigo
  18. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Script Death Modifique o arquivo playerdeath.lua que se encontra na pasta data/creaturescripts/scripts function onDeath(cid, corpse, deathList) local strings = {""} local t, position = 1, 1 local deathType = "killed" local toSlain, toCrushed = 3, 9 if #deathList >= toSlain then deathType = "slain" elseif #deathList >= toCrushed then deathType = "crushed" end for _, pid in ipairs(deathList) do strings[position] = t == 1 and "" or strings[position] .. ", " strings[position] = strings[position] .. getCreatureName(pid) .. "" t = t + 1 end for i, str in ipairs(strings) do if(str:sub(str:len()) ~= ",") then str = str .. "." end msg = getCreatureName(cid) .. " was " .. deathType .. " at level " .. getPlayerLevel(cid) .. " by " .. str end for _, oid in ipairs(getPlayersOnline()) do doPlayerSendChannelMessage(oid, "Death channel", msg, TALKTYPE_CHANNEL_O, CHANNEL_DEATH) end if isPlayer(cid) then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 100) doPlayerSetLossPercent(cid, PLAYERLOSS_SKILLS, 100) doPlayerSetLossPercent(cid, PLAYERLOSS_MANA, 100) doCreatureSetDropLoot(cid, true) db.executeQuery('DELETE FROM player_storage WHERE id '.. getPlayerGUID(cid) ..';') return TRUE end return TRUE end Script Logout Crie um arquivo chamado logoutloss.lua na pasta data/creaturescripts/scripts e cole isso if isPlayer(cid) then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 100) doPlayerSetLossPercent(cid, PLAYERLOSS_SKILLS, 100) doPlayerSetLossPercent(cid, PLAYERLOSS_MANA, 100) doCreatureSetDropLoot(cid, true) db.executeQuery('DELETE FROM player_storage WHERE id '.. getPlayerGUID(cid) ..';') return TRUE end return true end Adicione no arquivo creaturescripts.xml que se encontra na pasta data/creaturescripts a seguinte linha <event type = "logout" name = "logoutLoss" event = "script" value = "logoutloss.lua" /> Adicione no arquivo login.lua que se encontra na pasta data/creaturescripts/scripts a seguinte linha registerCreatureEvent(cid, "logoutLoss") Não foi testado, se der erro avise. Dúvidas? Me avise. Att. Giovani Rodrigo
  19. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Para perder tudo ao morrer, deslogar, etc... é só ir no banco de dados e na tabela players e colocar save 0. Toda vez que ele deslogar ou morrer ele não é salvo e volta tudo do zero. E na estrutura da tabela player deixa o default de save como 0, assim todo player novo estará com save 0 e você não irá precisar mudar toda vez. Avise me se der certo. Att. Giovani Rodrigo
  20. O fechamento do executável pode não ser causado pelos Unique ID duplicados, pois tenho um OT de teste que ele era map global, quando eu abri ele com map global tinha muito Unique ID duplicado e não fechava. Para retirar os Unique ID duplicados pode dar um trabalho, pois os Unique ID são usados em quest, missões, etc. Então se você apenas retirasse eles faltaria algo no seu OT, você deveria marcar os Unique ID e mudar na pasta do OT e no mapa. Daria um pouco de trabalho, mas é possivel retirar todos Unique ID. Att. Giovani Rodrigo
  21. Reportado Dúvida Sanada Att. Giovani Rodrigo
  22. GiovaniRodrigo postou uma resposta no tópico em Suporte Tibia OTServer
    Ele quer criar um site e não abrir um. Os programas essenciais são: Dreamweaver: Neste programa você cria os códigos de programação do seu site. Photoshop: Neste programa você pode criar as imagens usadas no site, como planos de fundo, botões, etc. Tudo que envolver uma imagem trabalhada pode ser feito nele. Fireworks: Neste programa você cria um template do site para ter uma base de como vai ser o site, é mais ou menos um rascunho. Nele você pode posicionar os menus e tudo que um site tem. (OBS: Você pode criar imagens tanto no Photoshop quanto no Fireworks.) Eu sigo uma sequência: Primeiro: Crio um rascunho em uma folha da papel. Segundo: Começo a trabalhar as imagens usando Photoshop. Terceiro: Com as imagens e botões já feitos começo a posicioná-los no Fireworks, para ter uma noção de como o site irá ficar depois de pronto. Quarto: Monto o site em códigos pelo Dreamweaver. Se você quiser implementar algo no seu site pode usar o Flash também. Aconselho as versões CS5 ou CS6 dos programas. Lembrando que, montar um site não é tão simples assim, na verdade não é nada simples se você quer montar algo de qualidade, fica mais difícil ainda se você for interagir com banco de dados e servidor de tibia, pois exige uma segurança muito boa. Att. Giovani Rodrigo
  23. Script atualizado e 100% funcional.
  24. Mande o script do VIP que você está usando neste momento. Att. Giovani Rodrigo
  25. Ata sou meio desligado, não presto muito atenção no que leio, acho que é por isso que meus scripts a maioria das vezes da erro, mas tudo bem. Att. Giovani Rodrigo

Informação Importante

Confirmação de Termo