Ir para conteúdo
  • Cadastre-se

Derivado [DXP] Alguem pode me ajudar com o held creator machine


Posts Recomendados

vídeo do erro \/

https://i.gyazo.com/71340b2b396d63d9d793b6273ab70cb9.mp4

 

Esse é a script pra me ajudarem.

Spoiler
local op_crea = {
      OPCODE_SKILL_BAR = opcodes.OPCODE_SKILL_BAR,
   OPCODE_POKEMON_HEALTH = opcodes.OPCODE_POKEMON_HEALTH,
   OPCODE_BATTLE_POKEMON = opcodes.OPCODE_BATTLE_POKEMON,
   OPCODE_FIGHT_MODE = opcodes.OPCODE_FIGHT_MODE,
   OPCODE_WILD_POKEMON_STATS = opcodes.OPCODE_WILD_POKEMON_STATS,
   OPCODE_REQUEST_DUEL = opcodes.OPCODE_REQUEST_DUEL,
   OPCODE_ACCEPT_DUEL = opcodes.OPCODE_ACCEPT_DUEL,
   OPCODE_YOU_ARE_DEAD = opcodes.OPCODE_YOU_ARE_DEAD,
   OPCODE_DITTO_MEMORY = opcodes.OPCODE_DITTO_MEMORY,
}
 
