Ir para conteúdo

[TFS 1.x | Global Windows e Linux 10.0 OLD/11.3] Halls of Hope, Wrap, Store, Prey, Imbuing, Events - Castle War, Snow Ball, Zombie, BattleField

Featured Replies

  • Respostas 140
  • Visualizações 40.9k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • RME 3.3 vou adicionar o link no git mais tarde compilar as sources, vou ver se faço isso a noite.

  • @up

  • eu ainda nao tentei, to somente com linux instalado no pc e nela compila normalmente com a lib boost 1.56, minhas ferias da faculdade ta chegando ai vou ter mais tempo pra mecher.

Posted Images

Postado
1 hora atrás, lmaque4 disse:

Galera,

Como desativo/modifico o tutorial ao criar um novo personagem?

cats.thumb.jpg.31b74ac92959f63372feed4610daa241.jpg
 
Agradeço desde já!

 

Acho que tem uma opção no login.php pro tutorial

Que versão do Tibia 11 você ta usando e qual script de login você usa?

 

Postado
24 minutos atrás, gombk disse:

Acho que tem uma opção no login.php pro tutorial

Que versão do Tibia 11 você ta usando e qual script de login você usa?

 

Poderia me passar um login.php? Aqui nao achei nada sobre o tutorial....

 

Uso esta versão do client proprio 

 

 

Postado
2 minutos atrás, lmaque4 disse:

Poderia me passar um login.php? Aqui nao achei nada sobre o tutorial....

 

Uso esta versão do client proprio 

 

 

Valeu, vou dar uma testada

Bom que eu saiba a parte de ativar o tutorial se encontra nessa parte do script login.php

 

while ($dbRet = $dbResource->fetch()) {
    $dict = array(
        "worldid" => 0,
        "name" => $dbRet["name"],
        "ismale" => (($dbRet["sex"]==1)?true:false),
        "tutorial" => (($dbRet["lastlogin"]>0) ? false:true)
    );
    $accArray[] = $dict;
    if($lastlogin<$dbRet["lastlogin"]){
        $lastlogin = $dbRet["lastlogin"];
    }
}

Onde creio eu que você possa editar a parte de "tutorial" => (($dbRet["lastlogin"]>0) ? false:true) para: "tutorial" => (($dbRet["lastlogin"]>0) ? false:false), que no caso está ocorrendo um statement de if, caso a condição de que você nunca tenha logado vai rolar o tutorial, aí é só trocar o último falso por true

 

Segue aí o script do login.php

<?php
/**
 * Created by PhpStorm.
 * User: jlcvp - leu
 * Date: 07/06/17
 * Time: 21:22
 */

require 'config/config.php';

// comment to show E_NOTICE [undefinied variable etc.], comment if you want make script and see all errors
error_reporting(E_ALL ^ E_STRICT ^ E_NOTICE);

// true = show sent queries and SQL queries status/status code/error message
define('DEBUG_DATABASE', false);

define('INITIALIZED', true);

if (!defined('ONLY_PAGE'))
    define('ONLY_PAGE', true);

// check if site is disabled/requires installation
include_once('./system/load.loadCheck.php');

// fix user data, load config, enable class auto loader
include_once('./system/load.init.php');

// DATABASE
include_once('./system/load.database.php');
if (DEBUG_DATABASE)
    Website::getDBHandle()->setPrintQueries(true);
// DATABASE END

/*error example:
{
    "errorCode":3,
    "errorMessage":"Account name or password is not correct."
}*/

//error function
function sendError($error_msg,$code=3){
    $retError = array();
    $retError["errorCode"] = $code;
    $retError["errorMessage"] = $error_msg;
    die(json_encode($retError));
}


$request_body = file_get_contents('php://input');
$result = json_decode($request_body, true);

$acc = $result["accountname"];
$password = $result["password"];

$query = $SQL->prepare("SELECT `id`,`premdays` FROM `accounts` WHERE `name` = :acc AND `password` = SHA1(:pass) LIMIT 1");

$query->bindValue(":acc", $acc);
$query->bindValue(":pass", $password);

$dbResource = $query->execute();

if (!$dbResource) {
    sendError("failed to get account.");
}

$dbRet = $query->fetch();
if (!dbRet) {
    sendError("failed to fetch account data");
}

$accId = $dbRet["id"];
$premdays = $dbRet["premdays"];

if (!$accId) {
    sendError("Account name or password is not correct.");
}

$dbResource = $SQL->query("SELECT `name`,`sex`,`lastlogin` FROM `players` WHERE `account_id` = $accId");

if (!$dbResource) {
    sendError("failed to get characters.");
}

$accArray = array();

$lastlogin=0;

while ($dbRet = $dbResource->fetch()) {
    $dict = array(
        "worldid" => 0,
        "name" => $dbRet["name"],
        "ismale" => (($dbRet["sex"]==1)?true:false),
        "tutorial" => (($dbRet["lastlogin"]>0) ? false:true)
    );
    $accArray[] = $dict;
    if($lastlogin<$dbRet["lastlogin"]){
        $lastlogin = $dbRet["lastlogin"];
    }
}

$data = array();

//TODO: Melhorar estrutura de dado aqui e preencher com os dados reais da account
$session = array(
    "sessionkey" => $acc . "\n" . $password,
    "lastlogintime" => $lastlogin,
    "ispremium" => ($premdays > 0 || $config["server"]["freePremium"]) ? true : false,
    "premiumuntil" => ($freePremium) ? (time() + 365 * 86400) : (time() + $premdays * 86400),
    "status" => "active"
);

$data["session"] = $session;

$playerData = array();

//TODO: melhorar estrutura de dado aqui para permitir multiple worlds
$world = array(
    "id" => 0,
    "name" => $config["server"]["serverName"],
    "externaladdress" => $config["server"]["ip"],
    "externalport" => $config["server"]["gameProtocolPort"],
    "previewstate" => 0,
    "location" => "BRA",
    "externaladdressunprotected" => $config["server"]["ip"],
    "externaladdressprotected" => $config["server"]["ip"]
);

$worlds = array($world);
$playerData["worlds"] = $worlds;
$playerData["characters"] = $accArray;


$data["playdata"] = $playerData;

echo json_encode($data);

 

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo