MA
pedido clients

MOD de Banco no OTC

Por mastof, 11 de dez. de 2017 em Tópicos Sem Resposta

2
1.2k
mastofM
11 de dezembro de 2017 às 18:37

Alguém teria um MOD para por no OTC onde o banco ficasse em uma janela

Quando falasse com o NPC abriria uma janela com as opções de Deposito, Sacar, quando você clicasse em Depositar ficasse uma barra para você digitar o valor e quando clicasse em Sacar aparacesse quanto você tem no banco e uma barra para você digitar o quanto quer sacar

Alguém teria algo assim, ou parecido, tentei fazer um mas crashou o OTC inteiro


se não tiverem sabe de algum tutorial que ensina mais ou menos isso?


Versão: 10.98

2 semanas depois...
GengoG
18 de dezembro de 2017 às 23:00

Cara eu tenho uns trecho de código que pode te ajudar, porem ele não está completo, espero que te de uma pequena base.

 

OtClient

function init()			
	connect(g_game, { onGameEnd = onGameEnd })	
	
	ProtocolGame.registerExtendedOpcode(177, function(protocol, opcode, buffer) onGetPlayerMoney(protocol, opcode, buffer) end)
    
    windowSysBank = g_ui.displayUI('bank.otui')
	windowSysBank:hide()
  
	lblMoney = windowSysBank:getChildById('lblMoney')
end

function show()
  windowSysBank:show()
  windowSysBank:raise()
  windowSysBank:focus()
  addEvent(function() g_effects.fadeIn(windowSysBank, 250) end)
  g_game.getProtocolGame():sendExtendedOpcode(177, 'refresh')
end

function onGetPlayerMoney(protocol, opcode, buffer)
	local money = string.explode(buffer, '/') 
    lblMoney:setText('Money: '..money[2])	
    -- Poderia colocar mais coisas mas esse trecho já da para ter uma noção
end

function setDepositMoney()
  g_game.getProtocolGame():sendExtendedOpcode(177, 'setDepositMoney')  
end

function getMoney()
 g_game.getProtocolGame():sendExtendedOpcode(177, 'getMoney')   
end

 

Pasta do seu servidor creaturescript

elseif opcode == op_crea.OPCODE_SYSTEM_BANK then
  if buffer == "refresh" then
    if isInArray({"setDepositMoney", "getMoney"}, buffer) then
      if buffer == "setDepositMoney" then
        setDepositMoney(cid,)	
      elseif buffer == "getMoney" then
        getMoney(cid)
      end
    end
  end
end

Na pasta lib em 106-main functions

function getMoney(cid)
   local str = "money/"..getPlayerBalance(cid)
   return doSendPlayerExtendedOpcode(cid, opcodes.OPCODE_SYSTEM_BANK, str)
end

 

OBS: Não acabei o código, mas creio que pode te dar uma base.

Gostaria é mesmo de fazer para tibia normal, mas não achei um servidor e nem otClient que usa opCode(Comunicação de Cliente para Servidor e Servidor para Cliente). o que estou usando é poketibia mas dá para entender, me desculpa por não acabar o código, mas assim que eu tiver tempo eu termino e posto tudo com mas explicações.