Novidades

2/14/2020

CharaDa_Fox

[FilterScript] Sistema de Casas * PortalFox* 2020

#include a_samp
#include ZCMD
#include DOF2
#define MAX_CASAS 20

#define DIALOG_CASA1 50
#define DIALOG_CASA2 51
#define DIALOG_CASA3 52
#define DIALOG_INTERIOR_CASA 53
#define Create3DTextLabel
#define Delete3DTextLabel
enum CasaSamp
{
cComprada,
Float:PosXF,
Float:PosYF,
Float:PosZF,
InteriorCasa
};

new
InfoCasa [ MAX_CASAS ] [ CasaSamp ],
StringCasa [ 60 ],
StringCasa2 [ 60 ],
Float:Pos [ 3 ][ MAX_PLAYERS ],
InteriorPos [ MAX_PLAYERS ] ,
PrecoCasa [ MAX_PLAYERS ],
CasaCriada [ MAX_PLAYERS ] = 0,
ProximaCasa = 0
;

new Text3D:HouseLabel[MAX_CASAS];

public OnFilterScriptInit()
{
for(new i = 0; i < MAX_CASAS; i++)
{
format ( StringCasa , sizeof ( StringCasa ) ,"Casas/Casa/%i.ini", i ) ;
InfoCasa[i][PosXF] = DOF2_GetFloat ( StringCasa, "PosXF" );
InfoCasa[i][PosYF] = DOF2_GetFloat ( StringCasa, "PosYF" );
InfoCasa[i][PosZF] = DOF2_GetFloat ( StringCasa, "PosZF" );
if(InfoCasa[i][cComprada] == 0)
{
format(StringCasa, sizeof(StringCasa), "[CASA A VENDA]\n|Preço: %d|\n|Use /comprarcasa para comprar esta propriedade.|",DOF2_GetInt(StringCasa, "Preco"));
HouseLabel[i] = Create3DTextLabel(StringCasa,0x006400FF,InfoCasa[i][PosXF],InfoCasa[i][PosYF],InfoCasa[i][PosZF],60,0,1);
AddStaticPickup(1273, 2, InfoCasa[i][PosXF],InfoCasa[i][PosYF],InfoCasa[i][PosZF]);
}
if(InfoCasa[i][cComprada] == 1)
{
format(StringCasa, sizeof(StringCasa), "[CASA]\n|Dono: %s|\n|Aperte F para Entrar.|", DOF2_GetString ( StringCasa, "Dono" ));
HouseLabel[i] = Create3DTextLabel(StringCasa,0x006400FF,InfoCasa[i][PosXF],InfoCasa[i][PosYF],InfoCasa[i][PosZF],60,0,1);
AddStaticPickup(1318, 2,InfoCasa[i][PosXF],InfoCasa[i][PosYF],InfoCasa[i][PosZF]);
}
}
return true;
}

public OnPlayerSpawn ( playerid )
{
new pname[24];
GetPlayerName(playerid,pname,sizeof(pname));
format(StringCasa, 60, "Casas/CasaDono/%s.ini", pname ) ;
format(StringCasa2, 60, "Casas/Casa/%i.ini", DOF2_GetInt ( StringCasa, "NumeroCasa") ) ;
SetPlayerPos ( playerid, DOF2_GetFloat ( StringCasa2, "PosXF" ),DOF2_GetFloat ( StringCasa2, "PosYF" ),DOF2_GetFloat ( StringCasa2, "PosZF" )) ;
SetPlayerInterior ( playerid, DOF2_GetInt ( StringCasa2, "Interior" ));
return true;
}

