[Ajuda] Salvar Objetos.
#1

Olб fуrum..

Eu estava fazendo meu projeto >>>projeto<<< e me veio uma duvida.

No meu gm tem um sistema de criar casas, crafting table etc, o problema й, quando o servidor reiniciar tudo construнdo pelos players in-game irб sumir.. Eu queria a ajuda de vocкs para salvar esses objetos.

Obrigado!
Reply
#2

A ideia й semelhante a conta dos jogadores, mas em vez de level, adminlevel, etc, vocк vai salvar o modelo do objeto e a posiзгo
Reply
#3

Quote:
Originally Posted by ViniBorn
Посмотреть сообщение
A ideia й semelhante a conta dos jogadores, mas em vez de level, adminlevel, etc, vocк vai salvar o modelo do objeto e a posiзгo
Poderia passar um exemplo?
Reply
#4

Quote:
Originally Posted by Carlos001
Посмотреть сообщение
PHP код:
#define MAX_BASES 10 
enum BaseInfo
{
    
Dono[MAX_PLAYER_NAME],
    
Existe,
    
ObjectB,
    
FloatPosX,
    
FloatPosY,
    
FloatPosZ,
    
FloatRX,
    
FloatRY,
    
FloatRZ
}
new 
Base[MAX_BASES][BaseInfo];
CMD:criarbase(playeridparams[]) 

    new 
Float:XFloat:YFloat:ZFloatA
    
GetPlayerPos(playeridXYZ); 
    
GetPlayerFacingAngle(playeridA); 
    for(new 
idid MAX_BASESid++) 
    { 
        
Base[id][Dono] = ...; 
        
Base[id][Existe] = 1
        
Base[id][PosX] = X
        
Base[id][PosY] = Y
        
Base[id][PosZ] = 0.90
        
Base[id][RZ] = 180.0
        
Base[id][ObjectB] = CreateDynamicObject(ObjectBase[id][PosX], Base[id][PosY], Base[id][PosZ], Base[id][RX], Base[id][RY], Base[id][RZ]); 
        
SendClientMessage(playerid, -1"Base criada com sucesso"); 
        
// ... 
    
}     
    return 
1

Depois й quase a mesma coisa que salvar as Informaзхes de um Jogador, vocк pega as Informaзхes das Variбveis e Salva, pra carregar quase a mesma coisa Tmb, vocк pega os dados das Variбveis e cria os Objetos Novamente, esse foi um Exemplo para salvar os objetos das bases, Os outros Objetos e a mesma coisa...
Entendi mais ou menos, eu sei salvar coisas do player, level, money, ultimas coordenadas, mas nao entendi como salvar isso!
Reply
#5

Quote:
Originally Posted by PowerEvolve
Посмотреть сообщение
Entendi mais ou menos, eu sei salvar coisas do player, level, money, ultimas coordenadas, mas nao entendi como salvar isso!
cada vez que alguem criar uma casa, vc coloca pra criar um arquivo com o modelo, dono, localizaзгo, entendeu? tipo, cria uma pasta em scriptfiles com o nome de casas e dps faz pra criar um arquivo pra cada casa, e defina com o nome, tipo casa(nomedocara) ou casa 1, 2, etc.

assim, quando a gm for reiniciada ele lerб todos os arquivos e criarб as casas, ou melhor, vc pode deixar um limite de 1 casa por player, assim, vc salva na conta do cara a casa, se ele tiver uma casa, defina na conta dele o modelo e posiзгo
Reply
#6

Quote:
Originally Posted by Scorpion659
Посмотреть сообщение
cada vez que alguem criar uma casa, vc coloca pra criar um arquivo com o modelo, dono, localizaзгo, entendeu? tipo, cria uma pasta em scriptfiles com o nome de casas e dps faz pra criar um arquivo pra cada casa, e defina com o nome, tipo casa(nomedocara) ou casa 1, 2, etc.

assim, quando a gm for reiniciada ele lerб todos os arquivos e criarб as casas, ou melhor, vc pode deixar um limite de 1 casa por player, assim, vc salva na conta do cara a casa, se ele tiver uma casa, defina na conta dele o modelo e posiзгo
Amigo o meu problema й, usando essa base:
PHP код:
#define MAX_BASES 10  
enum BaseInfo 

    
Dono[MAX_PLAYER_NAME], 
    
Existe
    
ObjectB
    
FloatPosX
    
FloatPosY
    
FloatPosZ
    
FloatRX
    
FloatRY
    
FloatRZ 

