28.03.2015, 08:18
Olб galerinha do Fуrum SAMP, venho pedir uma ajudinha aqui. Estou criando meu sistema de propriedades, onde existe as funзхes Criar_Propriedade, Deletar_Propriedade e CarregarProp. Estгo logo abaixo:
E entгo as propriedades sгo salvas nesta pasta:
Mas se por exemplo, eu usar a funзгo Deletar_Propriedade, funcionarб perfeitamente, mas o problema й que quero que quando eu for criar outra, fique no lugar da que removi. Mas como fazer? '-' Quero apenas essa ajudinha, agradeзo desde jб!
PHP код:
stock Criar_Propriedade(PropID, _pNome[], _pDono[], Float:_pX, Float:_pY, Float:_pZ, bool:_pComprada, _pValor, _pGanhando=-1)
{
if(DOF2_FileExists(pProp(PropID))) return 0;
DOF2_CreateFile(pProp(PropID));
DOF2_SetInt(pProp(PropID), "Prop_ID", PropID);
DOF2_SetString(pProp(PropID), "Prop_Nome", _pNome); //Nome da Propriedade
DOF2_SetString(pProp(PropID), "Prop_Dono", _pDono); //Dono da Propriedade
DOF2_SetFloat(pProp(PropID), "Prop_X", _pX); //Posiзгo X da Propriedade
DOF2_SetFloat(pProp(PropID), "Prop_Y", _pY); //Posiзгo Y da Propriedade
DOF2_SetFloat(pProp(PropID), "Prop_Z", _pZ); //Posiзгo Z da Propriedade
DOF2_SetBool(pProp(PropID), "Prop_Comprada", _pComprada); //Se a Propriedade estб comprada, ou nгo.
DOF2_SetInt(pProp(PropID), "Prop_Valor", _pValor);
//Caso isto seja escolhido, irб auto-calcular o valor de ganho da propriedade, ou seja, 10% do valor original.
if(_pGanhando == -1) DOF2_SetInt(pProp(PropID), "Prop_Ganhando", _pValor / 10);
else DOF2_SetInt(pProp(PropID), "Prop_Ganhando", _pGanhando);
return 1;
}
stock Deletar_Propriedade(PropID)
{
if(!DOF2_FileExists(pProp(PropID))) return 0;
DestroyDynamicPickup(PropInfo[PropID][Prop_Pickup]);
DestroyDynamicMapIcon(PropInfo[PropID][Prop_MapIcon]);
DOF2_RemoveFile(pProp(PropID));
Propriedades_Criadas--;
return 1;
}
stock CarregarProp(PropID)
{
PropInfo[PropID][Prop_ID] = DOF2_GetInt(pProp(PropID), "Prop_ID"); //ID da Propriedade!
format(PropInfo[PropID][Prop_Nome], 64, "%s", DOF2_GetString(pProp(PropID), "Prop_Nome")); //Nome da Propriedade
format(PropInfo[PropID][Prop_Dono], MAX_PLAYER_NAME, "%s", DOF2_GetString(pProp(PropID), "Prop_Dono")); //Dono da Propriedade
PropInfo[PropID][Prop_X] = DOF2_GetFloat(pProp(PropID), "Prop_X"); //Posiзгo X da Propriedade
PropInfo[PropID][Prop_Y] = DOF2_GetFloat(pProp(PropID), "Prop_Y"); //Posiзгo Y da Propriedade
PropInfo[PropID][Prop_Z] = DOF2_GetFloat(pProp(PropID), "Prop_Z"); //Posiзгo Z da Propriedade
PropInfo[PropID][Prop_Comprada] = DOF2_GetBool(pProp(PropID), "Prop_Comprada"); //Se a Propriedade estб comprada, ou nгo.
PropInfo[PropID][Prop_Valor] = DOF2_GetInt(pProp(PropID), "Prop_Valor"); //Valor da Propriedade (Dinheiro preciso para comprб-la)
PropInfo[PropID][Prop_Ganhando] = DOF2_GetInt(pProp(PropID), "Prop_Ganhando"); //10% do Valor acima - isso seria quanto o jogador irб ganhar a cada 30 minutos.
if(PropInfo[PropID][Prop_Comprada]) //Se a propriedade for comprada...
{
PropInfo[PropID][Prop_Pickup] = CreateDynamicPickup(PICKUP_PROP_COMPRADA, 1, PropInfo[PropID][Prop_X], PropInfo[PropID][Prop_Y], PropInfo[PropID][Prop_Z]);
PropInfo[PropID][Prop_MapIcon] = CreateDynamicMapIcon(PropInfo[PropID][Prop_X], PropInfo[PropID][Prop_Y], PropInfo[PropID][Prop_Z], ICONE_PROP_COMPRADA, -1);
}
else //Se a propriedade nгo estiver comprada...
{
PropInfo[PropID][Prop_Pickup] = CreateDynamicPickup(PICKUP_PROP_NORMAL, 1, PropInfo[PropID][Prop_X], PropInfo[PropID][Prop_Y], PropInfo[PropID][Prop_Z]);
PropInfo[PropID][Prop_MapIcon] = CreateDynamicMapIcon(PropInfo[PropID][Prop_X], PropInfo[PropID][Prop_Y], PropInfo[PropID][Prop_Z], ICONE_PROP_NORMAL, -1);
}
return 1;
}
stock Contar_Propriedades()
{
Propriedades_Criadas = 0;
for(new i = 0; i < MAX_PROPRIEDADES_SERVIDOR; ++i)
{
if(DOF2_FileExists(pProp(i)))
{
Propriedades_Criadas++;
}
}
return 1;
}
stock pProp(PropID)
{
new Prop_String[30];
format(Prop_String, sizeof(Prop_String), FOLDER_PROPRIEDADES, PropID);
return Prop_String;
}
Mas se por exemplo, eu usar a funзгo Deletar_Propriedade, funcionarб perfeitamente, mas o problema й que quero que quando eu for criar outra, fique no lugar da que removi. Mas como fazer? '-' Quero apenas essa ajudinha, agradeзo desde jб!