stock CriarCasa ( Preco, Float:XCasa, Float:YCasa, Float:ZCasa, Float:Xd, Float:Yd, Float:Zd, Interior, WorldID )
{
format(StringCasa, 60, "Casas/Casa/%i.ini", ProximaCasa ) ;
if(!DOF2_FileExists(StringCasa)) DOF2_CreateFile(StringCasa);

DOF2_SetString(StringCasa, "Dono","Nenhum");
DOF2_SetFloat(StringCasa, "PosXF", XCasa);
DOF2_SetFloat(StringCasa, "PosYF", YCasa);
DOF2_SetFloat(StringCasa, "PosZF", ZCasa);
DOF2_SetFloat(StringCasa, "PosXD", Xd);
DOF2_SetFloat(StringCasa, "PosYD", Yd);
DOF2_SetFloat(StringCasa, "PosZD", Zd);
DOF2_SetInt(StringCasa, "Interior", Interior);
DOF2_SetInt(StringCasa, "WorldID", WorldID);
DOF2_SetInt(StringCasa, "Preco", Preco);
DOF2_SaveFile();
InfoCasa[ProximaCasa][cComprada] = 0;
for(new h = 0; h < MAX_CASAS; h++)
{
if(InfoCasa[h][cComprada] == 0)
{
new Casa[128];
format(Casa, sizeof(Casa), "[CASA A VENDA]\n|Preço: %d|\n|Use /comprarcasa para comprar esta propriedade.|",DOF2_GetInt(StringCasa, "Preco"));
HouseLabel[h] = Create3DTextLabel(Casa,0x006400FF,XCasa,YCasa,ZCas a,60,0,1);
AddStaticPickup(1273, 2, XCasa,YCasa,ZCasa);
}
}
return true;
}


CMD:criarcasa ( playerid )
{
ShowPlayerDialog(playerid,DIALOG_CASA1,DIALOG_STYL E_MSGBOX,"Casa","Você deseja criar uma casa neste local?","Sim","Não");
GetPlayerPos ( playerid, Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] ) ;
InteriorPos [ playerid ] = GetPlayerInterior( playerid );
return true;
}

CMD:comprarcasa ( playerid )
{
for(new i = 0; i < MAX_CASAS; i++)
{
format ( StringCasa , sizeof ( StringCasa ) ,"Casas/Casa/%i.ini", i ) ;
InfoCasa[i][PosXF] = DOF2_GetFloat ( StringCasa, "PosXF" );
InfoCasa[i][PosYF] = DOF2_GetFloat ( StringCasa, "PosYF" );
InfoCasa[i][PosZF] = DOF2_GetFloat ( StringCasa, "PosZF" );
if(IsPlayerInRangeOfPoint(playerid,8.0,InfoCasa[i][PosXF],InfoCasa[i][PosYF],InfoCasa[i][PosZF]))
{
new pname [ 24 ] ;
GetPlayerName(playerid,pname,sizeof(pname));
format ( StringCasa2 , sizeof ( StringCasa2 ) ,"Casas/CasaDono/%s.ini", pname ) ;
if(DOF2_FileExists(StringCasa2))
return SendClientMessage ( playerid , 0xAA3333AA, "Você já possui uma casa!" ) ;
if(GetPlayerMoney(playerid) < DOF2_GetInt ( StringCasa, "Preco" ))
return SendClientMessage(playerid,0xAA3333AA,"Você não tem dinheiro suficiente");
if ( strcmp ( DOF2_GetString ( StringCasa, "Dono" ), "Nenhum", false ) )
return SendClientMessage(playerid,0xAA3333AA,"Esta casa já tem dono.");
new Casa2 [ 60 ];
if(DOF2_FileExists(StringCasa))
{
DOF2_SetString(StringCasa, "Dono", pname );
DOF2_SaveFile();
}
Delete3DTextLabel(HouseLabel[i]);
format(Casa2, sizeof(Casa2), "[CASA]\n|Dono: %s|\n|Aperte F para Entrar.|", DOF2_GetString ( StringCasa, "Dono" ));
HouseLabel[i] = Create3DTextLabel(Casa2,0xFF0000FF,InfoCasa[i][PosXF],InfoCasa[i][PosYF],InfoCasa[i][PosZF],60,0,1);
GivePlayerMoney(playerid,-DOF2_GetInt(StringCasa, "Preco" ));
AddStaticPickup(1318, 2,InfoCasa[i][PosXF],InfoCasa[i][PosYF],InfoCasa[i][PosZF]);
InfoCasa[ i ][cComprada] = 1;
if(!DOF2_FileExists(StringCasa2))
{
DOF2_CreateFile ( StringCasa2 ) ;
DOF2_SetInt ( StringCasa2, "NumeroCasa", i );
DOF2_SaveFile();
}
}
}
return true;
}

