Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include a_samp
- #include a_mysql
- #define PILE "eGarages"
- #define buy_cmd "buygarage"
- #define create_cmd "gcreate"
- #define dialog_garages 850
- #define max_garages 120
- native sscanf(const data[], const format[], {Float,_}:...);
- enum garages
- {
- gID,
- gOwner [ 24 ],
- Float: gPosX,
- Float: gPosY,
- Float: gPosZ,
- gPrice,
- gVW,
- Text3D: gLabel
- };
- new
- TOTAL_GARAGES,
- global_garages [ max_garages ] [ garages ],
- strin [ 128 ],
- Query [ 300 ]
- ;
- public OnFilterScriptInit ( )
- {
- mysql_connect( "localhost" , "root", "SAMP", "" );
- mysql_query(
- "CREATE TABLE IF NOT EXISTS `"#PILE"` ("\
- "`gID` int(11) NOT NULL AUTO_INCREMENT,"\
- "`gOwner` varchar(24) CHARACTER SET utf8 NOT NULL DEFAULT 'None',"\
- "`gPosX` varchar(10),"\
- "`gPosY` varchar(10),"\
- "`gPosZ` varchar(10),"\
- "`gPrice` int(10) NOT NULL,"\
- "`gVW` int(10) NOT NULL,"\
- "PRIMARY KEY (`gID`)"\
- ") ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;");
- LoadMySQLGarages();
- }
- static stock LoadMySQLGarages ( )
- {
- mysql_query("SELECT * FROM `"#PILE"` ORDER BY `"#PILE"`.`gID` ASC");
- mysql_store_result();
- for ( new g; g < TOTAL_GARAGES; g++ ) strmid( global_garages [ g ] [ gOwner ], "None", 0, strlen("None"), 24);
- if ( mysql_num_rows ( ) > 0 )
- {
- for ( new g = 1; g <= mysql_num_rows ( ); g++ )
- {
- mysql_fetch_row(Query);
- sscanf(Query, "p<|>is[24]fffii", global_garages[ g ][ gID ], global_garages [ g ] [ gOwner ], global_garages [ g ][ gPosX ], global_garages [ g ][ gPosY ], global_garages [ g ][ gPosZ ], global_garages [ g ][ gPrice ], global_garages [ g ][ gVW ] );
- if ( !strcmp ( global_garages[ g ][ gOwner ], "None", true ) ) format ( strin, sizeof ( strin ),"Гараж номер %i\nВыставлен на продажу\nЦена: %i\nДля покупки введите /"#buy_cmd"", g, global_garages [ g ][ gPrice ] );
- else format ( strin, sizeof ( strin ), "Гараж номер %i\nВладелец: %s", g, global_garages [ g ][ gOwner ] );
- CreatePickup ( 1318, 1, global_garages [ g ][ gPosX ], global_garages [ g ][ gPosY ], global_garages [ g ][ gPosZ ], -1 );
- global_garages [ g ][ gLabel ] = Create3DTextLabel ( strin, 0xC4DAADFF, global_garages [ g ][ gPosX ], global_garages [ g ][ gPosY ], global_garages [ g ][ gPosZ ], 15.0, 0, 1 );
- CreatePickup ( 1318, 1, 608.7586,-18.4321,1000.9206, -1 );
- ++ TOTAL_GARAGES;
- }
- }
- mysql_free_result(), printf("Было загружено %i гаражей.", TOTAL_GARAGES);
- }
- static stock PlayerName ( p )
- {
- new n [ 24 ];
- GetPlayerName ( p, n, 24 );
- return n;
- }
- static stock IsPlayerGarageOwner ( playerid )
- {
- format( Query, sizeof ( Query ) , "SELECT * FROM "#PILE" WHERE gOwner = '%s'", PlayerName ( playerid ) );
- mysql_query( Query );
- mysql_store_result();
- if(mysql_num_rows()) return 1;
- return 0;
- }
- static stock strmatch(const String1[], const String2[])
- {
- if ((strcmp(String1, String2, true, strlen(String2)) == 0) && (strlen(String2) == strlen(String1))) { return true; }
- else { return false; }
- }
- static stock UpdateGarages( i )
- {
- if ( !strcmp ( global_garages [ i ][ gOwner ], "None", true ) ) format ( strin, 128,"Гараж номер %i\nВыставлен на продажу\nЦена: %i\nДля покупки введите /"#buy_cmd"", i, global_garages [ i ][ gPrice ] );
- else format( strin, 128,"Гараж номер %i\nВладелец: %s", i, global_garages [ i ][ gOwner ] );
- Update3DTextLabelText ( global_garages [ i ] [ gLabel ], 0xC4DAADFF, strin );
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys == KEY_CROUCH)
- {
- for ( new i = 0; i < sizeof( global_garages ); i++ )
- {
- if ( IsPlayerInRangeOfPoint ( playerid, 3.0, global_garages [ i ] [ gPosX ], global_garages [ i ] [ gPosY ], global_garages [ i ] [ gPosZ ] ) && strmatch ( global_garages [ i ] [ gOwner ], PlayerName ( playerid ) ) )
- {
- if ( GetPlayerState ( playerid ) == PLAYER_STATE_DRIVER ) SetVehiclePos ( GetPlayerVehicleID ( playerid ), 607.6993,-8.2391,1000.9106 ), LinkVehicleToInterior ( GetPlayerVehicleID ( playerid ), 1 ), SetVehicleVirtualWorld ( GetPlayerVehicleID ( playerid ), global_garages [ i ] [ gVW ] );
- else SetPlayerPos ( playerid, 607.6993,-8.2391,1000.9106 );
- SetPlayerVirtualWorld ( playerid, global_garages [ i ] [ gVW ] ), SetPlayerInterior ( playerid, 1 ), SetPVarInt ( playerid, "gEnter", i );
- }
- else if ( IsPlayerInRangeOfPoint ( playerid, 3.0, 608.7586,-18.4321,1000.9206 ) && GetPVarInt( playerid, "gEnter" ) == i )
- {
- if ( GetPlayerState ( playerid ) == PLAYER_STATE_DRIVER ) SetVehiclePos ( GetPlayerVehicleID ( playerid ), global_garages [ i ] [ gPosX ], global_garages [ i ] [ gPosY ] + 4.0, global_garages [ i ] [ gPosZ ] ), LinkVehicleToInterior ( GetPlayerVehicleID ( playerid ), 0 ), SetVehicleVirtualWorld ( GetPlayerVehicleID ( playerid ), 0 );
- else SetPlayerPos ( playerid, global_garages [ i ] [ gPosX ], global_garages [ i ] [ gPosY ] + 4.0, global_garages [ i ] [ gPosZ ] );
- SetPlayerVirtualWorld ( playerid, 0 ), SetPlayerInterior ( playerid, 0 ), SetPVarInt ( playerid, "gEnter", 255 );
- }
- }
- }
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd [ 32 ], params [ 128 ];
- sscanf(cmdtext, "s[32]s[128]", cmd, params);
- if ( strcmp ( "/gmenu", cmdtext, true, 7 ) == 0 )
- {
- if ( IsPlayerGarageOwner ( playerid ) ) ShowPlayerDialog ( playerid, dialog_garages, DIALOG_STYLE_LIST, "{FFFFFF}Меню", "[ 1 ]\tПродать гараж\n[ 2 ]\tИнформация о гараже", "<<<", "Выход" );
- return 1;
- }
- if ( strcmp ( "/"#buy_cmd"", cmdtext, true, 7 ) == 0 )
- {
- if ( !IsPlayerGarageOwner ( playerid ) )
- {
- for( new i = 0; i < sizeof( global_garages ); i++ )
- {
- if ( IsPlayerInRangeOfPoint ( playerid, 2.0, global_garages [ i ] [ gPosX ], global_garages [ i ] [ gPosY ], global_garages [ i ] [ gPosZ ] ) )
- {
- if ( !strcmp ( global_garages [ i ] [ gOwner ], "None", true ) && !IsPlayerGarageOwner ( playerid ) )
- {
- if ( GetPlayerMoney ( playerid ) < global_garages [ i ] [ gPrice ]) return SendClientMessage( playerid, -1, "У вас нет денег для покупки данного гаража!" );
- format( Query, sizeof( Query ), "UPDATE "#PILE" SET gOwner = '%s' WHERE gID = '%d' LIMIT 1", PlayerName ( playerid ), i );
- mysql_query( Query ), strmid( global_garages [ i ] [ gOwner ], PlayerName( playerid ), 0, strlen( PlayerName( playerid ) ), 24);
- GivePlayerMoney( playerid, - global_garages [ i ] [ gPrice ] ), SetPlayerVirtualWorld ( playerid, global_garages [ i ] [ gVW ] ), SetPVarInt( playerid, "gEnter", i );
- UpdateGarages ( i );
- }
- }
- }
- }
- return 1;
- }
- if ( strcmp ( cmd, "/"#create_cmd"", true ) == 0 )
- {
- new gprice, Float: Pos [ 3 ];
- if ( IsPlayerAdmin ( playerid ) )
- {
- if ( sscanf ( params, "i", gprice ) ) return SendClientMessage(playerid, -1, "Используйте: /"#create_cmd" [ Цена гаража ]");
- ++ TOTAL_GARAGES, GetPlayerPos ( playerid, Pos [ 0 ], Pos [ 1 ], Pos [ 2 ] );
- global_garages [ TOTAL_GARAGES ] [ gPosX ] = Pos [ 0 ], global_garages [ TOTAL_GARAGES ] [ gPosY ] = Pos [ 1 ], global_garages [ TOTAL_GARAGES ] [ gPosZ ] = Pos [ 2 ], global_garages [ TOTAL_GARAGES ] [ gPrice ] = gprice;
- CreatePickup ( 1318, 1, global_garages [ TOTAL_GARAGES ] [ gPosX ], global_garages [ TOTAL_GARAGES ] [ gPosY ], global_garages [ TOTAL_GARAGES ] [ gPosZ ] );
- format ( strin, 128, "Гараж номер %i\nВыставлен на продажу\nЦена: %i\nДля покупки введите /"#buy_cmd"", TOTAL_GARAGES, global_garages [ TOTAL_GARAGES ] [ gPrice ] );
- global_garages [ TOTAL_GARAGES ] [ gLabel ] = Create3DTextLabel ( strin, 0xC4DAADFF, global_garages [ TOTAL_GARAGES ] [ gPosX ], global_garages [ TOTAL_GARAGES ] [ gPosY ], global_garages [ TOTAL_GARAGES ] [ gPosZ ], 15.0, 0, 1 );
- format(Query,sizeof(Query),"INSERT INTO `"#PILE"` (gID, gOwner, gPosX, gPosY, gPosZ, gPrice, gVW) VALUES ('%d', 'None', '%f','%f','%f', '%d', '%d')", TOTAL_GARAGES, global_garages [ TOTAL_GARAGES ] [ gPosX ], global_garages [ TOTAL_GARAGES ] [ gPosY ], global_garages [ TOTAL_GARAGES ] [ gPosZ ], global_garages [ TOTAL_GARAGES ] [ gPrice ], TOTAL_GARAGES );
- mysql_query(Query), SendClientMessage ( playerid, -1, "Гараж создан!" );
- }
- return 1;
- }
- return 1;
- }
- public OnDialogResponse ( playerid, dialogid, response, listitem, inputtext[] )
- {
- if ( dialogid == dialog_garages && response )
- {
- switch ( listitem )
- {
- case 0:
- {
- for( new i = 0; i < sizeof( global_garages ); i++ )
- {
- if ( IsPlayerInRangeOfPoint ( playerid, 4.0, global_garages [ i ] [ gPosX ], global_garages [ i ] [ gPosY ], global_garages [ i ] [ gPosZ ] ) )
- {
- if ( IsPlayerGarageOwner ( playerid ) )
- {
- format( Query, sizeof( Query ), "UPDATE "#PILE" SET gOwner = 'None' WHERE gID = '%d' LIMIT 1", i );
- mysql_query( Query ), strmid( global_garages [ i ] [ gOwner ], "None", 0, strlen( "None" ), 24), GivePlayerMoney ( playerid, global_garages [ i ] [ gPrice ] - 1000 );
- UpdateGarages ( i );
- }
- }
- }
- }
- case 1:
- {
- format ( strin, 128,
- "{9AD618}Ваш гараж номер: %i\n\
- Стоимость вашего гаража: %i",
- global_garages [ IsPlayerGarageOwner ( playerid ) ] [ gID ], global_garages [ IsPlayerGarageOwner ( playerid ) ] [ gPrice ] ), ShowPlayerDialog ( playerid, dialog_garages + 1, DIALOG_STYLE_MSGBOX, "{FFFFFF}Информация", strin, "Выход", "" );
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement