Jump to content

Scripting Pedido login.php compativel 12.20 com o gesior


Recommended Posts

.Qual servidor ou website você utiliza como base? 

https://chaitosoft.com/tfs-1-01-21-3-gesior-para-tibia-11/

Qual o motivo deste tópico? 

Reparar Erros login.php que e compativel apenas com o cliente 11 para funciona no cliente 12 gestorr

Erro ao tentar logar com o cliente na plataforma 12.00 e 12.20 no gesior 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Edited by leandronetx (see edit history)
Link to post
Share on other sites

na pasta raiz do seu site crie um arquivo chamado login.php e dentro dele adicione o seguinte código: 

<?php
$_GET['subtopic'] = 'login';
$_REQUEST['subtopic'] = 'login';
include('index.php');

 

na pasta pages crie outro arquivo chamado login.php e adicione o seguinte código:

<?php
header('Content-Type: application/json');

if(!defined('INITIALIZED'))
    exit;

function sendError($msg){
	$ret = [];
	$ret["errorCode"] = 3;
	$ret["errorMessage"] = $msg;
	die(json_encode($ret));
}
$request = file_get_contents('php://input');
$result = json_decode($request);
$action = isset($result->type) ? $result->type : '';

switch ($action) {
	case 'cacheinfo':
		die(json_encode([
			'playersonline' => $status['players'],
			'twitchstreams' => 0,
			'twitchviewer' => 0,
			'gamingyoutubestreams' => 0,
			'gamingyoutubeviewer' => 0
		]));
	break;

	case 'eventschedule':
		die(json_encode([
			'eventlist' => []
		]));
	break;
	case 'boostedcreature':
		die(json_encode([
			'boostedcreature' => false,
		]));
	break;
	case 'login':

		$port = Website::getServerConfig()->getValue('gameProtocolPort');

		$world = [
			'id' => 0,
			'name' => Website::getServerConfig()->getValue('serverName'),
			'externaladdressprotected' => Website::getServerConfig()->getValue('ip'),
			'externalportprotected' => $port,
			'externaladdressunprotected' => Website::getServerConfig()->getValue('ip'),
			'externalportunprotected' => $port,
			'previewstate' => 0,
			'location' => 'BRA',
			'anticheatprotection' => false,
			'pvptype' => array_search(Website::getServerConfig()->getValue('worldType'), ['pvp', 'no-pvp', 'pvp-enforced']),
			'istournamentworld' => false,
			'restrictedstore' => false,
			'currenttournamentphase' => 2
		];
		$characters = [];
		$account = null;

		$columns = 'name, level, sex, vocation, looktype, lookhead, lookbody, looklegs, lookfeet, lookaddons, deleted, lastlogin';

		$account = new Account();
		$account->loadByName($result->accountname);
		$current_password = Website::encryptPassword($result->password);
		if (!$account->isLoaded() || !$account->isValidPassword($result->password)) {
			sendError('Account name or password is not correct.');
		}
        $players = $SQL->query("select {$columns} from players where account_id = " . $account->getId() . " order by name asc")->fetchAll();
		foreach ($players as $player) {
			$characters[] = create_char($player);
		}
		$worlds = [$world];
		$playdata = compact('worlds', 'characters');
		$session = [
			'sessionkey' => "$result->accountname\n$result->password",
			'lastlogintime' => (!$account) ? 0 : $account->getLastLogin(),
			'ispremium' => (!$account) ? true : $account->isPremium(),
			'premiumuntil' => (!$account) ? 0 : (time() + ($account->getPremDays() * 86400)),
			'status' => 'active',
			'returnernotification' => false,
			'showrewardnews' => true,
			'isreturner' => true,
			'fpstracking' => false,
			'optiontracking' => false,
			'tournamentticketpurchasestate' => 0,
			'emailcoderequest' => false
		];
		die(json_encode(compact('session', 'playdata')));
	break;

	default:
		sendError("Unrecognized event {$action}.");
	break;
}

function create_char($player) {
	return [
		'worldid' => 0,
		'name' => $player['name'],
		'ismale' => intval($player['sex']) === 1,
		'tutorial' => false,
		'level' => intval($player['level']),
		'vocation' => Website::getVocationName($player['vocation']),
		'outfitid' => intval($player['looktype']),
		'headcolor' => intval($player['lookhead']),
		'torsocolor' => intval($player['lookbody']),
		'legscolor' => intval($player['looklegs']),
		'detailcolor' => intval($player['lookfeet']),
		'addonsflags' => intval($player['lookaddons']),
		'ishidden' => intval($player['deletion']) === 1,
		'istournamentparticipant' => false,
		'remainingdailytournamentplaytime' => 0
	];
}

 

Link to post
Share on other sites

  • 2 months later...

Man mesmo assim não consigo logar no client.

Coloco tanto a account com E-mail e senha, como a com a accont name e senha e diz que o password esta errado. estou utilizando o client do git 12.30

 

Link to post
Share on other sites

  • 4 weeks later...
Em 29/01/2020 em 04:59, amoxicilina disse:

Man mesmo assim não consigo logar no client.

Coloco tanto a account com E-mail e senha, como a com a accont name e senha e diz que o password esta errado. estou utilizando o client do git 12.30

 

 

Conseguiu utilizar o cliente 12.30?

Link to post
Share on other sites

Em 29/01/2020 em 04:59, amoxicilina disse:

Man mesmo assim não consigo logar no client.

Coloco tanto a account com E-mail e senha, como a com a accont name e senha e diz que o password esta errado. estou utilizando o client do git 12.30

 

 

Também estou tentando utilizar o cliente 12.30 mas recebo o mesmo erro. Alguém possui o login.php ou sabe como é que faz para utilizar o novo protocolo?

nbeTETb.png?1

 

Link to post
Share on other sites

Em 27/02/2020 em 09:20, VitorNM disse:

Também estou tentando utilizar o cliente 12.30 mas recebo o mesmo erro. Alguém possui o login.php ou sabe como é que faz para utilizar o novo protocolo?

 

Troque

$account->loadByName($result->accountname);

 

por:

$account->loadByName($result->email);

 Plague-OT Global - Version  12 
  Acesse nosso site

 Plague-Banner-Assinatura.gif.ddbd80f2c36669236cc6deecb16d9496.gif

 

 

Link to post
Share on other sites

Em 28/02/2020 em 13:06, Ricardo Monteiro disse:

Troque


$account->loadByName($result->accountname);

 

por:


$account->loadByName($result->email);

 

Então, após essa alteração, a conta é localizada e autenticada corretamente, mas quando entra em qualquer character, o cliente crasha... Tem ideia do quê pode ser?

nbeTETb.png?1

 

Link to post
Share on other sites

Em 03/03/2020 em 18:17, VitorNM disse:

Então, após essa alteração, a conta é localizada e autenticada corretamente, mas quando entra em qualquer character, o cliente crasha... Tem ideia do quê pode ser?

 

Algumas funções mudaram, você precisa modifica-las para poder logar sem crash.

Tipo sendMagicEffet/DistanceShoot
Alguma coisa no addCreature que nao lembro mais porem é a causa principal do crash
E alguns bytes ao logar mesmo...