CMD:vendercasa ( playerid )
{
new pname[24];
GetPlayerName(playerid,pname,sizeof(pname));
format(StringCasa, 60, "Casas/CasaDono/%s.ini", pname ) ;
format(StringCasa2, 60, "Casas/Casa/%i.ini", DOF2_GetInt ( StringCasa, "NumeroCasa") ) ;
if(!DOF2_FileExists(StringCasa))
return SendClientMessage ( playerid , 0xAA3333AA, "Você não possui uma casa!" ) ;
if(IsPlayerInRangeOfPoint(playerid,8.0,DOF2_GetFlo at ( StringCasa2, "PosXF" ),DOF2_GetFloat ( StringCasa2, "PosYF" ),DOF2_GetFloat ( StringCasa2, "PosZF" )))
{
DOF2_SetString ( StringCasa2, "Dono", "Nenhum" );
DOF2_SaveFile();
new Casa2 [ 60 ];
Delete3DTextLabel(HouseLabel[DOF2_GetInt ( StringCasa, "NumeroCasa")]);
format(Casa2, sizeof(Casa2), "[CASA A VENDA]\n|Preço: %d|\n|Use /comprarcasa para comprar esta propriedade.|",DOF2_GetInt(StringCasa2, "Preco"));
HouseLabel[DOF2_GetInt ( StringCasa, "NumeroCasa")] = Create3DTextLabel(Casa2,0x006400FF,DOF2_GetFloat ( StringCasa2, "PosXF" ),DOF2_GetFloat ( StringCasa2, "PosYF" ),DOF2_GetFloat ( StringCasa2, "PosZF" ),60,0,1);
AddStaticPickup(1273, 2,DOF2_GetFloat ( StringCasa2, "PosXF" ),DOF2_GetFloat ( StringCasa2, "PosYF" ),DOF2_GetFloat ( StringCasa2, "PosZF" ));
InfoCasa[ DOF2_GetInt ( StringCasa, "NumeroCasa") ][cComprada] = 0;
DOF2_RemoveFile(StringCasa);
}
else SendClientMessage ( playerid , 0xAA3333AA, "Você não está perto de sua casa!" ) ;
return true;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
for(new i = 0; i < MAX_CASAS; i++)
{
format(StringCasa2, 60, "Casas/Casa/%i.ini", i ) ;
if ( newkeys == KEY_SECONDARY_ATTACK )
{
if(IsPlayerInRangeOfPoint(playerid,5.0,DOF2_GetFlo at ( StringCasa2, "PosXF" ),DOF2_GetFloat ( StringCasa2, "PosYF" ),DOF2_GetFloat ( StringCasa2, "PosZF" )))
{
SetPlayerPos ( playerid , DOF2_GetFloat ( StringCasa2, "PosXD" ),DOF2_GetFloat ( StringCasa2, "PosYD" ),DOF2_GetFloat ( StringCasa2, "PosZD" ) ) ;
SetPlayerInterior ( playerid , DOF2_GetInt ( StringCasa2, "Interior" ) ) ;
SetPlayerVirtualWorld( playerid , DOF2_GetInt ( StringCasa2, "WorldID" ) ) ;
format(StringCasa, sizeof(StringCasa), "Você entrou na casa de id: %d", i);
SendClientMessage(playerid, 0x38FF06FF, StringCasa);
}
else if(IsPlayerInRangeOfPoint(playerid,5.0,DOF2_GetFlo at ( StringCasa2, "PosXD" ),DOF2_GetFloat ( StringCasa2, "PosYD" ),DOF2_GetFloat ( StringCasa2, "PosZD" )))
{
SetPlayerPos ( playerid , DOF2_GetFloat ( StringCasa2, "PosXF" ),DOF2_GetFloat ( StringCasa2, "PosYF" ),DOF2_GetFloat ( StringCasa2, "PosZF" ) ) ;
SetPlayerInterior ( playerid , 0 ) ;
SetPlayerVirtualWorld( playerid , 0 ) ;
format(StringCasa, sizeof(StringCasa), "Você saiu da casa de id: %d", i);
SendClientMessage(playerid, 0x38FF06FF, StringCasa);
}
}
}
return true;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_CASA1)
{
if(response)
{
ShowPlayerDialog(playerid,DIALOG_CASA2,DIALOG_STYL E_INPUT,"Casa","Digite o Preço da casa:","Ok","Cancelar");
}
else if(!response)
return SendClientMessage ( playerid, -1 , "Você desistiu de fazer uma casa.");
}

if(dialogid == DIALOG_CASA2 )
{
if(response)
{
if ( strval ( inputtext ) > 999999 || strval ( inputtext ) < 10 )
return SendClientMessage(playerid,0xB22222AA,"[ERRO] Valor Invalido!") , ShowPlayerDialog(playerid,DIALOG_CASA2,DIALOG_STYL E_INPUT,"Casa","Digite o Preço da casa ( Valor entre 10 e 999999):","Ok","Cancelar");
PrecoCasa [ playerid ] = strval ( inputtext ) ;
ShowPlayerDialog(playerid,DIALOG_CASA3,DIALOG_STYL E_LIST,"Casa","{FF0000}Grande/{FFE4C4}2 salas/{00FFFF}3 banheiros\n{FF0000}Médio/{FFE4C4}1 sala/{00FFFF}1 banheiro\n{FF0000}Médio/{FFE4C4}1 sala/{00FFFF}1 banheiro\n{FF0000}Muito Grande/{FFE4C4}2 salas/{00FFFF}4 banheiros\n{FF0000}Médio/{FFE4C4}1 sala/{00FFFF}2 banheiros","Ok","Cancelar");
}
else if(!response)
return SendClientMessage ( playerid, -1 , "Você desistiu de fazer uma casa.");
}

if(dialogid == DIALOG_CASA3)
{
if( response )
{
switch(listitem)
{
case 0:
{
SetPlayerPos ( playerid , 235.508994,1189.169897,1080.339966 );
SetPlayerInterior( playerid , 3 ) ;
SetPlayerCameraPos ( playerid, 233.694824, 1167.237426, 1088.257812 ) ; // CASA1
SetPlayerCameraLookAt ( playerid, 234.220092, 1199.120361, 1080.257812 ) ; // CASA1
CasaCriada [ playerid ] = 1;
ShowPlayerDialog(playerid,DIALOG_INTERIOR_CASA,DIA LOG_STYLE_MSGBOX,"Casa","Você deseja este interior?","Casa Pronta","Não");
}
case 1:
{
SetPlayerPos ( playerid ,225.756989,1240.000000,1082.149902 ) ;
SetPlayerInterior ( playerid ,2 ) ;
SetPlayerCameraPos ( playerid, 225.744766, 1222.306518, 1091.550048 ) ; //CASA2
SetPlayerCameraLookAt ( playerid, 227.270034, 1250.176391, 1082.140625 ) ; //CASA2
CasaCriada [ playerid ] = 2;
ShowPlayerDialog(playerid,DIALOG_INTERIOR_CASA,DIA LOG_STYLE_MSGBOX,"Casa","Você deseja este interior?","Casa Pronta","Não");
}
case 2:
{
SetPlayerCameraPos ( playerid,223.043991, 1272.915039, 1085.391206 ) ; //CASA3
SetPlayerCameraLookAt ( playerid,224.569259, 1299.142822, 1082.199951 ) ; //CASA3
SetPlayerInterior ( playerid ,1);
CasaCriada [ playerid ] = 3;
ShowPlayerDialog(playerid,DIALOG_INTERIOR_CASA,DIA LOG_STYLE_MSGBOX,"Casa","Você deseja este interior?","Casa Pronta","Não");
}
case 3:
{
SetPlayerCameraPos ( playerid,-66.415954, 1017.126892, 1092.946044 ) ; //CASA4
SetPlayerCameraLookAt ( playerid,227.156265, 1032.362915, 1084.014648 ) ; //CASA4
SetPlayerInterior ( playerid ,7);
CasaCriada [ playerid ] = 4;
ShowPlayerDialog(playerid,DIALOG_INTERIOR_CASA,DIA LOG_STYLE_MSGBOX,"Casa","Você deseja este interior?","Casa Pronta","Não");
}
case 4:
{
SetPlayerCameraPos ( playerid,295.138977, 1458.740356, 1092.885498 ) ; //CASA5
SetPlayerCameraLookAt ( playerid,296.664245, 1484.352905, 1080.519897 ) ; //CASA5
SetPlayerInterior ( playerid ,15);
CasaCriada [ playerid ] = 5;
ShowPlayerDialog(playerid,DIALOG_INTERIOR_CASA,DIA LOG_STYLE_MSGBOX,"Casa","Você deseja este interior?","Casa Pronta","Não");
}
}
}
else if(!response)
{
SendClientMessage ( playerid, -1 , "Você desistiu de fazer uma casa.");
CasaCriada [ playerid ] = 0;
SetPlayerPos ( playerid, Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] );
SetPlayerInterior ( playerid, InteriorPos [ playerid ] ) ;
}
}

if(dialogid == DIALOG_INTERIOR_CASA)
{
if(response)
{
switch(CasaCriada [ playerid ])
{
case 1:
{
ProximaCasa++;
CriarCasa ( PrecoCasa [ playerid ] , Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] , 235.508994,1189.169897,1080.339966, 3,ProximaCasa ) ;
SendClientMessage ( playerid , 0xFF69B4, "Casa criada com sucesso!" ) ;
SetPlayerPos ( playerid, Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] );
SetPlayerInterior ( playerid, InteriorPos [ playerid ] ) ;
CasaCriada [ playerid ] = 0;
}
case 2:
{
ProximaCasa++;
CriarCasa ( PrecoCasa [ playerid ] , Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] , 225.756989,1240.000000,1082.149902, 2,ProximaCasa ) ;
SendClientMessage ( playerid , 0xFF69B4, "Casa criada com sucesso!" ) ;
SetPlayerPos ( playerid, Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] );
SetPlayerInterior ( playerid, InteriorPos [ playerid ] ) ;
CasaCriada [ playerid ] = 0;
}
case 3:
{
ProximaCasa++;
CriarCasa ( PrecoCasa [ playerid ] , Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] , 223.043991, 1272.915039, 1085.391206, 1,ProximaCasa ) ;
SendClientMessage ( playerid , 0xFF69B4, "Casa criada com sucesso!" ) ;
SetPlayerPos ( playerid, Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] );
SetPlayerInterior ( playerid, InteriorPos [ playerid ] ) ;
CasaCriada [ playerid ] = 0;
}
case 4:
{
ProximaCasa++;
CriarCasa ( PrecoCasa [ playerid ] , Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] , -66.415954, 1017.126892, 1092.946044, 7,ProximaCasa ) ;
SendClientMessage ( playerid , 0xFF69B4, "Casa criada com sucesso!" ) ;
SetPlayerPos ( playerid, Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] );
SetPlayerInterior ( playerid, InteriorPos [ playerid ] ) ;
CasaCriada [ playerid ] = 0;
}
case 5:
{
ProximaCasa++;
CriarCasa ( PrecoCasa [ playerid ] , Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] , 295.138977, 1458.740356, 1092.885498, 15,ProximaCasa ) ;
SendClientMessage ( playerid , 0xFF69B4, "Casa criada com sucesso!" ) ;
SetPlayerPos ( playerid, Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] );
SetPlayerInterior ( playerid, InteriorPos [ playerid ] ) ;
CasaCriada [ playerid ] = 0;
}
}
}
else if(!response)
{
SendClientMessage ( playerid, -1 , "Você desistiu de fazer uma casa.");
SetPlayerPos ( playerid, Pos [ 0 ] [ playerid ] , Pos [ 1 ][ playerid ] , Pos [ 2 ] [ playerid ] );
SetPlayerInterior ( playerid, InteriorPos [ playerid ] ) ;
CasaCriada [ playerid ] = 0;
}
}
return true;
}

Subscribe to this Blog via Email :
Previous
Next Post »