[Ajuda] Criar comando de gerar casa
#1

Como vcs vejam o titulo.

Baixei a gamemode world evolution de Learning.
Editei ela, coloquei para zcmd e dof2.

porem ja tentei criar o /criarcasa e /criarempresa (IN-GAME)

n consigo alguem pd me ajudar ae?
Reply
#2

Cade o cуdigo parceiro
Reply
#3

Eu nao fiz o comando nao consigo fazer ;-; pode me fazer pfv .-.

Achei isto

Quote:

stock CriarCasa(casaid, Float:Pickupx, Float:Pickupy, Float:Pickupz, Float:interiorX, Float:interiorY, Float:interiorZ, Interior, cVenda, cPreco, virtualworld, mapicon)
{
format(hFile, sizeof(hFile), "Casas/casa%d.ini", casaid);

if(!fexist(hFile))
{
DOF2_CreateFile(hFile);
CasaInfo[casaid][Numero] = casaid;
format(CasaInfo[casaid][Proprietario], 12, "Ninguem");
DOF2_SetString(hFile, "Proprietario", "Ninguem");
format(CasaInfo[casaid][Morador], 12, "Ninguem");
DOF2_SetString(hFile, "Morador", "Ninguem");
format(CasaInfo[casaid][Morador2], 12, "Ninguem");
DOF2_SetString(hFile, "Morador2", "Ninguem");
format(CasaInfo[casaid][Morador3], 12, "Ninguem");
DOF2_SetString(hFile, "Morador3", "Ninguem");
format(CasaInfo[casaid][Login], 12, "00/00/0000");
DOF2_SetString(hFile, "Login", "00/00/0000");
format(CasaInfo[casaid][Mensagem], 12, "Nada");
DOF2_SetString(hFile, "Horario", "00:00:00");
format(CasaInfo[casaid][Horario], 12, "00:00:00");
DOF2_SetString(hFile, "Mensagem", "Nada");
CasaInfo[casaid][PickupX] = Pickupx;
CasaInfo[casaid][PickupY] = Pickupy;
CasaInfo[casaid][PickupZ] = Pickupz;
CasaInfo[casaid][InteriorX] = interiorX;
CasaInfo[casaid][InteriorY] = interiorY;
CasaInfo[casaid][InteriorZ] = interiorZ;
CasaInfo[casaid][InteriorID] = Interior;
CasaInfo[casaid][Venda] = cVenda;
CasaInfo[casaid][Preco] = cPreco;
CasaInfo[casaid][VirtualWorld] = virtualworld;
CasaInfo[casaid][Status] = 0;
CasaInfo[casaid][MapIcon] = mapicon;
DOF2_SetInt(hFile, "Numero", casaid);
DOF2_SetFloat(hFile, "InteriorX", interiorX);
DOF2_SetFloat(hFile, "InteriorY", interiorY);
DOF2_SetFloat(hFile, "InteriorZ", interiorZ);
DOF2_SetInt(hFile, "Interior", Interior);
DOF2_SetInt(hFile, "Venda", cVenda);
DOF2_SetInt(hFile, "Valor", cPreco);
DOF2_SetInt(hFile, "VirtualWorld", virtualworld);
DOF2_SetInt(hFile, "Dono", 0);
DOF2_SetInt(hFile, "Status", 0);
DOF2_SetInt(hFile, "MapIcon", mapicon);
DOF2_SetFloat(hFile, "X", Pickupx);
DOF2_SetFloat(hFile, "Y", Pickupy);
DOF2_SetFloat(hFile, "Z", Pickupz);
DOF2_SetInt(hFile, "vLiberado", 0);
DOF2_SetInt(hFile, "vM1", 0);
DOF2_SetInt(hFile, "vM2", 0);
DOF2_SetInt(hFile, "vM3", 0);
DOF2_SetInt(hFile, "useCar", 0);


Eu ja tentei usar sscanf e fazer sas bagaзa mais eu bugo no meio de tudo me ajuda vei pfv :/
Reply
#4

Cara nгo faзa isso, desenvolva um sistema para fazer as casas in game. Mas se vocк quer continuar com este sistema, verifique se os argumentos passados para a funзгo CriarCasa estгo corretos.
Reply
#5

Use como base:

PHP Code:
CMD:criarcasa(playerid, params[]) {
    if(
pAdmin[playerid] < 12) return SendClientMessage(playerid, Erro, "** Vocк nгo tem permissгo.");
    new 
preco, cint;
    if(
sscanf(params, "dd", preco, cint)) return SendClientMessage(playerid, Vermelho, "/criarcasa [preзo] [interior]");
    if(
preco < 100000) return SendClientMessage(playerid, Vermelho, "* Vocк sу pode criar casas de no minimo 100k.");
    
CriarCasa(playerid, preco, cint);
    return 
1;
} 
https://imgur.com/a/8mxeKN8
https://imgur.com/a/DaJqgC5
Reply
#6

Quote:
Originally Posted by LeViNS
View Post
Use como base:

PHP Code:
CMD:criarcasa(playerid, params[]) {
    if(
pAdmin[playerid] < 12) return SendClientMessage(playerid, Erro, "** Vocк nгo tem permissгo.");
    new 
preco, cint;
    if(
sscanf(params, "dd", preco, cint)) return SendClientMessage(playerid, Vermelho, "/criarcasa [preзo] [interior]");
    if(
preco < 100000) return SendClientMessage(playerid, Vermelho, "* Vocк sу pode criar casas de no minimo 100k.");
    
CriarCasa(playerid, preco, cint);
    return 
1;
} 
https://imgur.com/a/8mxeKN8
https://imgur.com/a/DaJqgC5
Oi vinny ;-;, eu ja tentei fazer isso que tu me mandou deu warnings e erros apaguei e ate hoje nunca consegui
Reply
#7

@Edit

Cada dia fiquei testando esse sistema de casa e deu certo!
olha como ficou:

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 tlg :v so procurar que vc encontra!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)