Sistema de Objetos

Ir em baixo

Sistema de Objetos

Mensagem por Diego^ em Sex Jun 12, 2015 5:47 pm

Sistema de Objetos

Código:
function onScriptLoad()
{
LoadObjects();
ObjTime <- false;
QuerySQL(db, "CREATE TABLE IF NOT EXISTS Objects ( ID NUMERIC, Modelo NUMERIC, PX NUMERIC, PY NUMERIC, PZ NUMERIC, AX, AY, AZ )" );
}

function LoadObjects()
{
try   {
   if ( CountObjects() != 0 )
   {
       local q = QuerySQL( db, "SELECT * FROM Objects WHERE rowid LIKE '%'" ), pos;
       while( GetSQLColumnData( q, 0 ) )
       {
          local model = GetSQLColumnData( q, 1 );
          local x = GetSQLColumnData( q, 2 );
          local y = GetSQLColumnData( q, 3 );
          local z = GetSQLColumnData( q, 4 );
          local ax = GetSQLColumnData( q, 5 );
           local ay = GetSQLColumnData( q, 6 );
          local az = GetSQLColumnData( q, 7 );
         CreateObject( model, 1, Vector( x.tofloat(), y.tofloat(), z.tofloat() ), 255 ).RotateToEuler( Vector( ax.tofloat(), ay.tofloat(), az.tofloat() ), 1 );
         GetSQLNextRow( q );
     }
      FreeSQLQuery(q);
   }
   }
   catch(e) print( "[Erro] LoadObjects - " + e );
}

function CountObjects()
{
try
         {
        local a = 0, q = QuerySQL( db, "SELECT * FROM Objects" );
        while ( GetSQLColumnData( q, 0 ) )
        {
                a ++;
                GetSQLNextRow( q );
        }
        return a;
      FreeSQLQuery( q );
      }
      catch(e) print( "[Erro] CountObjects - " + e );
}

