[Ajuda] Como salvar map icons de Propiedades ,casas !
#1

Olб pessoal eu queria como salvar o map icon que cria quando , cria a casa , compra a casa ,e vende a casa , mesma coisa com a propiedade ,quando cria a propiedade ,compra a propiedade , e vende a propiedade , queria saber como salva , por que eu crio a casa fica la o map icon verde , dai eu compro fica vermelho certinho , mas dai eu crio outra casa buga o map icon criado a casa anterior buga ele some ,como eu fasso para mudar isso ? Help - me


/criarcasa


Код:
if(strcmp(cmd, "/criarcasa", true) == 0)
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
if(pAdmin[playerid] == 5 || IsPlayerAdmin(playerid))
{
new tmp[256];
new preco, int;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, Vermelho, "/criarcasa [preзo] [interiorID]");
return 1;
}
preco = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, Vermelho, "/criarcasa [preзo] [interiorID]");
return 1;
}
int = strval(tmp);
format(string, sizeof(string), "/Casas/casa%d.ini", proximacasa);
if(!dini_Exists(string))
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerMapIcon( playerid, 12, x, y, z, 31, 0, MAPICON_LOCAL );
dini_Create(string);
dini_FloatSet(string, "PosX", X);
dini_FloatSet(string, "PosY", Y);
dini_FloatSet(string, "PosZ", Z);
dini_IntSet(string, "Int", int);
dini_IntSet(string, "Mundo", proximacasa);
dini_IntSet(string, "TDono", 0);
dini_Set(string, "Dono", "Ninguem");
dini_IntSet(string, "Preco", preco);
dini_IntSet(string, "Trancada", 0);
dini_IntSet(string, "TMorador", 0);
dini_Set(string, "Morador", "Ninguem");
new pickupid;
pickupid = CreatePickup(1273, 1, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"), -1);
dini_IntSet(string, "Id", pickupid);
proximacasa++;
}
}
return 1;
}
/comprarcasa

Код:
if(strcmp(cmdtext, "/comprarcasa", true) == 0)
{
for(new c = 0; c < MAX_CASAS; c++)
{
format(string, sizeof(string), "/Casas/casa%d.ini", c);
if(dini_Exists(string))
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ")))
{
if(dini_Int(string, "TDono") == 0)
{
if(GetPlayerGrana(playerid) >= dini_Int(string, "Preco"))
{
if(GetCasas(playerid) < 1)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerMapIcon( playerid, 12, x, y, z, 32, 0, MAPICON_LOCAL );
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
dini_IntSet(string, "TDono", 1);
dini_Set(string, "Dono", pname);
GivePlayerGrana(playerid, -dini_Int(string, "Preco"));
new pickupid;
DestroyPickup(dini_Int(string, "Id"));
pickupid = CreatePickup(1272, 1, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"), -1);
dini_IntSet(string, "Id", pickupid);
OnPlayerCommandText(playerid, "/nascercasa");
}
else
{
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк sу pode ter uma casa!");
}
}
else
{
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem dinheiro!");
}
}
else
{
SendClientMessage(playerid, Vermelho, "(ERRO) Esta casa nгo estб a venda!");
}
}
else
{
}
}
}
return 1;
}
/vendercasa

Код:
if(strcmp(cmdtext, "/vendercasa", true) == 0)
	{
    new pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), PASTA_CONTAS, pname);
    for(new c = 0; c < MAX_CASAS; c++)
    {
    format(string, sizeof(string), "/Casas/casa%d.ini", c);
    if(dini_Exists(string))
	{
    if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ")))
	{
    if(dini_Int(string, "TDono") == 1)
	{
    if(strcmp(dini_Get(string, "Dono"), pname, true) == 0 || pAdmin[playerid] == 5 || IsPlayerAdmin(playerid))
	{
    if(strcmp(dini_Get(string, "Dono"), pname, true) == 0)
	{
    dini_FloatSet(file,"CasaX",Float:1410.5046);
    dini_FloatSet(file,"CasaY",Float:-1789.7197);
    dini_FloatSet(file,"CasaZ",Float:13.8285);
    }
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetPlayerMapIcon( playerid, 12, x, y, z, 31, 0, MAPICON_LOCAL );
    dini_IntSet(string, "TDono", 0);
    dini_Set(string, "Dono", "Ninguem");
    GivePlayerGrana(playerid, dini_Int(string, "Preco"));
    new pickupid;
    DestroyPickup(dini_Int(string, "Id"));
    pickupid = CreatePickup(1273, 1, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ"), -1);
    dini_IntSet(string, "Id", pickupid);
    }
	else
	{
    SendClientMessage(playerid, Vermelho, "(ERRO) Esta casa nгo й sua.");
    }
    }
	else
	{
    SendClientMessage(playerid, Vermelho, "(ERRO) Esta casa jб estб a venda !");
    }
    }
	else
	{
    SendClientMessage(playerid, Vermelho, "[INFO] Vocк nгo estб em uma casa.");
    }
    }
    }
    return 1;
    }