function onExtendedOpcode(cid, opcode, buffer)
 if opcode == op_crea.OPCODE_SKILL_BAR then
  if buffer == "refresh" then
   doOTCSendPlayerSkills(cid)
  end
 elseif opcode == op_crea.OPCODE_POKEMON_HEALTH then
  if buffer == "refresh" then
   doOTCSendPokemonHealth(cid)
  end
 elseif opcode == op_crea.OPCODE_BATTLE_POKEMON then
  if buffer == "refresh" then
   if #getCreatureSummons(cid) >= 1 then
    doSendPlayerExtendedOpcode(cid, op_crea.OPCODE_BATTLE_POKEMON, tostring(getCreatureSummons(cid)[1]))
   end
  end
 elseif opcode == op_crea.OPCODE_FIGHT_MODE then
  setPlayerStorageValue(cid, storages.fightMode, tonumber(buffer))
 elseif opcode == op_crea.OPCODE_WILD_POKEMON_STATS then
  doSendPlayerExtendedOpcode(cid, op_crea.OPCODE_WILD_POKEMON_STATS, pokeStatus.getVity(tonumber(buffer)).."|"..pokeStatus.getAtk(tonumber(buffer)).."|"..pokeStatus.getSpAtk(tonumber(buffer)).."|"..pokeStatus.getDef(tonumber(buffer)).."|"..pokeStatus.getSpDef(tonumber(buffer)).."|"..pokeStatus.getSpeed(tonumber(buffer)))
 
 --//Duel
 elseif opcode == opcodes.OPCODE_REQUEST_DUEL then
     --legenda: cid = player, sid = player convidado
     local cut = string.explode(buffer, "/")
     local pokeballsCount, sid = tonumber(cut[1]), getCreatureByName(cut[2])
          if isCreature(sid) then
       doIniteDuel(cid, sid, pokeballsCount)
    end
 elseif opcode == opcodes.OPCODE_ACCEPT_DUEL then
  local p2 = getCreatureByName(buffer)
     if isInvitedDuel(p2, cid) then
         doPantinNoDuel(cid, p2, getPlayerStorageValue(p2, duelTable.infoBalls), 5)
     end
    
 elseif opcode == opcodes.OPCODE_DITTO_MEMORY then
   local item = getPlayerSlotItem(cid, 8)
   if item.uid == 0 then doSendMsg(cid, "Coloque seu shiny ditto no slot correto.") return true end
   local pokeName = getItemAttribute(item.uid, "poke")
   if pokeName ~= "Shiny Ditto" then return true end
   
   if isInArray({"saveMemory1", "saveMemory2", "saveMemory3"}, buffer) then
      local copyName = getItemAttribute(item.uid, "copyName")
      if pokeName == copyName then doSendMsg(cid, "Transforme seu ditto primeiro.") return true end
      if not fotos[doCorrectString(copyName)] then return true end
      if isPokeInSlots(getItemAttribute(item.uid, "memoryDitto"), doCorrectString(copyName)) then doSendMsg(cid, "Esta copia já está salva em um slot.") return true end
       if buffer == "saveMemory1" then
        doItemSetAttribute(item.uid, "memoryDitto", saveSlot(getItemAttribute(item.uid, "memoryDitto"), 1, getItemInfo(fotos[doCorrectString(copyName)]).clientId)) -- getPortraitClientID(doCorrectString(copyName))))
       elseif buffer == "saveMemory2" then
        doItemSetAttribute(item.uid, "memoryDitto", saveSlot(getItemAttribute(item.uid, "memoryDitto"), 2, getItemInfo(fotos[doCorrectString(copyName)]).clientId))
       elseif buffer == "saveMemory3" then
        doItemSetAttribute(item.uid, "memoryDitto", saveSlot(getItemAttribute(item.uid, "memoryDitto"), 3, getItemInfo(fotos[doCorrectString(copyName)]).clientId))
       end
   elseif isInArray({"clearSlot1", "clearSlot2", "clearSlot3"}, buffer) then
      if buffer == "clearSlot1" then
        doItemSetAttribute(item.uid, "memoryDitto", saveSlot(getItemAttribute(item.uid, "memoryDitto"), 1, "?"))
       elseif buffer == "clearSlot2" then
        doItemSetAttribute(item.uid, "memoryDitto", saveSlot(getItemAttribute(item.uid, "memoryDitto"), 2, "?"))
       elseif buffer == "clearSlot3" then
        doItemSetAttribute(item.uid, "memoryDitto", saveSlot(getItemAttribute(item.uid, "memoryDitto"), 3, "?"))
       end
   elseif isInArray({"use1", "use2", "use3"}, buffer) then
      local summons = getCreatureSummons(cid)
      if #summons < 1 then doSendMsg(cid, "Coloque seu ditto para fora da pokeball.") return true end
      local pokeToTransform = getSlot(getItemAttribute(item.uid, "memoryDitto"), tonumber(buffer:explode("use")[1]))
      doCopyPokemon(summons[1], pokeToTransform, true)
   end
     
     
   local memory = getItemAttribute(item.uid, "memoryDitto")
      if not memory or memory == nil then
      doItemSetAttribute(item.uid, "memoryDitto", "?|?|?")
      memory = getItemAttribute(item.uid, "memoryDitto")
      end
   local memoryOne, memoryTwo, memoryTree = memory:explode("|")[1], memory:explode("|")[2], memory:explode("|")[3]
   
   local str = memoryOne .. "-".. memoryTwo .."-" .. memoryTree
      doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_DITTO_MEMORY, str)
     
     
 elseif opcode == opcodes.OPCODE_TV_CAM then -- TVCam
   --doCreatePrivateChannel(cid)
   --doInviteToPrivateChannel(cid, playerName)
   --doRemoveIntoPrivateChannel(cid, playerName)
   if getGlobalStorageValue(globalsTV) == -1 then -- iniciar sistema
    setGlobalStorageValue(globalsTV, "")
   end
   local action = buffer:explode("/")[1]
   
   if action == "create" then
    createChannel(cid, buffer)
    
   elseif action == "close" then
    closeInClientChannmel(cid)
    
   elseif action == "watch" then
   
    local playerToWatch = getCreatureByName(buffer:explode("/")[2])
       if isCreature(playerToWatch) then
       if getPlayerStorageValue(playerToWatch, storages.playerTVPass) ~= "" and getPlayerStorageValue(playerToWatch, storages.playerTVPass) ~= "notASSenha" then
          doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_TV_CAM, "requestPass|" .. getPlayerStorageValue(playerToWatch, storages.playerTVPass) .. "|" .. buffer:explode("/")[2])
       else
       doWatch(cid, playerToWatch)
       end
     else
      doSendMsg(cid, "Este player não está mais gravando.")
       end
      
   elseif action == "watchWithPass" then
   
    local playerToWatch = getCreatureByName(buffer:explode("/")[2])
       if isCreature(playerToWatch) then
          doWatch(cid, playerToWatch)
       else
      doSendMsg(cid, "Este player não está mais gravando.")
       end
      
   elseif action == "errou" then
         doSendMsg(cid, "Senha do digitada incorreta.")
   end
   
 elseif opcode == opcodes.OPCODE_PLAYER_SHOW_AUTOLOOT then -- Autoloot
   if buffer:find("load/") then
     local itens = getAllItensAutoLoot() 
     doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_PLAYER_SHOW_AUTOLOOT, (isCollectAll(cid) and "yes" or "no") .. "|" .. itens .. "|" .. getAllItensInMyListToClient(cid))
   elseif buffer:find("all") then
       doCollectAll(cid, true)
    doSendMsg(cid, "AutoLoot: Coletar tudo foi ativado.")
   elseif buffer:find("no") then
       doCollectAll(cid, false)
    doSendMsg(cid, "AutoLoot: Coletar tudo foi desativado.")
   else
     doSaveItems(cid, buffer)
   end
   
 elseif opcode == opcodes.OPCODE_PLAYER_SHOW_ONLINE then -- Janela de onlines do ADM
   doGetPlayersOnToADM(cid)
 elseif opcode == opcodes.OPCODE_PLAYER_SHOW_TRADE_HELD then
  local op = tonumber(buffer:explode("-")[2])
  local posP = getThingPos(cid)
  local posMachine = {{x = 717, y = 2692, z = 7}, {x = 716, y = 2692, z = 7}}
  if not doComparePositions(posMachine[1], posP) and not doComparePositions(posMachine[2], posP) then
     doSendMsg(cid, "Fique de frente com a maquina.")
     return true
  end
 
  if op == 1 then
     if doPlayerRemoveItem(cid, 15645, 20) then
        local tier = math.random(1, 2)
        doPlayerAddRandomHeld(cid, tier)
            else
        doSendMsg(cid, "Você precisa de 20 Devoted Tokens.")
     end
     return true
  elseif op == 2 then
     if doPlayerRemoveItem(cid, 15644, 70) then
        local tier = math.random(1, 3)
        doPlayerAddRandomHeld(cid, tier)
            else
        doSendMsg(cid, "Você precisa de 70 Mighty Tokens.")
     end
     return true
  elseif op == 3 then
     if doPlayerRemoveItem(cid, 15644, 150) then
        local tier = math.random(2, 4)
        doPlayerAddRandomHeld(cid, tier)
            else
        doSendMsg(cid, "Você precisa de 150 Mighty Tokens.")
     end
     return true
  elseif op == 4 then
     if doPlayerRemoveItem(cid, 15644, 300) then
        local tier = math.random(2, 6)
        doPlayerAddRandomHeld(cid, tier)
            else
        doSendMsg(cid, "Você precisa de 300 Mighty Tokens.")
     end
     return true
  elseif op == 5 then
     if doPlayerRemoveItem(cid, 15646, 30) then
        local tier = math.random(1, 3)
        doPlayerAddRandomHeld(cid, tier)
            else
        doSendMsg(cid, "Você precisa de 30 Hornored Tokens.")
     end
     return true
  elseif op == 6 then
     if doPlayerRemoveItem(cid, 15646, 75) then
        local tier = math.random(2, 4)
        doPlayerAddRandomHeld(cid, tier)
            else
        doSendMsg(cid, "Você precisa de 75 Hornored Tokens.")
     end
     return true
  elseif op == 7 then
     if doPlayerRemoveItem(cid, 15646, 150) then
        local tier = math.random(3, 6)
        doPlayerAddRandomHeld(cid, tier)
            else
        doSendMsg(cid, "Você precisa de 150 Hornored Tokens.")
     end
     return true
  end
 end