function onPlayerCommand( player, cmd, text )
{
if ( cmd == "obj" )
       {
          if ( !text ) MessagePlayer( "[Sintaxe] - /" + cmd + " <ID>", player );
         else if ( ObjTime == true ) MessagePlayer( "[Erro] - Use /save para salvar o ultimo objeto.", player );
         else
         {
            OBJ <- CreateObject( text.tointeger(), player.World, Vector( player.Pos.x, player.Pos.y, player.Pos.z + 0.5 ), 255 );
                     MessagePlayer( "Objeto Criado...", player );
                     ObjTime = true;
   }
         }

else if ( cmd == "save" )
       {
       if ( ObjTime == false ) MessagePlayer( "Crie um obejto antes!", player );
       else {
       MessagePlayer( "Objeto Salvo...", player );
            local idobj = CountObjects()+1;
QuerySQL( db, "INSERT INTO Objects ( ID, Modelo, PX, PY, PZ, AX, AY, AZ ) VALUES ( '" + idobj + "', '" + OBJ.Model + "', '" + OBJ.Pos.x + "', '" + OBJ.Pos.y + "', '" + OBJ.Pos.z + "', '" + OBJ.RotationEuler.x + "', '" + OBJ.RotationEuler.y + "', '" + OBJ.RotationEuler.z + "'  )" );
       ObjTime = false;
       }
       }

else if ( cmd == "mov" )
       {
           if ( !text ) MessagePlayer( "[Sintaxe] - /" + cmd + " <x/y/z> <+/-> <Tamanho>", player );
   else {
         local ID = GetTok( text, " ", 1);
         if ( !ID ) MessagePlayer( "[Erro] - Use Numeros.", player );
         else if (ID != "x" && ID != "y" && ID != "z") MessagePlayer("[Erro] - Use letras x/y/z.",player);
         else
         {
         local negpos = GetTok( text, " ", 2);
            if (!negpos) MessagePlayer("[Erro] - Use um sinal - ou +.",player);
            else if (negpos != "+" && negpos != "-") MessagePlayer("[Erro] - Use um sinal - ou +.",player);
            else
            {
            local altura = GetTok( text, " ", 3);
            if (!altura) MessagePlayer("[Erro] - Use numeros.",player);
            else
            {
            if (ID == "x")
            {
            if (negpos == "-")
            {
            OBJ.MoveTo( Vector( OBJ.Pos.x - altura.tofloat(), OBJ.Pos.y, OBJ.Pos.z ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
            }
            if (negpos == "+")
            {
            OBJ.MoveTo( Vector( OBJ.Pos.x + altura.tofloat(), OBJ.Pos.y, OBJ.Pos.z ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
              }
              }
               if (ID == "y")
            {
            if (negpos == "-")
            {
            OBJ.MoveTo( Vector( OBJ.Pos.x, OBJ.Pos.y - altura.tofloat(), OBJ.Pos.z ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
            }
            if (negpos == "+")
            {
            OBJ.MoveTo( Vector( OBJ.Pos.x, OBJ.Pos.y + altura.tofloat(), OBJ.Pos.z ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
              }
              }
              if (ID == "z")
            {
            if (negpos == "-")
            {
            OBJ.MoveTo( Vector( OBJ.Pos.x, OBJ.Pos.y, OBJ.Pos.z - altura.tofloat() ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
            }
            if (negpos == "+")
            {
            OBJ.MoveTo( Vector( OBJ.Pos.x, OBJ.Pos.y, OBJ.Pos.z + altura.tofloat() ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
              }
              }
            }
            }
     }
         }
         }
         
         else if ( cmd == "rot" )
       {
           if ( !text ) MessagePlayer( "[Sintaxe] - /" + cmd + " <x/y/z> <+/-> <Tamanho>", player );
   else {
         local ID = GetTok( text, " ", 1);
         if ( !ID ) MessagePlayer( "[Erro] - Use Numeros.", player );
         else if (ID != "x" && ID != "y" && ID != "z") MessagePlayer("[Erro] - Use letras x/y/z.",player);
         else
         {
         local negpos = GetTok( text, " ", 2);
            if (!negpos) MessagePlayer("[Erro] - Use um sinal - ou +.",player);
            else if (negpos != "+" && negpos != "-") MessagePlayer("[Erro] - Use um sinal - ou +.",player);
            else
            {
            local altura = GetTok( text, " ", 3);
            if (!altura) MessagePlayer("[Erro] - Use numeros.",player);
            else
            {
            if (ID == "x")
            {
            if (negpos == "-")
            {
            OBJ.RotateToEuler( Vector( OBJ.RotationEuler.x - altura.tofloat(), OBJ.RotationEuler.y, OBJ.RotationEuler.z ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
            }
            if (negpos == "+")
            {
            OBJ.RotateToEuler( Vector( OBJ.RotationEuler.x + altura.tofloat(), OBJ.RotationEuler.y, OBJ.RotationEuler.z ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
              }
              }
               if (ID == "y")
            {
            if (negpos == "-")
            {
            OBJ.RotateToEuler( Vector( OBJ.RotationEuler.x, OBJ.RotationEuler.y - altura.tofloat(), OBJ.RotationEuler.z ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
            }
            if (negpos == "+")
            {
            OBJ.RotateToEuler( Vector( OBJ.RotationEuler.x, OBJ.RotationEuler.y + altura.tofloat(), OBJ.RotationEuler.z ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
              }
              }
              if (ID == "z")
            {
            if (negpos == "-")
            {
            OBJ.RotateToEuler( Vector( OBJ.RotationEuler.x, OBJ.RotationEuler.y, OBJ.RotationEuler.z - altura.tofloat() ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
            }
            if (negpos == "+")
            {
            OBJ.RotateToEuler( Vector( OBJ.RotationEuler.x, OBJ.RotationEuler.y, OBJ.RotationEuler.z + altura.tofloat() ), 2800 );
             MessagePlayer( "Objeto Movido...", player );
              }
              }
            }
            }
     }
         }
         }
         
         else if ( cmd == "objdel" )
     {
      if ( ObjTime == false ) MessagePlayer( "[Erro] - Nao tem objetos para serem deletados.", player );
     else {
     OBJ.Delete();
     MessagePlayer( "Objeto Deletado...", player );
     ObjTime = false;
     }
     }
}

Qualquer dúvida poste nos comentários, se gostar clique no botão "Obrigado".

_________________
avatar
Diego^
Desenvolvedor

Mensagens : 60
Pontos : 106
Reputação : 21
Data de inscrição : 11/06/2015
Idade : 21
Localização : Brazil

Ver perfil do usuário http://vcmp-br.umforum.net

Voltar ao Topo Ir em baixo

Re: Sistema de Objetos

Mensagem por Joao^ em Sab Jun 13, 2015 12:06 am

aaa o meu ta dando erro pode mim ajudar?

Joao^

Mensagens : 18
Pontos : 24
Reputação : 0
Data de inscrição : 11/06/2015
Idade : 19
Localização : Erico Cardoso BA.

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Sistema de Objetos

Mensagem por Joao^ em Sab Jun 13, 2015 12:54 am

affs nao sei add nada

Joao^

Mensagens : 18
Pontos : 24
Reputação : 0
Data de inscrição : 11/06/2015
Idade : 19
Localização : Erico Cardoso BA.

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Sistema de Objetos

Mensagem por Diego^ em Sab Jun 13, 2015 1:03 am

Usa o comando que ta com erro, e olha a telinha preta, mostra print do erro..

_________________
avatar
Diego^
Desenvolvedor

Mensagens : 60
Pontos : 106
Reputação : 21
Data de inscrição : 11/06/2015
Idade : 21
Localização : Brazil

Ver perfil do usuário http://vcmp-br.umforum.net

Voltar ao Topo Ir em baixo

Re: Sistema de Objetos

Mensagem por [S]ombra em Dom Jun 14, 2015 12:13 pm

Na hora que der erro ao entrar no servidor, minimize o GTA vá no seu server.exe que estará aberto e ele lhe dirá em que linha está o erro, é só ir lá e consertar.

Qualquer Dúvida, só chamar ou poste aqui novamente.

[S]ombra

Mensagens : 5
Pontos : 8
Reputação : 1
Data de inscrição : 14/06/2015

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Sistema de Objetos

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum