06.08.2017, 18:18
Hola amigos de Pawno script Hoy vengo ah traer este sistema de casas siempre pero funcionable lo primero como funciona el sistema? Por dini vamos ah ver el code del sistema
Cuando la casa esta en venta el icono esta en verde, Cuando la compras se pone en rojo.
Lo pasare por aquн ya que es mas fбcil que por Pastebin oh por otros medios
Code:
Como creo una casa?
Vamos ah la carpeta scriptfiles, y hacemos una nueva carpeta ahi mismo llamada Propiedades, despuйs de a ver la creado entramos y vamos ah este link http://www.mediafire.com/file/12u0xixx4k2xtxx/0.ini lo descargamos y lo pasamos ah la carpeta propiedades en ella vendra esto
Todo lo que dice ahн cambiarlo de tal modo de poner sus coordenadas y sus interiores.
Los archivos delas casas son .ini
En la prуxima actualizaciуn tratare de crear un comando con IsPlayerAdmin (rcon) para crear casas desde el juego
De mi parte eso seria todo espero y les aya gustado el sistema de casas Cualquier duda publicarla en el post.С
Cuando la casa esta en venta el icono esta en verde, Cuando la compras se pone en rojo.
Lo pasare por aquн ya que es mas fбcil que por Pastebin oh por otros medios
Code:
Code:
#include <a_samp> //<----------- Necesario para cargar Callbacks (NO BORRAR SIEMPRE DEJENLO EN LA PRIMERA LINEA) #include <dini> //<------------- Necesario para guardas casas #define M_PROPIEDADES 3 //<---- Si produce bug cambiar al numero que desйn #define Comandosc 100 //<---- Si produce bug cambiar al numero que desйn #define COLOR_BLANCO 0xFFFFFFFF enum Prop { Propietario[25], Precioc,//Precio de la propiedad. Interiorcasa,//Interior de la propiedad. PVW,//Virtual World de la propiedad. Float:CorX,Float:CorY,Float:CorZ,//Posiciуn de ENTRADA. Comprada, //define si esta comprada PID, //define su id de casa Cerrada, //define si esta cerrada Text3D:PLabel, //Texto 3D Float:CorXi,Float:CorYi,Float:CorZi, //Cordenadas interior } new Float:SX,Float:SY,Float:SZ; new PropiedadI[M_PROPIEDADES][Prop]; new CP,PE[M_PROPIEDADES]; forward CargarPropiedades(); public CargarPropiedades() { new Archivo[70]; for(new i = 0; i < M_PROPIEDADES; i++) { format(Archivo,sizeof(Archivo),"Propiedades/%i.ini",i); if(!dini_Exists(Archivo)) continue; if(dini_Exists(Archivo)) { PropiedadI[i][Precioc] = dini_Int(Archivo,"Precio"); PropiedadI[i][Interiorcasa] = dini_Int(Archivo,"Int"); PropiedadI[i][PID] = dini_Int(Archivo,"PropiedadID"); PropiedadI[i][Cerrada] = dini_Int(Archivo,"Cerrada"); PropiedadI[i][Comprada] = dini_Int(Archivo,"Comprada"); PropiedadI[i][CorX] = dini_Float(Archivo,"X"); PropiedadI[i][CorY] = dini_Float(Archivo,"Y"); PropiedadI[i][CorZ] = dini_Float(Archivo,"Z"); PropiedadI[i][CorXi] = dini_Float(Archivo,"CorXi"); PropiedadI[i][CorYi] = dini_Float(Archivo,"CorYi"); PropiedadI[i][CorZi] = dini_Float(Archivo,"CorZi"); format(PropiedadI[i][Propietario],24,"%s",dini_Get(Archivo,"Propietario")); new String[350]; switch(PropiedadI[i][Comprada]) { case 0:{ format(String,sizeof(String),"{F89100}[EN VENTA]{FFFFFF}\nPropiedad de{F89100} %d{FFFFFF}\n\nValor {0FDF00}$%d\n\n\n{FFFFFF} [ID:%d]",PropiedadI[i],PropiedadI[i][Precioc],PropiedadI[i][PID]); PE[i] = CreatePickup(1273,1,PropiedadI[i][CorX],PropiedadI[i][CorY],PropiedadI[i][CorZ],PropiedadI[i][PVW]); } case 1:{ format(String,sizeof(String),"{FFFFFF}[Propietario: {F89100}%s]\nPropiedad de {F89100}%d {FFFFFF}\n\n\n{FFFFFF} [ID:%d]",PropiedadI[i][Propietario],PropiedadI[i],PropiedadI[i][PID]); PE[i] = CreatePickup(19522,1,PropiedadI[i][CorX],PropiedadI[i][CorY],PropiedadI[i][CorZ],PropiedadI[i][PVW]); } } PropiedadI[i][PLabel] = Create3DTextLabel(String,COLOR_BLANCO,PropiedadI[i][CorX],PropiedadI[i][CorY],PropiedadI[i][CorZ],25.0,PropiedadI[i][PVW]); CP ++; } } return 1; } #if defined FILTERSCRIPT public OnFilterScriptInit() { CargarPropiedades(); return 1; } public OnFilterScriptExit() { return 1; } main() { #else #endif /* */ public OnGameModeInit() { CargarPropiedades(); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { //variable de comandos new cmd[256]; //============================================================================== //Comandos if(strcmp(cmd, "/Comprarcasa", true) == 0) { new String[200],Nombre[MAX_PLAYER_NAME],Archivo[150]; GetPlayerName(playerid,Nombre,sizeof(Nombre)); for(new i = 0; i < M_PROPIEDADES; i++) { if(IsPlayerInRangeOfPoint(playerid,3.0,PropiedadI[i][CorX],PropiedadI[i][CorY],PropiedadI[i][CorZ])) { if(PropiedadI[i][Comprada] == 0) { if(GetPlayerMoney(playerid) >= PropiedadI[i][Precioc]) { GivePlayerMoney(playerid,-PropiedadI[i][Precioc]); DestroyPickup(PE[i]); PE[i] = CreatePickup(1273,1,PropiedadI[i][CorX],PropiedadI[i][CorY],PropiedadI[i][CorZ],PropiedadI[i][PVW]); format(String,sizeof(String),"{FFFFFF}[Propietario: {F89100}%s]\nPropiedad de {F89100}%d {FFFFFF}",Nombre,PropiedadI[i]); PropiedadI[i][Comprada] = 1; format(PropiedadI[i][Propietario],24,"%s",Nombre); format(Archivo,sizeof(Archivo),"Propiedades/%i.ini",i); if(dini_Exists(Archivo)) { dini_Set(Archivo,"Propietario",Nombre); dini_IntSet(Archivo,"Comprada",1); } Update3DTextLabelText(PropiedadI[i][PLabel],COLOR_BLANCO,String); } } } } return 1; } if(strcmp(cmd, "/venderpropiedad", true) == 0) { new String[200],Archivo[150],Nombre[24]; GetPlayerName(playerid,Nombre,sizeof(Nombre)); for(new i = 0; i < M_PROPIEDADES; i++) { if(IsPlayerInRangeOfPoint(playerid,3.0,PropiedadI[i][CorX],PropiedadI[i][CorY],PropiedadI[i][CorZ])) { if(PropiedadI[i][Comprada] == 1 && strcmp(Nombre,PropiedadI[i][Propietario]) != 0) return SendClientMessage(playerid,-1,"No eres dueсo de йsta propiedad."); GivePlayerMoney(playerid,PropiedadI[i][Precioc]*21/100); format(String,sizeof(String),"{F89100}[EN VENTA]{FFFFFF}\nPropiedad de{F89100} %d{FFFFFF}\n\nValor {0FDF00}$%d",PropiedadI[i],PropiedadI[i][Precioc]); PropiedadI[i][Comprada] = 0; format(Archivo,sizeof(Archivo),"Propiedades/%i.ini",i); if(dini_Exists(Archivo)) { dini_Set(Archivo,"Propietario","Nadie"); dini_IntSet(Archivo,"Comprada",0); } Update3DTextLabelText(PropiedadI[i][PLabel],COLOR_BLANCO,String); } } return 1; } if(strcmp(cmd, "/Entrarcasa", true) == 0) { new Nombre[24]; GetPlayerPos(playerid,SX,SY,SZ); GetPlayerName(playerid,Nombre,sizeof(Nombre)); for(new i = 0; i < M_PROPIEDADES; i++) { if(IsPlayerInRangeOfPoint(playerid,3.0,PropiedadI[i][CorX],PropiedadI[i][CorY],PropiedadI[i][CorZ])) { if(PropiedadI[i][Cerrada] == 0) { if(PropiedadI[i][Comprada] == 1 && strcmp(Nombre,PropiedadI[i][Propietario]) != 0) return SendClientMessage(playerid,-1,"No eres dueсo de йsta propiedad."); SetPlayerPos(playerid,PropiedadI[i][CorXi],PropiedadI[i][CorYi],PropiedadI[i][CorZi]); SetPlayerInterior(playerid,PropiedadI[i][Interiorcasa]); } } } return 1; } if(strcmp(cmd, "/Salircasa", true) == 0) { for(new i = 0; i < M_PROPIEDADES; i++) { if(IsPlayerInRangeOfPoint(playerid,10.0,PropiedadI[i][CorXi],PropiedadI[i][CorYi],PropiedadI[i][CorZi])) { SetPlayerInterior(playerid,0); SetPlayerPos(playerid,SX,SY,SZ); } else if(IsPlayerInRangeOfPoint(playerid,10.0,PropiedadI[i][CorXi],PropiedadI[i][CorYi],PropiedadI[i][CorZi])) { SetPlayerInterior(playerid,0); SetPlayerPos(playerid,SX,SY,SZ);} else if(IsPlayerInRangeOfPoint(playerid,10.0,PropiedadI[i][CorXi],PropiedadI[i][CorYi],PropiedadI[i][CorZi])){ SetPlayerInterior(playerid,0); SetPlayerPos(playerid,SX,SY,SZ);} } return 1; } if(strcmp(cmd, "/Cerrarcasa", true) == 0) { new Nombre[24]; GetPlayerName(playerid,Nombre,sizeof(Nombre)); for(new i = 0; i < M_PROPIEDADES; i++) { if(IsPlayerInRangeOfPoint(playerid,3.0,PropiedadI[i][CorX],PropiedadI[i][CorY],PropiedadI[i][CorZ])) { if(PropiedadI[i][Comprada] == 1 && strcmp(Nombre,PropiedadI[i][Propietario]) != 0) return SendClientMessage(playerid,-1,"No eres dueсo de йsta propiedad."); if(PropiedadI[i][Cerrada] == 0) { PropiedadI[i][Cerrada] = 1; SendClientMessage(playerid,COLOR_BLANCO,"Cerraste tu propiedad.");} else if(PropiedadI[i][Cerrada] == 1) { PropiedadI[i][Cerrada] = 0; SendClientMessage(playerid,COLOR_BLANCO,"Abriste tu propiedad.");} } } return 1; } if(strcmp(cmd, "/ayudacasas", true) == 0) { new iString[10]; //<---- Si produce bug cambiar al numero que desйn (No Cambiar ah un numero alto como 500) (les saltara mensaje de maximas particulas usadas ) strcat(iString, "{007bff}/Comprarcasa\t{FFFFFF}Para comprar una casa.\n"); strcat(iString, "{007bff}/Cerrarcasa\t\t{FFFFFF}Para cerrar tu casa.\n"); strcat(iString, "{007bff}/Entrarcasa\t\t{FFFFFF}Para entrar ah tu casa.\n"); strcat(iString, "{007bff}/Salircasa\t\t{FFFFFF}Para Salir de tu casa.\n"); strcat(iString, "{007bff}/VenderPropiedad\t\t{FFFFFF}Para vender tu propiedad.\n"); ShowPlayerDialog(playerid,Comandosc, DIALOG_STYLE_MSGBOX, "{80FF00}Lista de Comandos casa", iString, "Aceptar", "Salir"); PlayerPlaySound(playerid,1139,0.0,0.0,0.0); return 1; } return 0; }
Vamos ah la carpeta scriptfiles, y hacemos una nueva carpeta ahi mismo llamada Propiedades, despuйs de a ver la creado entramos y vamos ah este link http://www.mediafire.com/file/12u0xixx4k2xtxx/0.ini lo descargamos y lo pasamos ah la carpeta propiedades en ella vendra esto
Code:
Propietario=[DUB]FlaNy (cambiar por el nick de ustedes) Comprada=1 (si esta comprada oh no, si las quieren poner en venta pongan en 0) Precio=5000000 (el precio cambiar lo que gusten CorX= Cordenadas de tu casa (entrada) CorY= Cordenadas de tu casa CorZ= Cordenadas de tu casa VirtualWorld=El mundo virtual en el que estara casi todo esta en el no 1 oh depende de tu sv Int=Id del interior Cerrada=1 (no cambiar) CorXi= Cordenadas de interior (casa) CorXi=Cordenadas de interior (casa) Cori=Cordenadas de interior (casa) PropiedadID=0 (el id de las propiedades este bloc de notas dice 0 creen los archivos del 0 al numero de casas que gusten
Los archivos delas casas son .ini
En la prуxima actualizaciуn tratare de crear un comando con IsPlayerAdmin (rcon) para crear casas desde el juego
De mi parte eso seria todo espero y les aya gustado el sistema de casas Cualquier duda publicarla en el post.С