end
 
function getSlot(strings, slot)
 local slot1, slot2, slot3 = strings:explode("|")[1], strings:explode("|")[2], strings:explode("|")[3]
 local ret, flag = "", false
 for a, b in pairs(fotos) do
    if getItemInfo(fotos[a]).clientId == tonumber(slot1) and slot == 1 then
    ret = doCorrectString(a)
    flag = true
    elseif getItemInfo(fotos[a]).clientId == tonumber(slot2) and slot == 2  then
    ret = doCorrectString(a)
    flag = true
    elseif getItemInfo(fotos[a]).clientId == tonumber(slot3) and slot == 3 then
    ret = doCorrectString(a)
    flag = true
    end
     if flag then
     break
     end 
 end
 return ret
end
 
function saveSlot(strings, slot, poke)
 local slot1, slot2, slot3 = strings:explode("|")[1], strings:explode("|")[2], strings:explode("|")[3]
 local finalSlots = (slot == 1 and poke .. "|" or slot1 .. "|") .. (slot == 2 and poke .. "|" or slot2 .. "|") .. (slot == 3 and poke .. "|" or slot3)
  return finalSlots
end
 
function isPokeInSlots(strings, poke)
 if not fotos[poke] then return false end
 poke = getItemInfo(fotos[poke]).clientId
 local slot1, slot2, slot3 = strings:explode("|")[1], strings:explode("|")[2], strings:explode("|")[3]
 if tonumber(slot1) == poke then
    return true
 elseif tonumber(slot2) == poke then
    return true
 elseif tonumber(slot3) == poke then
    return true
 end
 return false
end

 

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo