PHP Code:
// Comeзo
#include <a_samp>
#include <sscanf2>
#include <streamer>
#include <DOF2>
#define MAX_CASAS 200
new Text3D:CasaTLabel[MAX_CASAS];
new STRX[ 256 ];
new ProximaCasa;
//Comando:
if(strcmp(cmd, "/CriarCasa", true) == 0)
{
new Preco, Interior;
if(sscanf(cmdtext, "s[11]dd", cmd, Preco, Interior))
{
SendClientMessage(playerid, 0xFF0000AA, "| ERRO | Use: /CriarCasa [Preзo] [Interior]");
return 1;
}
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
PlayerCreateHouse(playerid, Preco, Interior, X, Y, Z, GetPlayerInterior(playerid));
return 1;
}
//Final GM
stock PlayerCreateHouse(playerid, CasaPreco, CasaInterior, Float:CasaX, Float:CasaY, Float:CasaZ, IdInterior)
{
new query[ 250 ], str[ 250 ], PickupId, MapiconId;
format(query, sizeof(query), "/Casas/Casa%d.ini", ProximaCasa);
if(IsPlayerInRangeOfPoint(playerid, 20.0, DOF2_GetFloat(query, "PosX"), DOF2_GetFloat(query, "PosY"), DOF2_GetFloat(query, "PosZ")))
{
SendClientMessage(playerid, 0xFF0000AA, "| ERRO | Nгo pode criar uma casa perto da outra!");
return 1;
}
if(!DOF2_FileExists(query))
{
DOF2_CreateFile(query);
DOF2_SetFloat(query, "PosX", CasaX);
DOF2_SetFloat(query, "PosY", CasaY);
DOF2_SetFloat(query, "PosZ", CasaZ);
DOF2_SetInt(query, "Interior", CasaInterior);
DOF2_SetInt(query, "IdInterior", IdInterior);
DOF2_SetInt(query, "Preco", CasaPreco);
DOF2_SetInt(query, "CasaId", ProximaCasa);
DOF2_SetString(query, "Dono", "Ninguem");
DOF2_SetInt(query, "TDono", 0);
PickupId = CreateDynamicPickup(1273, 1, CasaX, CasaY, CasaZ, -1, -1, -1, 200.0);
DOF2_SetInt(query, "PickupId", PickupId);
MapiconId = CreateDynamicMapIcon(CasaX, CasaY, CasaZ, 31, 0, -1, -1, -1, 100.0);
DOF2_SetInt(query, "MapiconId", MapiconId);
format(STRX, sizeof(STRX), "{00FFFF}Dono(a): {FFFFFF}Nнnguem\n\n{00FFFF}Casa Id: {FFFFFF}%d\n/InfoCasa", ProximaCasa);
CasaTLabel[ProximaCasa] = CreateDynamic3DTextLabel(STRX, -1, CasaX, CasaY, CasaZ, 30.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 200.0);
format(str, sizeof(str), "| INFO-SERVER | O(A) Administrador(a) %s (%d) Criou uma casa nъmero %d", Nome(playerid), playerid, ProximaCasa);
SendClientMessageToAll(0x33AAFFAA, str);
ProximaCasa++;
DOF2_SaveFile();
}
return 1;
}
Agora quando o player se desconectar as coisa: Pickup, mapicon й Textlabel e deletado ai tem que fazer uma coisa na public OnGameMondeInit, eu ainda n fiz, se dps eu animar eu faзo, Mas e facil isso! tem um exemplo na GM da CVR