- stock LoadDoor(limit[] = "", bool:return_id = false)
- {
- new rows, fields;
- mysql_query(mySQLconnection, sprintf("SELECT * FROM ipb_doors %s", limit));
- cache_get_data(rows, fields);
- new d_id;
- for(new row = 0; row != rows; row++)
- {
- d_id = CreateDynamicPickup(cache_get_row_int(row, 17), 2, cache_get_row_float(row, 5), cache_get_row_float(row, 6), cache_get_row_float(row, 7), cache_get_row_int(row, 9), cache_get_row_int(row, 10), -1, 200.0);
- Iter_Add(Doors, d_id);
- cache_get_row(row, 2, Door[d_id][door_name], mySQLconnection, 40);
- cache_get_row(row, 23, Door[d_id][door_audio], mySQLconnection, 100);
- Door[d_id][door_uid] = cache_get_row_int(row, 0);
- Door[d_id][door_type] = cache_get_row_int(row, 1);
- Door[d_id][door_owner_type] = cache_get_row_int(row, 3);
- Door[d_id][door_owner] = cache_get_row_int(row, 4);
- Door[d_id][door_objects_limit] = cache_get_row_int(row, 22);
- Door[d_id][door_auto_closing] = !!cache_get_row_int(row, 19);
- Door[d_id][door_car_crosing] = !!cache_get_row_int(row, 20);
- Door[d_id][door_payment] = cache_get_row_int(row, 21);
- Door[d_id][door_pos][0] = cache_get_row_float(row, 5);
- Door[d_id][door_pos][1] = cache_get_row_float(row, 6);
- Door[d_id][door_pos][2] = cache_get_row_float(row, 7);
- Door[d_id][door_pos][3] = cache_get_row_float(row, 8);
- Door[d_id][door_vw] = cache_get_row_int(row, 9);
- Door[d_id][door_int] = cache_get_row_int(row, 10);
- Door[d_id][door_spawn_pos][0] = cache_get_row_float(row, 11);
- Door[d_id][door_spawn_pos][1] = cache_get_row_float(row, 12);
- Door[d_id][door_spawn_pos][2] = cache_get_row_float(row, 13);
- Door[d_id][door_spawn_pos][3] = cache_get_row_float(row, 14);
- Door[d_id][door_spawn_vw] = cache_get_row_int(row, 15);
- if( Door[d_id][door_spawn_vw] == -1 ) Door[d_id][door_spawn_vw] = Door[d_id][door_uid];
- Door[d_id][door_spawn_int] = cache_get_row_int(row, 16);
- Door[d_id][door_rentable] = cache_get_row_int(row, 24);
- Door[d_id][door_rent] = cache_get_row_int(row, 25);
- Door[d_id][door_buyable] = cache_get_row_int(row, 26);
- Door[d_id][door_price] = cache_get_row_int(row, 27);
- Door[d_id][door_time] = cache_get_row_int(row, 28);
- Door[d_id][door_access] = cache_get_row_int(row, 29);
- Door[d_id][door_destroyed] = cache_get_row_int(row, 30);
- new map_model = cache_get_row_int(row, 18);
- if( map_model != -1 )
- {
- Door[d_id][door_map_icon] = CreateDynamicMapIcon(Door[d_id][door_pos][0], Door[d_id][door_pos][1], Door[d_id][door_pos][2], map_model, 0, Door[d_id][door_vw], Door[d_id][door_int]);
- }
- Door[d_id][door_closed] = Door[d_id][door_auto_closing];
- }
- if( return_id ) return d_id;
- return rows;
- }
- stock DeleteDoor(d_id, bool:from_mysql = true)
- {
- if( from_mysql ) mysql_query(mySQLconnection, sprintf("DELETE FROM `ipb_doors` WHERE `door_uid` = %d", Door[d_id][door_uid]));
- Iter_Remove(Doors, d_id);
- DestroyDynamicPickup(d_id);
- if( IsValidDynamicMapIcon(Door[d_id][door_map_icon]) ) DestroyDynamicMapIcon(Door[d_id][door_map_icon]);
- for(new z=0; e_doors:z != e_doors; z++)
- {
- Door[d_id][e_doors:z] = 0;
- }
- }
- stock GetDoorByUid(uid)
- {
- foreach(new d_id : Doors)
- {
- if( Door[d_id][door_uid] == uid ) return d_id;
- }
- return -1;
- }
- stock CanPlayerUseDoor(playerid, d_id)
- {
- if( HasCrewFlag(playerid, CREW_FLAG_DOORS) ) return 1;
- switch( Door[d_id][door_owner_type] )
- {
- case DOOR_OWNER_TYPE_PLAYER:
- {
- if( Door[d_id][door_owner] == pInfo[playerid][player_id] ) return 1;
- if( Door[d_id][door_uid] == pInfo[playerid][player_spawn]) return 1;
- }
- case DOOR_OWNER_TYPE_GROUP:
- {
- new gid = GetGroupByUid(Door[d_id][door_owner]);
- new slot = GetPlayerGroupSlot(playerid, gid);
- if( slot > -1 )
- {
- if( WorkerHasFlag(playerid, slot, WORKER_FLAG_DOORS) ) return 1;
- }
- }
- }
- return 0;
- }
- stock CanPlayerEditDoor(playerid, d_id)
- {
- if(HasCrewFlag(playerid, CREW_FLAG_DOORS) ) return 1;
- if(d_id == -1) return 0;
- switch( Door[d_id][door_owner_type] )
- {
- case DOOR_OWNER_TYPE_PLAYER:
- {
- if( Door[d_id][door_owner] == pInfo[playerid][player_id] ) return 1;
- }
- case DOOR_OWNER_TYPE_GROUP:
- {
- new gid = GetGroupByUid(Door[d_id][door_owner]);
- new slot = GetPlayerGroupSlot(playerid, gid);
- if( slot > -1 )
- {
- if( WorkerHasFlag(playerid, slot, WORKER_FLAG_LEADER) ) return 1;
- }
- }
- }
- return 0;
- }
- stock CountDoorObjects(d_id)
- {
- new count;
- foreach(new oid : Objects)
- {
- if( Object[oid][object_owner_type] == OBJECT_OWNER_TYPE_DOOR && Object[oid][object_owner] == Door[d_id][door_uid] ) count++;
- }
- return count;
- }
- stock CountDoorLabels(d_id)
- {
- new count;
- foreach(new lid : Labels)
- {
- if( Label[Text3D:lid][label_owner_type] == LABEL_OWNER_TYPE_DOOR && Label[Text3D:lid][label_owner] == Door[d_id][door_uid] ) count++;
- }
- return count;
- }
- stock ShowPlayerDoorTextdraw(playerid, d_id)
- {
- new header[64], all[256];
- if( !HasCrewFlag(playerid, CREW_FLAG_DOORS) )
- {
- if( Door[d_id][door_payment] > 0 && !Door[d_id][door_closed] ) format(header, sizeof(header), "%s (~g~$%d~w~)", Door[d_id][door_name], Door[d_id][door_payment]);
- else if( Door[d_id][door_payment] == 0 ) format(header, sizeof(header), "%s", Door[d_id][door_name]);
- }
- else
- {
- if( Door[d_id][door_payment] > 0 && !Door[d_id][door_closed] ) format(header, sizeof(header), "%s ~y~(%d)~w~ (~g~$%d~w~)", Door[d_id][door_name], d_id, Door[d_id][door_payment]);
- else if( Door[d_id][door_payment] == 0 ) format(header, sizeof(header), "%s (%d)", Door[d_id][door_name], d_id);
- }
- amount_players_in_door[playerid]=0;
- foreach(new p : Player)
- {
- if( GetPlayerVirtualWorld(p) == Door[d_id][door_spawn_vw] )
- {
- amount_players_in_door[playerid]++;
- }
- }
- if( Door[d_id][door_closed] ) format(all, sizeof(all), "%s~n~~n~~w~Nacisnij ~y~LALT + SPACE~w~ aby wejsc.~n~~n~~r~Drzwi sa zamkniete.", header);
- else format(all, sizeof(all), "%s~n~~n~~w~Nacisnij ~y~LALT + SPACE~w~ aby wejsc.~n~~n~~w~%d osob wewnatrz", header, amount_players_in_door[playerid]);
- TextDrawSetString(DoorInfo1[playerid], all);
- TextDrawShowForPlayer(playerid, DoorInfo[playerid]);
- TextDrawShowForPlayer(playerid, DoorInfo1[playerid]);
- defer HidePlayerDoorText[3000](playerid);
- }
- stock HidePlayerDoorTextdraw(playerid)
- {
- TextDrawHideForPlayer(playerid, DoorInfo[playerid]);
- TextDrawHideForPlayer(playerid, DoorInfo1[playerid]);
- }
- stock DoorsDefaultInteriorsList(playerid, d_id, page=1)
- {
- new rows, fields;
- mysql_query(mySQLconnection, "SELECT COUNT(*) as count FROM `ipb_default_interiors`");
- cache_get_data(rows, fields);
- new count = cache_get_row_int(0, 0);
- new all_rows = count;
- new header[64], Float:pp = all_rows / 20;
- format(header, sizeof(header), "Zmiana wnętrza drzwi (%d/%d)", page, floatround(pp, floatround_ceil));
- pInfo[playerid][player_dialog_tmp1] = page;
- DynamicGui_Init(playerid);
- DynamicGui_SetDialogValue(playerid, d_id);
- new str[800];
- if( page > 1 )
- {
- format(str, sizeof(str), "%s"HEX_COLOR_SAMP"<<< Poprzednia strona\n \n", str);
- DynamicGui_AddRow(playerid, DG_DRZWI_CHANGE_INTERIOR_PREV);
- DynamicGui_AddBlankRow(playerid);
- }
- if( page == 1 )
- {
- format(str, sizeof(str), "%s0.\tBrak (własne obiekty)\n", str);
- DynamicGui_AddRow(playerid, DG_DRZWI_CHANGE_INTERIOR_ROW, -1);
- }
- mysql_query(mySQLconnection, sprintf("SELECT name, id FROM `ipb_default_interiors` LIMIT %d, 20", (page-1)*20));
- cache_get_data(rows, fields);
- new tmp_str[60];
- for(new row = 0; row != rows; row++)
- {
- cache_get_row(row, 0, tmp_str);
- format(str, sizeof(str), "%s%d.\t%s\n", str, (row+1)+((page-1)*20), tmp_str);
- DynamicGui_AddRow(playerid, DG_DRZWI_CHANGE_INTERIOR_ROW, cache_get_row_int(row, 1));
- }
- if( all_rows > (page*20) )
- {
- format(str, sizeof(str), "%s"HEX_COLOR_SAMP"\t\t\t\t\t\t\t Następna strona >>>\n", str);
- DynamicGui_AddRow(playerid, DG_DRZWI_CHANGE_INTERIOR_NEXT);
- }
- ShowPlayerDialog(playerid, DIALOG_ADRZWI_CHANGE_INTERIOR, DIALOG_STYLE_LIST, header, str, "Wybierz", "Wróć");
- return 1;
- }