Casa. -
Olб... Estou interesse de como criar uma casa samp.. Ex: /criarcasa... Alguem pode me passar so uma "base" ? Pois to pensando em criar um fs ...
Re: Casa. -
Fiz uma base aqui rapidinho, veja agora faзa o resto, qualquer coisa peзa ajuda.
Re: Casa. -
Re: Casa. -
pawn Код:
#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
enum CasaSamp
{
cComprada,
Float:PosXF,
Float:PosYF,
Float:PosZF
};
new
InfoCasa [ MAX_CASAS ] [ CasaSamp ],
StringCasa [ 60 ],
Float:Pos [ 3 ][ MAX_PLAYERS ],
InteriorPos [ MAX_PLAYERS ] ,
PrecoCasa [ MAX_PLAYERS ],
CasaCriada [ MAX_PLAYERS ] = 0,
ProximaCasa = 1
;
new Text3D:HouseLabel[MAX_CASAS];
public OnFilterScriptInit()
{
for(new i = 0; i < MAX_CASAS; i++)
{
format ( StringCasa , sizeof ( StringCasa ) ,"Casas/%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;
}
stock CriarCasa ( Preco, Float:XCasa, Float:YCasa, Float:ZCasa, Float:Xd, Float:Yd, Float:Zd, Interior, WorldID )
{
format(StringCasa, 60, "Casas/%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,ZCasa,60,0,1);
AddStaticPickup(1273, 2, XCasa,YCasa,ZCasa);
}
}
return true;
}
CMD:criarcasa ( playerid )
{
ShowPlayerDialog(playerid,DIALOG_CASA1,DIALOG_STYLE_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/%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])) continue;
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 ) == 0 )
return SendClientMessage(playerid,0xAA3333AA,"Esta casa jб tem dono.");
new pname[24],Casa2 [ 60 ];
GetPlayerName(playerid,pname,sizeof(pname));
if(DOF2_FileExists(StringCasa))
{
DOF2_SetString(StringCasa, "Dono", pname );
DOF2_SaveFile();
}
format(Casa2,sizeof(Casa2),"[CASA]\n|Dono: %s|\n|Aperte F para Entrar.|", DOF2_GetString ( StringCasa, "Dono" ));
Update3DTextLabelText(HouseLabel[i],0xFF0000FF,Casa2);
GivePlayerMoney(playerid,-DOF2_GetInt(StringCasa, "Preco" ));
AddStaticPickup(1318, 2,InfoCasa[i][PosXF],InfoCasa[i][PosYF],InfoCasa[i][PosZF]);
InfoCasa[ i ][cComprada] = 1;
}
return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_CASA1)
{
if(response)
{
ShowPlayerDialog(playerid,DIALOG_CASA2,DIALOG_STYLE_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_STYLE_INPUT,"Casa","Digite o Preзo da casa ( Valor entre 10 e 999999):","Ok","Cancelar");
PrecoCasa [ playerid ] = strval ( inputtext ) ;
ShowPlayerDialog(playerid,DIALOG_CASA3,DIALOG_STYLE_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,DIALOG_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,DIALOG_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,DIALOG_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,DIALOG_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,DIALOG_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;
}
Acabei de fazer aqui, testa aн, se de algum problema me fale que eu tento resolver xD
Re: Casa. -
[FeK]Knife.. Pode me add skype ?