new 
Base[MAX_BASES][BaseInfo]; 
CMD:criarbase(playeridparams[])  
{  
    new 
Float:XFloat:YFloat:ZFloatA;  
    
GetPlayerPos(playeridXYZ);  
    
GetPlayerFacingAngle(playeridA);  
    for(new 
idid MAX_BASESid++)  
    {  
        
Base[id][Dono] = ...;  
        
Base[id][Existe] = 1;  
        
Base[id][PosX] = X;  
        
Base[id][PosY] = Y;  
        
Base[id][PosZ] = 0.90;  
        
Base[id][RZ] = 180.0;  
        
Base[id][ObjectB] = CreateDynamicObject(ObjectBase[id][PosX], Base[id][PosY], Base[id][PosZ], Base[id][RX], Base[id][RY], Base[id][RZ]);  
        
SendClientMessage(playerid, -1"Base criada com sucesso");  
        
// ...  
    
}      
    return 
1;  

Eu nгo sei como salvar ela entende? Eu nгo sei oq escrever para salvar o id do objeto muito menos a coordenada onde ela estб, compreende?

Eu simplesmente nгo sei como salvar!
Reply
#7

Quote:
Originally Posted by PowerEvolve
Посмотреть сообщение
Amigo o meu problema й, usando essa base:
PHP код:
#define MAX_BASES 10  
enum BaseInfo 

    
Dono[MAX_PLAYER_NAME], 
    
Existe
    
ObjectB
    
FloatPosX
    
FloatPosY
    
FloatPosZ
    
FloatRX
    
FloatRY
    
FloatRZ 

new 
Base[MAX_BASES][BaseInfo]; 
CMD:criarbase(playeridparams[])  
{  
    new 
Float:XFloat:YFloat:ZFloatA;  
    
GetPlayerPos(playeridXYZ);  
    
GetPlayerFacingAngle(playeridA);  
    for(new 
idid MAX_BASESid++)  
    {  
        
Base[id][Dono] = ...;  
        
Base[id][Existe] = 1;  
        
Base[id][PosX] = X;  
        
Base[id][PosY] = Y;  
        
Base[id][PosZ] = 0.90;  
        
Base[id][RZ] = 180.0;  
        
Base[id][ObjectB] = CreateDynamicObject(ObjectBase[id][PosX], Base[id][PosY], Base[id][PosZ], Base[id][RX], Base[id][RY], Base[id][RZ]);  
        
SendClientMessage(playerid, -1"Base criada com sucesso");  
        
// ...  
    
}      
    return 
1;  

Eu nгo sei como salvar ela entende? Eu nгo sei oq escrever para salvar o id do objeto muito menos a coordenada onde ela estб, compreende?

Eu simplesmente nгo sei como salvar!
Como você pretende criar o projeto sem saber funçoes de salvamento?

Meio tenso!
Reply
#8

Olha, sei que estб errado oque eu fiz, n salvei rotaзгo, o playerid vai dar errado, etc, etc, mas a logica na minha opiniгo й essa: (mas espera pessoas que saibam programar, mas creio que essa logica de certo)(sei tb q nesse coisa q criei, cada player sу poderб ter uma casa)

PHP код:
enum BaseInfo
{
    
Dono,
    
ObjectB,
    
FloatPosX,
    
FloatPosY,
    
FloatPosZ,
    
FloatRX,
    
FloatRY,
    
FloatRZ
}
new 
Base[MAX_PLAYERS][BaseInfo], string[MAX_PLAYERS][128];
new 
nome[MAX_PLAYERS][MAX_PLAYER_NAME];
CMD:criarbase(playerid)
{
    new 
Float:XFloat:YFloat:Z;
    
GetPlayerPos(playeridXYZ);
    
GetPlayerName(playeridnome[playerid], MAX_PLAYER_NAME);
    
format(string[playerid], 128"Casas/casa_%s.ini"nome[playerid]);
    if(!
DOF2_FileExists(string[playerid])){
        
DOF2_CreateFile(string[playerid]);
        
DOF2_SetString(string[playerid], "Dono"nome[playerid]);
        
DOF2_SetInt(string[playerid], "ObjectB"16146);
        
DOF2_SetFloat(string[playerid], "PosX"X);
        
DOF2_SetFloat(string[playerid], "PosY"Y);
        
DOF2_SetFloat(string[playerid], "PosZ"Z);
        
        
DOF2_SaveFile();
        
criarcasa(playerid);
    }else{
SendClientMessage(playerid0xFF0000"Vocк jб  tem uma casa :)");}
    return 
1;
}
stock criarcasa(playerid)
{
    
Base[playerid][Dono] = DOF2_GetStringstring[playerid], "Dono" );
    
Base[playerid][ObjectB] = DOF2_GetIntstring[playerid], "ObjectB" );
    
Base[playerid][PosX] = DOF2_GetFloatstring[playerid], "PosX" );
    
Base[playerid][PosY] = DOF2_GetFloatstring[playerid], "PosY" );
    
Base[playerid][PosZ] = DOF2_GetFloatstring[playerid], "PosZ" );
    
CreateDynamicObject(Base[playerid][ObjectB], Base[playerid][PosX], Base[playerid][PosY], Base[playerid][PosZ], 0.00.00.0);
    return 
1;

Reply
#9

@PowerEvolve Me procure no Skype irei estar te passando o Script pronto.. Skype: blu.blu35
Reply
#10

Quote:
Originally Posted by Carlos001
Посмотреть сообщение
@PowerEvolve Me procure no Skype irei estar te passando o Script pronto.. Skype: blu.blu35
@Carlos001 Mandei a solicitaзгo!!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)