É basicamente a mesma coisa que tentar logar no client 12 numa source com suporte até 1098/11.

 Plague-OT Global - Version  12 
  Acesse nosso site

 Plague-Banner-Assinatura.gif.ddbd80f2c36669236cc6deecb16d9496.gif

 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By miguelprojac
      Estou tentando adaptar o script de subir texto animados do chão pra versa TSF 1.3 - revscript.
      mas estou tendo um problema em oque colocar nessa parte do script:
      local positions = { { x = 32365, y = 32236, z = 7 }, } local textoEvent = GlobalEvent("textoEvent") function textoEvent.onThink(interval) for i = 1, #positions do Position(positions[i]):doSendAnimatedText ...????? --------- ESSA LINHA ******* end return true end textoEvent:interval(50) textoEvent:register()    
      Não sei se estou no caminho certo, então se alguem que manja ai puder me dar um help, agradeço!
       
    • By dscmanga
      .Qual servidor ou website você utiliza como base? 
      tsf 3.0
      Qual o motivo deste tópico? 
      Portal para os bosses das tasks não funcionam
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
      Boa noite pessoal, estou com problemas no portal dos bosses das tasks.
      Mesmo após terminar as tasks os portais não funcionam, eu verifique o RME e o UNIQUE ID esta correto, olhei no Script e tbm parece estar tudo em ordem.
      Cheguei a alterar o Unique para Action e tbm nada acontece.

      Os players não passam pelo portal. Alguém ja teve esse erro?
    • By samueldev
      Estou utilizando o TFS 1.3 e estou aprendendo a criar spells, fiz uma spell mas a condition não está funcionando, alguém sabe dizer o porque?
       
      local effect = 35 local effect2 = 32 local condition = Condition(CONDITION_PARALYZE) condition:setTicks(5 * 1000) local combat = Combat() combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE) combat:setParameter(COMBAT_PARAM_EFFECT, effect) local combat2 = Combat() combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_UNDEFINEDDAMAGE) combat2:setParameter(COMBAT_PARAM_EFFECT, effect2) combat2:addCondition(condition) local area = createCombatArea({     {1,3,1} }) combat:setArea(area) combat2:setArea(area) function onGetFormulaValues(player, level, magicLevel)     local min = (level / 5) + (magicLevel * 1.4) + 3     local max = (level / 5) + (magicLevel * 2.2) + 8     return -min, -max end combat:setCallback(CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") local function execute(creature, variant)     combat2:execute(creature, variant) end function onCastSpell(creature, variant)     combat:execute(creature, variant)     addEvent(execute, 400, creature:getId(), variant)     return true end  
    • By Juliet
      .Qual servidor ou website você utiliza como base? 
      Dbo
      Qual o motivo deste tópico? 
      Erro no auto loot (Talk Actions)
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
      function ExistItemByName(name) -- by vodka local items = io.open("data/items/items.xml", "r"):read("*all") local get = items:match('name="'..name..'"') if get == nil or get == "" then return false end return true end local function getPlayerList(cid) local tab = {} if getPlayerStorageValue(cid, 04420021) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420021)) end if getPlayerStorageValue(cid, 04420031) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420031)) end if getPlayerStorageValue(cid, 04420041) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420041)) end if getPlayerStorageValue(cid, 04420051) ~= -1 then table.insert(tab, getPlayerStorageValue(cid, 04420051)) end if #tab > 0 then return tab end return false end local function addToList(cid, name) local itemid = getItemIdByName(name) if getPlayerList(cid) and isInArray(getPlayerList(cid), itemid) then return false end if getPlayerStorageValue(cid, 04420021) == -1 then return doPlayerSetStorageValue(cid, 04420021, itemid) elseif getPlayerStorageValue(cid, 04420031) == -1 then return doPlayerSetStorageValue(cid, 04420031, itemid) elseif getPlayerStorageValue(cid, 04420041) == -1 then return doPlayerSetStorageValue(cid, 04420041, itemid) elseif getPlayerStorageValue(cid, 04420051) == -1 then return doPlayerSetStorageValue(cid, 04420051, itemid) end end local function removeFromList(cid, name) local itemid = getItemIdByName(name) if getPlayerStorageValue(cid, 04420021) == itemid then return doPlayerSetStorageValue(cid, 04420021, -1) elseif getPlayerStorageValue(cid, 04420031) == itemid then return doPlayerSetStorageValue(cid, 04420031, -1) elseif getPlayerStorageValue(cid, 04420041) == itemid then return doPlayerSetStorageValue(cid, 04420041, -1) elseif getPlayerStorageValue(cid, 04420051) == itemid then return doPlayerSetStorageValue(cid, 04420051, -1) end return false end function onSay(cid, words, param) if param == "" then local fi = getPlayerStorageValue(cid, 04420021) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420021)) or "" local se = not vip.hasVip(cid) and "Não disponível para free account" or getPlayerStorageValue(cid, 04420031) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420031)) or "" local th = not vip.hasVip(cid) and "Não disponível para free account" or getPlayerStorageValue(cid, 04420041) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420041)) or "" local fo = not vip.hasVip(cid) and "Não disponível para free account" or getPlayerStorageValue(cid, 04420051) ~= -1 and getItemNameById(getPlayerStorageValue(cid, 04420051)) or "" local stt = getPlayerStorageValue(cid, 04421011) == 1 and "sim" or "não" local str = getPlayerStorageValue(cid, 04421001) == 1 and "sim" or "não" doPlayerPopupFYI(cid, "{Auto-Loot} ---Menu Auto Loot do jogador\n{Auto-Loot} ----------------\n{Auto-Loot} ---Coletar dinheiro: "..stt..". Para ligar/desligar: !autoloot gold \n{Auto-Loot} ---Coletar itens únicos: "..str..". Para ligar/desligar: !autoloot power\n{Auto-Loot} --Configuração dos slots:\n{Auto-Loot} ---Slot 1: "..fi.."\n{Auto-Loot} ---Slot 2: "..se.."\n{Auto-Loot} ---Slot 3: "..th.."\n{Auto-Loot} ---Slot 4: "..fo.."\n{Auto-Loot} ---Para adicionar um novo item aos slots: !autoloot add, <nome do item>\n{Auto-Loot} ---Para retirar um item dos slots: !autoloot remove, <nome do item>\n{Auto-Loot} ---Para limpar todos os slots utilize: !autoloot clear\n{Auto-Loot} ---Para informações de quanto você já fez utilizando a coleta de dinheiro, use: !autoloot goldinfo\n\nSe seu autoloot bugar use !autoloot desbug\n\n{Auto-Loot} ----------------") return true end local t = string.explode(param, ",") if t[1] == "power" then local check = getPlayerStorageValue(cid, 04421001) == -1 and "ligou" or "desligou" doPlayerSetStorageValue(cid, 04421001, getPlayerStorageValue(cid, 04421001) == -1 and 1 or -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você "..check.." o auto loot.") elseif t[1] == "gold" then local check = getPlayerStorageValue(cid, 04421011) == -1 and "ligou" or "desligou" doPlayerSetStorageValue(cid, 04421011, getPlayerStorageValue(cid, 04421011) == -1 and 1 or -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você "..check.." a coleta de dinheiro.") doPlayerSetStorageValue(cid, 04421021, 0) elseif t[1] == "goldinfo" then local str = getPlayerStorageValue(cid, 04421011) == -1 and "O sistema de coleta de dinheiro está desligado" or "O sistema já coletou "..getPlayerStorageZero(cid, 04421021).." gold coins" doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, str) elseif t[1] == "add" then if ExistItemByName(t[2]) then local item = getItemIdByName(t[2]) if isInArray({2160, 2148, 2152}, item) then return doPlayerSendCancel(cid, "Você não pode adicionar moedas no autoloot. Para coletar dinheiro use !autoloot gold") end if vip.hasVip(cid) then if getPlayerStorageValue(cid, 04420011) < 3 then if addToList(cid, t[2]) then doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." adicionado à sua lista do auto loot! Para ver sua lista diga !autoloot list") else doPlayerSendCancel(cid, t[2].." já está em sua lista!") end else doPlayerSendCancel(cid, "Sua lista já tem 4 itens! Você deve remover algum antes de adicionar outro.") end else if getPlayerStorageValue(cid, 04420011) == -1 then if addToList(cid, t[2]) then doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." adicionado à sua lista do auto loot! Para ver sua lista diga !autoloot") else doPlayerSendCancel(cid, t[2].." já está em sua lista!") end else doPlayerSendCancel(cid, "Você já tem um item adicionado no auto loot! Para adicionar outro, você deve remover o item atual.") end end else doPlayerSendCancel(cid, "Este item não existe!") end elseif t[1] == "remove" then if ExistItemByName(t[2]) then if removeFromList(cid, t[2]) then doPlayerSetStorageValue(cid, 04420011, getPlayerStorageValue(cid, 04420011) - 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, t[2].." removido da sua lista do auto loot!") else doPlayerSendCancel(cid, "Este item não está na sua lista!") end else doPlayerSendCancel(cid, "Este item não existe!") end elseif t[1] == "clear" then if getPlayerStorageValue(cid, 04420011) > -1 then doPlayerSetStorageValue(cid, 04420011, -1) doPlayerSetStorageValue(cid, 04420021, -1) doPlayerSetStorageValue(cid, 04420031, -1) doPlayerSetStorageValue(cid, 04420041, -1) doPlayerSetStorageValue(cid, 04420051, -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Lista limpa!") else doPlayerSendCancel(cid, "Sua lista ja esta limpa!") end elseif t[1] == "desbug" or t[1] == "desbugar" then doPlayerSetStorageValue(cid, 04420011, -1) doPlayerSetStorageValue(cid, 04420021, -1) doPlayerSetStorageValue(cid, 04420031, -1) doPlayerSetStorageValue(cid, 04420041, -1) doPlayerSetStorageValue(cid, 04420051, -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Desbugado!") elseif t[1] == "list" then local fi = getPlayerStorageValue(cid, 04420021) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420021)).."\n" or "" local se = getPlayerStorageValue(cid, 04420031) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420031)).."\n" or "" local th = getPlayerStorageValue(cid, 04420041) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420041)).."\n" or "" local fo = getPlayerStorageValue(cid, 04420051) ~= -1 and ""..getItemNameById(getPlayerStorageValue(cid, 04420051)).."\n" or "" doPlayerPopupFYI(cid, "O sistema auto loot está coletando:\n "..fi..""..se..""..th..""..fo) end return true end  
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

    • By So volto tarde
      Boas, resolvi me aventurar em LUA e me deparei em um ponto onde não sabia como utilizar dos parâmetros de uma função para ter um clean code, no JS, poderíamos usar no seguinte padrão:
       
      function somar(param1, param2) {
      let result = param1 + param2
      return result;
      }
      Executando a função, com somar(1, 4), o valor retornado seria 5.
       
      Não encontrei nenhuma forma semelhante nos derivados que andei mexendo. Alguém consegue dar uma luz?
       
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...

Important Information

Confirmação de Termo