CMD:casa(playerid, params[])
{
new aname[MAX_PLAYER_NAME], string[124], string1[155], file[255], opcao[50], funcao[50], msg[155];
GetPlayerName(playerid, aname, sizeof(aname));
if(sscanf(params, "s[50]s[50]", funcao, opcao)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}use: /casa [comprar, vender, moradia, veiculo]");
if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Vocк nгo estб conectado no servidor!");
format(file, sizeof(file), PASTA_CONTAS, aname);
if(strfind(funcao, "comprar", true) != -1)
{
if(LiberadoCC [ playerid ] != 1) return SendClientMessage(playerid, -1,"[x] {FF0000}Vocк nгo estб liberado para comprar uma casa, peзa a um(a) administrador(a) a permissгo.");
for( new c = 0; c < MAX_CASAS; c++ )
{
format( string, sizeof( string ) , "/Casas/casa%d.ini", c ) ;
if(dini_Exists( string ) )
{
if(c == MAX_CASAS) return SendClientMessage(playerid, -1, "[INFO] {FF0000}Vocк nгo estб em uma casa!");
if(IsPlayerInRangeOfPoint( playerid, 2.0, dini_Float( string, "PosX" ) , dini_Float( string, "PosY" ) , dini_Float( string, "PosZ" )))
{
if(dini_Int( string, "TDono" ) != 0 ) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Estб casa nгo estб a venda." ) ;
if(GetPlayerMoney( playerid ) < dini_Int( string, "Preco" ) ) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Vocк nгo tem dinheiro suficiente." ) ;
if(GetCasas( playerid ) != 0 ) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Vocк sу pode possuir uma casa." ) ;
for( new i = 0; i <GetMaxPlayers( ) ; i++ ) { RemovePlayerMapIcon(i, mapiconcasaid [ c ] ); }
dini_IntSet( string, "TDono", 1 ) ;
dini_Set( string, "Dono", aname ) ;
GivePlayerMoney( playerid, -dini_Int( string, "Preco" ) ) ;
DestroyPickup( dini_Int( string, "Id" ) ) ;
pickupcasaid [ c ] = CreatePickup( 1272, 1, dini_Float( string, "PosX" ) , dini_Float( string, "PosY" ) , dini_Float( string, "PosZ" ) , -1 ) ;
dini_IntSet( string, "Id", pickupcasaid [ c ] ) ;
new Float:X, Float:Y, Float:Z;
GetPlayerPos( playerid, X, Y, Z ) ;
dini_FloatSet( file,"CasaX",Float:X ) ;
dini_FloatSet( file,"CasaY",Float:Y ) ;
dini_FloatSet( file,"CasaZ",Float:Z ) ;
dini_IntSet( file, "TemCasa",1 ) ;
LiberadoCC [ playerid ] = 0;
Delete3DTextLabel(labelcasaid [ c ] );
format( string1, sizeof( string1 ) ," {FFFFFF}[ Casa ID: %d - {FF0000}Possui dono(a) {FFFFFF}]\n{FF4500}Dono: {FFFFFF}%s\n{FF4500}Morador: {FFFFFF}%s\n{FF4500}Preзo: {FFFFFF}%d\n{FFFF00}use: {FFFFFF}/entrarcasa",c,dini_Get( string, "Dono" ), dini_Get( string, "Morador" ),dini_Int( string, "Preco" ) ) ;
labelcasaid [ c ] = Create3DTextLabel( string1, 0x008080FF, dini_Float( string, "PosX" ) , dini_Float( string, "PosY" ) , dini_Float( string, "PosZ" ), 40.0, 0, 0 ) ;
mapiconcasaid [ c ] = CreateDynamicMapIcon(dini_Float( string, "PosX" ) , dini_Float( string, "PosY" ) , dini_Float( string, "PosZ" ), 32, -1, -1, -1, -1, 60.0);
new text [ 255 ];
format( text, sizeof( text ) ,"{00FF7F}•{FFFFFF}» {00FF7F}O( a ) player {FFFFFF}%s {00FF7F}comprou a casa ID {FFFFFF}%d {00FF7F}localizada em: {FFFFFF}%s",aname, c, GetPlayerArea( playerid ) ) ;
SendClientMessageToAll( -1,text ) ;
return 1;
}
}
}
}
if(strfind(funcao, "moradia", true) != -1)
{
if(strfind(opcao, "aceitar", true) != -1)
{
for( new c = 0; c < MAX_CASAS; c++ )
{
format( string, sizeof( string ) , "/Casas/casa%d.ini", c ) ;
if( dini_Int( string, "TMorador" ) == 1 )
{
if( strcmp( dini_Get( string, "Morador" ) , aname, true ) == 0 )
{
dini_IntSet( string, "TMorador", 0 );
dini_Set( string, "Morador", "Ninguem" );
format(msg, sizeof(msg), "[CASA] Vocк nгo mora mais na sua antiga casa ID: %d !", c);
SendClientMessage(playerid, 0xFFFF00AA, msg);
}
}
}
format( string, sizeof( string ) , "/Casas/casa%d.ini", moradia [ playerid ] ) ;
if(!dini_Exists( string ) ) return SendClientMessage(playerid, 0xFF0000AA, "[CASA] A casa que vocк foi convidado(a) para morar nгo existe!");
if( morar [ playerid ] != 1 ) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Vocк nгo foi convidado( a ) para morar em uma casa." ) ;
dini_IntSet( string, "TMorador", 1 ) ;
dini_Set( string, "Morador", aname ) ;
dini_FloatSet( file,"CasaX", dini_Float( string, "PosX" ) ) ;
dini_FloatSet( file,"CasaY", dini_Float( string, "PosY" ) ) ;
dini_FloatSet( file,"CasaZ", dini_Float( string, "PosZ" ) ) ;
SetSpawnInfo( playerid, 1, dini_Int( file, "Skin" ) , dini_Int( file, "CasaX" ) , dini_Int( file, "CasaY" ) , dini_Int( file, "CasaZ" ) , 354.1657, 0, 0, 0, 0, 0, 0 ) ;
format(msg, sizeof(msg),"[CASA] Vocк aceitou morar na nova casa ID: %d!", moradia[playerid]) ;
SendClientMessage(playerid, 0xFFFF00AA, msg);
SendClientMessage( convitede [ playerid ], -1, "{00FF7F}•{FFFFFF}» {00FF7F}O jogador aceitou morar em sua casa." ) ;
morar [ playerid ] = 0;
moradia [ playerid ] = 0;
convitede [ playerid ] = 0;
}
else if(strfind(opcao, "recusar", true) != -1)
{
if(morar[playerid] != 1) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Vocк nгo foi convidado para morar em uma casa." ) ;
SendClientMessage( playerid, -1, "•» {FFFF00}Vocк recusou o convite de moradia." ) ;
format(msg, sizeof(msg), "[CASA] O(A) player %s recusou o convite de moradia enviado por vocк!", aname);
SendClientMessage( convitede [ playerid ], 0xFFFF00AA, msg) ;
morar [ playerid ] = 0;
moradia [ playerid ] = 0;
convitede [ playerid ] = 0;
return 1;
}
}
return 1;
}
if(sscanf(params, "s[50]s[50]", funcao, opcao)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}use: /casa [comprar, vender, moradia, veiculo]");
if(sscanf(params, "s[50]", funcao)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}use: /casa [comprar, vender, moradia, veiculo]");
if(sscanf(params, "s[50]", funcao, opcao)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}use: /casa moradia [aceitar/recusar]");
CMD:casa(playerid, params[]) { new aname[MAX_PLAYER_NAME], string[124], string1[155], file[255], opcao[50], funcao[50], msg[155]; GetPlayerName(playerid, aname, sizeof(aname)); if(sscanf(params, "s[50]", funcao)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}use: /casa [comprar, vender, moradia, veiculo]"); if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Vocк nгo estб conectado no servidor!"); format(file, sizeof(file), PASTA_CONTAS, aname); if(strfind(funcao, "comprar", true) != -1) { if(LiberadoCC [ playerid ] != 1) return SendClientMessage(playerid, -1,"[x] {FF0000}Vocк nгo estб liberado para comprar uma casa, peзa a um(a) administrador(a) a permissгo."); for( new c = 0; c < MAX_CASAS; c++ ) { format( string, sizeof( string ) , "/Casas/casa%d.ini", c ) ; if(dini_Exists( string ) ) { if(c == MAX_CASAS) return SendClientMessage(playerid, -1, "[INFO] {FF0000}Vocк nгo estб em uma casa!"); if(IsPlayerInRangeOfPoint( playerid, 2.0, dini_Float( string, "PosX" ) , dini_Float( string, "PosY" ) , dini_Float( string, "PosZ" ))) { if(dini_Int( string, "TDono" ) != 0 ) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Estб casa nгo estб a venda." ) ; if(GetPlayerMoney( playerid ) < dini_Int( string, "Preco" ) ) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Vocк nгo tem dinheiro suficiente." ) ; if(GetCasas( playerid ) != 0 ) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Vocк sу pode possuir uma casa." ) ; for( new i = 0; i <GetMaxPlayers( ) ; i++ ) { RemovePlayerMapIcon(i, mapiconcasaid [ c ] ); } dini_IntSet( string, "TDono", 1 ) ; dini_Set( string, "Dono", aname ) ; GivePlayerMoney( playerid, -dini_Int( string, "Preco" ) ) ; DestroyPickup( dini_Int( string, "Id" ) ) ; pickupcasaid [ c ] = CreatePickup( 1272, 1, dini_Float( string, "PosX" ) , dini_Float( string, "PosY" ) , dini_Float( string, "PosZ" ) , -1 ) ; dini_IntSet( string, "Id", pickupcasaid [ c ] ) ; new Float:X, Float:Y, Float:Z; GetPlayerPos( playerid, X, Y, Z ) ; dini_FloatSet( file,"CasaX",Float:X ) ; dini_FloatSet( file,"CasaY",Float:Y ) ; dini_FloatSet( file,"CasaZ",Float:Z ) ; dini_IntSet( file, "TemCasa",1 ) ; LiberadoCC [ playerid ] = 0; Delete3DTextLabel(labelcasaid [ c ] ); format( string1, sizeof( string1 ) ," {FFFFFF}[ Casa ID: %d - {FF0000}Possui dono(a) {FFFFFF}]\n{FF4500}Dono: {FFFFFF}%s\n{FF4500}Morador: {FFFFFF}%s\n{FF4500}Preзo: {FFFFFF}%d\n{FFFF00}use: {FFFFFF}/entrarcasa",c,dini_Get( string, "Dono" ), dini_Get( string, "Morador" ),dini_Int( string, "Preco" ) ) ; labelcasaid [ c ] = Create3DTextLabel( string1, 0x008080FF, dini_Float( string, "PosX" ) , dini_Float( string, "PosY" ) , dini_Float( string, "PosZ" ), 40.0, 0, 0 ) ; mapiconcasaid [ c ] = CreateDynamicMapIcon(dini_Float( string, "PosX" ) , dini_Float( string, "PosY" ) , dini_Float( string, "PosZ" ), 32, -1, -1, -1, -1, 60.0); new text [ 255 ]; format( text, sizeof( text ) ,"{00FF7F}•{FFFFFF}» {00FF7F}O( a ) player {FFFFFF}%s {00FF7F}comprou a casa ID {FFFFFF}%d {00FF7F}localizada em: {FFFFFF}%s",aname, c, GetPlayerArea( playerid ) ) ; SendClientMessageToAll( -1,text ) ; return 1; } } } } if(strfind(funcao, "moradia", true) != -1) { if(sscanf(params, "s[50]s[50]", funcao, opcao)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}use: /casa moradia [aceitar/recusar]"); if(strfind(opcao, "aceitar", true) != -1) { for( new c = 0; c < MAX_CASAS; c++ ) { format( string, sizeof( string ) , "/Casas/casa%d.ini", c ) ; if( dini_Int( string, "TMorador" ) == 1 ) { if( strcmp( dini_Get( string, "Morador" ) , aname, true ) == 0 ) { dini_IntSet( string, "TMorador", 0 ); dini_Set( string, "Morador", "Ninguem" ); format(msg, sizeof(msg), "[CASA] Vocк nгo mora mais na sua antiga casa ID: %d !", c); SendClientMessage(playerid, 0xFFFF00AA, msg); } } } format( string, sizeof( string ) , "/Casas/casa%d.ini", moradia [ playerid ] ) ; if(!dini_Exists( string ) ) return SendClientMessage(playerid, 0xFF0000AA, "[CASA] A casa que vocк foi convidado(a) para morar nгo existe!"); if( morar [ playerid ] != 1 ) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Vocк nгo foi convidado( a ) para morar em uma casa." ) ; dini_IntSet( string, "TMorador", 1 ) ; dini_Set( string, "Morador", aname ) ; dini_FloatSet( file,"CasaX", dini_Float( string, "PosX" ) ) ; dini_FloatSet( file,"CasaY", dini_Float( string, "PosY" ) ) ; dini_FloatSet( file,"CasaZ", dini_Float( string, "PosZ" ) ) ; SetSpawnInfo( playerid, 1, dini_Int( file, "Skin" ) , dini_Int( file, "CasaX" ) , dini_Int( file, "CasaY" ) , dini_Int( file, "CasaZ" ) , 354.1657, 0, 0, 0, 0, 0, 0 ) ; format(msg, sizeof(msg),"[CASA] Vocк aceitou morar na nova casa ID: %d!", moradia[playerid]) ; SendClientMessage(playerid, 0xFFFF00AA, msg); SendClientMessage( convitede [ playerid ], -1, "{00FF7F}•{FFFFFF}» {00FF7F}O jogador aceitou morar em sua casa." ) ; morar [ playerid ] = 0; moradia [ playerid ] = 0; convitede [ playerid ] = 0; } else if(strfind(opcao, "recusar", true) != -1) { if(morar[playerid] != 1) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Vocк nгo foi convidado para morar em uma casa." ) ; SendClientMessage( playerid, -1, "•» {FFFF00}Vocк recusou o convite de moradia." ) ; format(msg, sizeof(msg), "[CASA] O(A) player %s recusou o convite de moradia enviado por vocк!", aname); SendClientMessage( convitede [ playerid ], 0xFFFF00AA, msg) ; morar [ playerid ] = 0; moradia [ playerid ] = 0; convitede [ playerid ] = 0; return 1; } } return 1; }
if(sscanf(params, "s[50]S[50]", funcao, opcao))
pawn Код:
P.S.: Nao testei, apenas me basiei no topico do sscanf, supostamente isso deve ser suficiente. |