Reply
#2

O id do Mapicon nгo й salvo, Quando vocк liga o GM na propriedade OnGameModeInit() tem a funзгo que irб criar a casa juntamente com o pickup, textlabel e o mapicon.

Na hora de criar a casa ele irб verificar Se a string TDono que estб salva no arquivo da casa exemplo: casa0.ini esta com o valor de 1, se ela estiver ele irб criar o mapicon da casa vermelho.
Se ela estiver com o valor 0 ele irб criar o mapicon da casa verde.

Um exemplo abaixo.

PHP код:
public OnGameModeInit( )
{
    for( new 
0MAX_CASASc++ )
    {
        new 
string 255 ], string1 255 ];
        
formatstringsizeof( string ) , "/Casas/casa%d.ini") ;
        if( 
dini_Exists( string ) )
        {
            if( 
dini_Intstring"TDono" )  == /*-- Se a casa nгo tiver dono --*/
            
{
                
pickupcasaid ] = CreatePickup12731dini_Floatstring"PosX" ) , dini_Floatstring"PosY" ) , dini_Floatstring"PosZ" ) , -) ;
                
dini_IntSetstring"Id"pickupcasaid ] ) ;
                
formatstring1sizeofstring1 ) ," {FFFFFF}[ Casa ID: %d - {00FF00}Б Venda {FFFFFF}]\n{FF4500}Dono: {FFFFFF}Ninguйm\n{FF4500}Morador: {FFFFFF}Ninguйm\n{FF4500}Preзo: {FFFFFF}%d\n{FFFF00}use: {FFFFFF}/comprarcasa",c,dini_Intstring"Preco" ) ) ;
                
labelcasaid ] = Create3DTextLabelstring10x008080FFdini_Floatstring"PosX" ) , dini_Floatstring"PosY" ) , dini_Floatstring"PosZ" ), 40.00) ;
                
mapiconcasaid ] = CreateDynamicMapIcon(dini_Floatstring"PosX" ) , dini_Floatstring"PosY" ) , dini_Floatstring"PosZ" ), 31, -1, -1, -1, -160.0);
                
proximacasa++;
            }
            else
            {
                if( 
dini_Intstring"TDono" )  == )  /*-- Se a casa tiver dono --*/
                
{
                    
pickupcasaid ] = CreatePickup12721dini_Floatstring"PosX" ) , dini_Floatstring"PosY" ) , dini_Floatstring"PosZ" ) , -) ;
                    
dini_IntSetstring"Id"pickupcasaid ] ) ;
                    
formatstring1sizeofstring1 ) ," {FFFFFF}[ Casa ID: %d - {FF0000}Possui dono(a) {FFFFFF}]\n{FF4500}Dono: {FFFFFF}%s\n{FF4500}Morador: {FFFFFF}%s\n{FF4500}Preзo: {FFFFFF}%d\n{FFFF00}use: {FFFFFF}/entrarcasa",c,dini_Getstring"Dono" ), dini_Getstring"Morador" ),dini_Intstring"Preco" ) ) ;
                    
labelcasaid ] = Create3DTextLabelstring10x008080FFdini_Floatstring"PosX" ) , dini_Floatstring"PosY" ) , dini_Floatstring"PosZ" ), 40.00) ;
                    
mapiconcasaid ] = CreateDynamicMapIcon(dini_Floatstring"PosX" ) , dini_Floatstring"PosY" ) , dini_Floatstring"PosZ" ), 32, -1, -1, -1, -160.0); /*-- Aqui estб o mapicon, ele nгo salva ele apenas cria de acordo com o status da casa --*/
                    
proximacasa++;
                }
            }
        }
    }
    return 
1;

Ajudei? + Rep
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)