[AJUDA]Lуgica
#1

Boa tarde, estou criando um sistema que quando o player loga cria um carro (se o player tiver um), porйm o fato do id do veнculo nгo ser fixo esta me enrolando, nгo consigo achar uma razгo lуgica pra este sistema, pensei assim:

o player loga e cria o veiculo (OBS: isso esta funcionando):
pawn Код:
new arquivo[56];
        format(arquivo, sizeof arquivo,"carros/%s.ini",playername2);
        if(dini_Exists(arquivo))
        {
         new Modelo = dini_Int(arquivo,"Modelo");
         new Float:CoordX = dini_Float(arquivo,"X");
         new Float:CoordY = dini_Float(arquivo,"Y");
         new Float:CoordZ = dini_Float(arquivo,"Z");
         new Float:CoordA = dini_Float(arquivo,"A");
         new Cor1   = dini_Int(arquivo,"Cor1");
         new Cor2   = dini_Int(arquivo,"Cor2");
         CarroCriado ++;
         CarroEspecial[CarroCriado] = CreateVehicle(Modelo,CoordX,CoordY,CoordZ,CoordA,Cor1,Cor2,600000);
         ChaveEsp[playerid] = CarroEspecial[CarroCriado];
         format(string2,128,""#COR_DESTAQUE"[Carro Especial] "#COR_TEXTO"Veнculo criado com exito: Dono: %s VeнculoID: %d",dini_Get(arquivo,"Dono"),CarroEspecial[CarroCriado]);
         SendClientMessage(playerid,-1,string2);
         format(string2,32,"Dono: %s",playername2);
         new Text3D:texto;
         texto = Create3DTextLabel(string2,0x008080FF,CoordX,CoordY,CoordZ,40.0,0);
         Attach3DTextLabelToVehicle( texto, CarroEspecial[CarroCriado], 0.0, 0.0, 1.0);
        }
Ai quando o player entra no veнculo (isso nгo funciona quando as variaveis sгo diferentes):
pawn Код:
if(vehicleid == CarroEspecial[CarroCriado])
 {
  if(CarroEspecial[CarroCriado] != ChaveEsp[playerid])
  {
   GameTextForPlayer(playerid,"~r~Sem chaves para dirigir este veiculo",5000,3);
   RemovePlayerFromVehicle(playerid);
  }
  else
  {
   GameTextForPlayer(playerid,"~y~Se beber nao dirija",5000,3);
  }
 }
Com as variaveis iguais esta funcionando, mas se sгo diferentes nгo acontece nada.

Espero que entendam, grato pela atenзгo.
Reply
#2

Nгo cheguei a testar use isso

Код:
public OnPlayerConnect(playerid)
{
    new tmp[256];
    new vehicleid;
    vehicleid = strval(tmp);
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    vehicleid[playerid] = CreateVehicle(vehicleid, X, Y, Z-1, 0.0, 126, 126, 25000);
    return 1;
}
Reply
#3

Meu problema nгo й na criaзгo do veнculo e sim na restriзгo de quem o usa.
pawn Код:
//Esta parte estб errada, nгo restringe, mas identifica se й o dono:
if(vehicleid == CarroEspecial[CarroCriado])
 {
  if(CarroEspecial[CarroCriado] != ChaveEsp[playerid])
  {
   GameTextForPlayer(playerid,"~r~Sem chaves para dirigir este veiculo",5000,3);
   RemovePlayerFromVehicle(playerid);
  }
  else
  {
   GameTextForPlayer(playerid,"~y~Se beber nao dirija",5000,3);
  }
 }
Reply
#4

Quote:
Originally Posted by yiakin
Посмотреть сообщение
Meu problema nгo й na criaзгo do veнculo e sim na restriзгo de quem o usa.
pawn Код:
//Esta parte estб errada, nгo restringe, mas identifica se й o dono:
if(vehicleid == CarroEspecial[CarroCriado])
 {
  if(CarroEspecial[CarroCriado] != ChaveEsp[playerid])
  {
   GameTextForPlayer(playerid,"~r~Sem chaves para dirigir este veiculo",5000,3);
   RemovePlayerFromVehicle(playerid);
  }
  else
  {
   GameTextForPlayer(playerid,"~y~Se beber nao dirija",5000,3);
  }
 }
Nгo consegui raciocinar bem, poderia se explicar melhor?
Reply
#5

Й uma espйcie de concessionбria, mas o veнculo й criado quando o player logar, entгo:

pawn Код:
CarroCriado ++;
         CarroEspecial[CarroCriado] = CreateVehicle(Modelo,CoordX,CoordY,CoordZ,CoordA,Cor1,Cor2,600000);
         ChaveEsp[playerid] = CarroEspecial[CarroCriado];// define a variбvel dele igual ao veiculoID
pawn Код:
if(vehicleid == CarroEspecial[CarroCriado])
 {
  if(CarroEspecial[CarroCriado] != ChaveEsp[playerid])//verifica se os dados sгo diferentes
  {
//============ se for diferente deveria acontecer isso. Mas nгo acontece=================
   GameTextForPlayer(playerid,"~r~Sem chaves para dirigir este veiculo",5000,3);
   RemovePlayerFromVehicle(playerid);
//==========================================================
  }
  else
  {
//=================Se forem iguais acontece isso. Isso estб funcionando=====
   GameTextForPlayer(playerid,"~y~Se beber nao dirija",5000,3);
//=============================================================
  }
 }
Ou seja o code nгo estб diferenciando as variбveis.


Resolvido!!!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)