Ir para conteúdo
  • Cadastre-se

FreePremium = FALSE - Bug


Posts Recomendados

Boa tarde Senhores.

 

Estou usando o Servidor do Malucooo OTX - Versão 11.47, e o que acontece, no config.lua está setado assim:

 

Citar

freePremium = false

 

E mesmo assim, quando cria uma conta no Servidor, com 0 dias de Premmy,, mostrando abaixo:

 

premy.png

 

 

Alguns falaram que é problema no login.php, porém, ja testei 2.

 

 

Login.php 1


 

Citar

 

<?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);

 

 

login.php 2

 

Citar

 

<?php
  /**
  * Created by Notepad++.
  * User: Malucooo - Erick Nunes
  * Remaked of login.php by JLCVP and parts of login.php by Monteiro. Thanks for both!
  * Date: 18/09/17
  * Time: 03:01
  */
   
  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."
  }*/
   
  # Declare variables with array structure
  $characters = array();
  $playerData = array();
  $data = array();
  $isCasting = false;
   
  # error function
  function sendError($msg){
  $ret = array();
  $ret["errorCode"] = 3;
  $ret["errorMessage"] = $msg;
   
  die(json_encode($ret));
  }
   
  # getting infos
  $request = file_get_contents('php://input');
  $result = json_decode($request, true);
   
  # account infos
  $accountName = $result["accountname"];
  $password = $result["password"];
   
  # game port
  $port = 7172;
   
  # check if player wanna see cast list
  if (strtolower($accountName) == "cast")
  $isCasting = true;
   
  if ($isCasting) {
  $casts = $SQL->query("SELECT `player_id` FROM `live_casts`")->fetchAll();
  if (count($casts[0]) == 0)
  sendError("There is no live casts right now!");
  foreach($casts as $cast) {
  $character = new Player();
  $character->load($cast['player_id']);
   
  if ($character->isLoaded()) {
  $char = array("worldid" => 0, "name" => $character->getName(), "ismale" => (($character->getSex() == 1) ? true : false), "tutorial" => false);
  $characters[] = $char;
  }
  }
   
  $port = 7173;
  $lastLogin = 0;
  } else {
  $account = new Account();
  $account->find($accountName);
   
  if (!$account->isLoaded())
  sendError("Failed to get account. Try again!");
   
  if ($account->getPassword() != Website::encryptPassword($password))
  sendError("The password for this account is wrong. Try again!");
   
  foreach($account->getPlayersList() as $character) {
  $char = array("worldid" => 0, "name" => $character->getName(), "ismale" => (($character->getSex() == 1) ? true : false), "tutorial" => false);
  $characters[] = $char;
  }
   
  $lastLogin = $account->getLastLogin();
  }
   
  $session = array(
  "sessionkey" => $accountName . "\n" . $password,
  "lastlogintime" => $lastLogin,
  "ispremium" => true,
  "premiumuntil" => 0,
  "status" => "active"
  );
   
  $world = array(
  "id" => 0,
  "name" => $config['server']['serverName'],
  "externaladdress" => $config['server']['ip'],
  "externalport" => $port,
  "previewstate" => 0,
  "location" => "BRA",
  "externaladdressunprotected" => $config["server"]["ip"],
  "externaladdressprotected" => $config["server"]["ip"]
  );
   
  $worlds = array($world);
   
  $data["session"] = $session;
  $playerData["worlds"] = $worlds;
  $playerData["characters"] = $characters;
  $data["playdata"] = $playerData;
   
  echo json_encode($data);

 

 

 

 

O meu intuito é deixar totalmente free, junto ao site, e adquirir premmy DENTRO do Jogo.

 

 

Alguem poderia me ajudar por favor?

Link para o post
Compartilhar em outros sites
13 minutos atrás, Leandro Marcondes disse:

Já tentou desativar aqui: 

 

Outra sugestão é verificar no Creaturescripts/other/login.lua, pois lá fala sobre Premium Account também

Então velhinho, ja desativei tbm, e nada aconteceu.

E no login.lua fucei e soh mostra sobre a stamina em relação a premmy mano... 

Link para o post
Compartilhar em outros sites

Área errada, deveria tentar editar o accountmanagement provavelmente, e não isso ai, e tem uma parte de ispremium nesse login.php q vc n testou.

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Este tópico foi movido para a área correta. Esta é uma mensagem automática!
Pedimos que leia as regras do fórum!

Spoiler

This topic has been moved to the correct area. This is an automated message!
Please read the forum rules.

 

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo