PDA

View Full Version : |Pedido| Ajuda ShopV3



LuizerA
11-08-2022, 03:24 AM
Queria utilizar a venda de kit completo do shop, mas tem um problema. Não utilizo a função de recuperar item. E ao comprar o kit, ele vai adicionando item por item no baú, e se acabar o espaço pra algum, ele pede pra usar a função de recuperar do shopping, que não utilizo, pois dizem que tem como dupar.

Eu queria que ao comprar o KIT só fosse entregue caso tenha espaço pra todos os itens. Alguem consegue fazer essa mudança ?

Não tenho certeza, mas acredito que deve ser nessa função:


public function FindSlotsFree($buyKit = false) {
for($i = (int)0; $i < 120; $i++)
{
if($this->Vault_Slots[$i]['Hex'] == str_pad("", DIVISOR, "F"))
{
$Full = false;
for($CTemp = 0; $CTemp < $this->X; $CTemp++)
{
for($LTemp = 0; $LTemp < $this->Y; $LTemp++)
{
$tempI = $i+1;
if(($tempI % 8) == 0 && $this->X > 1) $Full = true; //Necessário para não adcionar o item partindo ele para outra linha.
elseif(($tempI % 8) == 7 && $this->X > 2) $Full = true; //Necessário para não adcionar o item partindo ele para outra linha.
elseif(($tempI % 8) == 6 && $this->X > 3) $Full = true; //Necessário para não adcionar o item partindo ele para outra linha.
elseif(($tempI % 8) == 5 && $this->X > 4) $Full = true; //Necessário para não adcionar o item partindo ele para outra linha.
elseif($this->Vault_Slots[$i+$CTemp]['Free'] == false || $this->Vault_Slots[$i+$CTemp+(8*$LTemp)]['Free'] == false) $Full = true; else continue(1);
}
}
if($Full == false) {
$this->Place_Avaliable = $i;
break;
} else $this->Place_Avaliable = -1;
}
}
if($this->Place_Avaliable < 0 && $buyKit == false)
exit(Print_error("<ul><li>Infelizmente sua compra n&atilde;o foi realizada, pois n&atilde;o h&aacute; lugar para adicionar o item no bau. Entre no jogo e libere espa&ccedil;o.</ul></li>"));
elseif($this->Place_Avaliable < 0 && $buyKit == true) return false;

$this->Vault_Slots[$this->Place_Avaliable]['Free'] = false;
$this->Vault_Slots[$this->Place_Avaliable]['Hex'] = $this->Hex_ItemBuy;
$this->Vault_Slots[$this->Place_Avaliable]['Key'] = $this->ProductID;
$this->Vault_Slots[$this->Place_Avaliable]['Width'] = $this->X;
$this->Vault_Slots[$this->Place_Avaliable]['Height'] = $this->Y;
//var_dump($this->Vault_Slots);
return true;
}

LaMO
11-10-2022, 01:50 PM
Queria utilizar a venda de kit completo do shop, mas tem um problema. Não utilizo a função de recuperar item. E ao comprar o kit, ele vai adicionando item por item no baú, e se acabar o espaço pra algum, ele pede pra usar a função de recuperar do shopping, que não utilizo, pois dizem que tem como dupar.

Eu queria que ao comprar o KIT só fosse entregue caso tenha espaço pra todos os itens. Alguem consegue fazer essa mudança ?

Não tenho certeza, mas acredito que deve ser nessa função:


public function FindSlotsFree($buyKit = false) {
for($i = (int)0; $i < 120; $i++)
{
if($this->Vault_Slots[$i]['Hex'] == str_pad("", DIVISOR, "F"))
{
$Full = false;
for($CTemp = 0; $CTemp < $this->X; $CTemp++)
{
for($LTemp = 0; $LTemp < $this->Y; $LTemp++)
{
$tempI = $i+1;
if(($tempI % 8) == 0 && $this->X > 1) $Full = true; //Necessário para não adcionar o item partindo ele para outra linha.
elseif(($tempI % 8) == 7 && $this->X > 2) $Full = true; //Necessário para não adcionar o item partindo ele para outra linha.
elseif(($tempI % 8) == 6 && $this->X > 3) $Full = true; //Necessário para não adcionar o item partindo ele para outra linha.
elseif(($tempI % 8) == 5 && $this->X > 4) $Full = true; //Necessário para não adcionar o item partindo ele para outra linha.
elseif($this->Vault_Slots[$i+$CTemp]['Free'] == false || $this->Vault_Slots[$i+$CTemp+(8*$LTemp)]['Free'] == false) $Full = true; else continue(1);
}
}
if($Full == false) {
$this->Place_Avaliable = $i;
break;
} else $this->Place_Avaliable = -1;
}
}
if($this->Place_Avaliable < 0 && $buyKit == false)
exit(Print_error("<ul><li>Infelizmente sua compra n&atilde;o foi realizada, pois n&atilde;o h&aacute; lugar para adicionar o item no bau. Entre no jogo e libere espa&ccedil;o.</ul></li>"));
elseif($this->Place_Avaliable < 0 && $buyKit == true) return false;

$this->Vault_Slots[$this->Place_Avaliable]['Free'] = false;
$this->Vault_Slots[$this->Place_Avaliable]['Hex'] = $this->Hex_ItemBuy;
$this->Vault_Slots[$this->Place_Avaliable]['Key'] = $this->ProductID;
$this->Vault_Slots[$this->Place_Avaliable]['Width'] = $this->X;
$this->Vault_Slots[$this->Place_Avaliable]['Height'] = $this->Y;
//var_dump($this->Vault_Slots);
return true;
}

Eu consigo, e o André AMW também, mas seria um serviço pago pra ambos.