CMD:casa(playerid, params[])
{
new aname[MAX_PLAYER_NAME], string[4][300], file[255], opcao[50], funcao[50], Float:PosCasa[3];
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, "vender", true) != -1)
{
for( new c = 0; c < MAX_CASAS; c++ )
{
format( string[0], 300, string[0] , "/Casas/casa%d.ini", c ) ;
if( dini_Exists( string[0] ) )
{
if( IsPlayerInRangeOfPoint( playerid, 2.0, dini_Float( string[0], "PosX" ) , dini_Float( string[0], "PosY" ) , dini_Float( string[0], "PosZ" ) ) )
{
if( dini_Int( string[0], "TDono" ) != 1 ) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Estб casa jб estб a venda." ) ;
if( strcmp( dini_Get( string[0], "Dono" ) , aname, false ) == 0) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Vocк nгo й dono destб casa." ) ;
for( new i = 0; i < MAX_PLAYERS ; i++ ) { RemovePlayerMapIcon(i, mapiconcasaid [ c ] ); }
dini_IntSet( string[0], "TDono", 0 ) ;
dini_Set( string[0], "Dono", "Ninguem" ) ;
dini_IntSet( file, "TemCasa", 0 ) ;
GivePlayerMoney( playerid, dini_Int( string[0], "Preco" ) ) ;
DestroyPickup( dini_Int( string[0], "Id" ) ) ;
pickupcasaid [ c ] = CreatePickup( 1273, 1, dini_Float( string[0], "PosX" ) , dini_Float( string[0], "PosY" ) , dini_Float( string[0], "PosZ" ) , -1 ) ;
dini_IntSet( string[0], "Id", pickupcasaid [ c ] ) ;
Delete3DTextLabel( labelcasaid [ c ] );
format( string[1], 300, string[1] ," {FFFFFF}[ Casa ID: %d - {00FF00}Б Venda {FFFFFF}]\n{FF4500}Dono: {FFFFFF}Ninguйm\n{FF4500}Morador: {FFFFFF}Ninguйm\n{FF4500}Preзo: {FFFFFF}%d\n{FFFF00}use: {FFFFFF}/casa comprar", c, dini_Int( string[0], "Preco" ) ) ;
labelcasaid [ c ] = Create3DTextLabel( string[1], 0x008080FF, dini_Float( string[0], "PosX" ) , dini_Float( string[0], "PosY" ) , dini_Float( string[0], "PosZ" ), 40.0, 0, 0 ) ;
mapiconcasaid [ c ] = CreateDynamicMapIcon(dini_Float( string[0], "PosX" ) , dini_Float( string[0], "PosY" ) , dini_Float( string[0], "PosZ" ), 31, -1, -1, -1, -1, 60.0);
format( string[3], 300, string[3] ,"{FF4500}•{FFFFFF}» {FF4500}O( a ) player {FFFFFF}%s {FF4500}vendeu a casa ID {FFFFFF}%d {FF4500}localizada em: {FFFFFF}%s",aname, c, GetPlayerArea( playerid ) ) ;
SendClientMessageToAll( -1, string[3] ) ;
return 1;
}
if(c == MAX_CASAS) return SendClientMessage(playerid, -1, "[INFO] {FF0000}Vocк nгo estб em uma casa!");
}
}
}
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[0], 300, string[0] , "/Casas/casa%d.ini", c ) ;
if(dini_Exists( string[0] ) )
{
if(IsPlayerInRangeOfPoint( playerid, 2.0, dini_Float( string[0], "PosX" ) , dini_Float( string[0], "PosY" ) , dini_Float( string[0], "PosZ" )))
{
if(dini_Int( string[0], "TDono" ) != 0 ) return SendClientMessage( playerid, -1, "[ x ] {FF0000}Estб casa nгo estб a venda." ) ;
if(GetPlayerMoney( playerid ) < dini_Int( string[0], "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 <MAX_PLAYERS ; i++ ) { RemovePlayerMapIcon(i, mapiconcasaid [ c ] ); }
dini_IntSet( string[0], "TDono", 1 ) ;
dini_Set( string[0], "Dono", aname ) ;
GivePlayerMoney( playerid, -dini_Int( string[0], "Preco" ) ) ;
DestroyPickup( dini_Int( string[0], "Id" ) ) ;
pickupcasaid [ c ] = CreatePickup( 1272, 1, dini_Float( string[0], "PosX" ) , dini_Float( string[0], "PosY" ) , dini_Float( string[0], "PosZ" ) , -1 ) ;
dini_IntSet( string[0], "Id", pickupcasaid [ c ] ) ;
GetPlayerPos( playerid, PosCasa[0], PosCasa[1], PosCasa[2] ) ;
dini_FloatSet( file,"CasaX",Float:PosCasa[0] ) ;
dini_FloatSet( file,"CasaY",Float:PosCasa[1] ) ;
dini_FloatSet( file,"CasaZ",Float:PosCasa[2] ) ;
dini_IntSet( file, "TemCasa",1 ) ;
LiberadoCC [ playerid ] = 0;
Delete3DTextLabel(labelcasaid [ c ] );
format( string[1], 300, string[1] ," {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}aperte {FFFFFF}'F'{FFFF00} para entrar",c ,dini_Get( string[0], "Dono" ), dini_Get( string[0], "Morador" ),dini_Int( string[0], "Preco" ) ) ;
labelcasaid [ c ] = Create3DTextLabel( string[1], 0x008080FF, dini_Float( string[0], "PosX" ) , dini_Float( string[0], "PosY" ) , dini_Float( string[0], "PosZ" ), 40.0, 0, 0 ) ;
mapiconcasaid [ c ] = CreateDynamicMapIcon(dini_Float( string[0], "PosX" ) , dini_Float( string[0], "PosY" ) , dini_Float( string[0], "PosZ" ), 32, -1, -1, -1, -1, 60.0);
format( string[3], 300, string[3] ,"{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, string[3] ) ;
return 1;
}
if(c == MAX_CASAS) return SendClientMessage(playerid, -1, "[INFO] {FF0000}Vocк nгo estб em uma casa!");
}
}
}
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[0], 300, string[0] , "/Casas/casa%d.ini", c ) ;
if( dini_Int( string[0], "TMorador" ) == 1 )
{
if( strcmp( dini_Get( string[0], "Morador" ) , aname, true ) == 0 )
{
dini_IntSet( string[0], "TMorador", 0 );
dini_Set( string[0], "Morador", "Ninguem" );
format(string[2], 300, string[2] , "[CASA] Vocк nгo mora mais na sua antiga casa ID: %d !", c);
SendClientMessage(playerid, 0xFFFF00AA, string[2]);
}
}
}
format( string[0], 300, string[0] , "/Casas/casa%d.ini", moradia [ playerid ] ) ;
if(!dini_Exists( string[0] ) ) 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[0], "TMorador", 1 ) ;
dini_Set( string[0], "Morador", aname ) ;
dini_FloatSet( file,"CasaX", dini_Float( string[0], "PosX" ) ) ;
dini_FloatSet( file,"CasaY", dini_Float( string[0], "PosY" ) ) ;
dini_FloatSet( file,"CasaZ", dini_Float( string[0], "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(string[2], 300, string[2] ,"[CASA] Vocк aceitou morar na nova casa ID: %d!", moradia[playerid]) ;
SendClientMessage(playerid, 0xFFFF00AA, string[2]);
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( a ) para morar em uma casa." ) ;
SendClientMessage( playerid, -1, "•» {FFFF00}Vocк recusou o convite de moradia." ) ;
format(string[2], 300, string[2] , "[CASA] O(A) player %s recusou o convite de moradia enviado por vocк!", aname);
SendClientMessage( convitede [ playerid ], 0xFFFF00AA, string[2]) ;
morar [ playerid ] = 0, moradia [ playerid ] = 0, convitede [ playerid ] = 0;
return 1;
}
}
return 1;
}
new Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, sizeof(Nome));
Nego copia e ainda.. diz que foi do 0 huehuehuehuehue.. que Gamemode й essa NWD" Jб ouvi falar muito.. mais ainda nгo sei que tag й essa '-
|
NWD = New World Disorder. Й um servidor RPG/RP fundado em 2010, mas que com a saнda do dono, mudou-se o nome e atualmente estб como Brasil Viva a Vida - World Wicked.
Joguei muito tempo lб. Saudades, pois infelizmente hoje jб nгo й a mesma coisa. |
morar [ playerid ] = 0, moradia [ playerid ] = 0, convitede [ playerid ] = 0;
// para:
morar [ playerid ] = moradia [ playerid ] = convitede [ playerid ] = 0;
Verificar se o player estб conectado antes da verificaзгo em sscanf
|
Trabalhando com mйtodos vocк pode deixar seu cуdigo mais limpo. Quando alguйm ou atй vocк for fazer manutenзгo nele, vai passar minutos para entender o que foi feito.
PHP код:
|
Verificar se o player estб conectado antes da verificaзгo em sscanf
Use no minimo DOF2(Muito mais rapido que Dini e o uso e o mesmo) Suas variaveis strings estao com um limite enorme de absurdo que nao sera usado Nгo existe necessidade de usar "string[x]", pode apenas usar "string", pois em cada usto ela esta sendo destruida Uma funзгo como Nome(playerid) para retornar o nome do player e bem mais viavel que toda vez fazer: PHP код:
Se a pessoa quer vender a casa por que precisa estar perto dela? Foreach e uma boa ![]() Se vocк usar um enum para guardar informaзхes das casas, ficaria mais rapido do que toda vez ter quer Obter de um arquivo |