mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-07-14 00:01:30 -04:00
69 lines
2.0 KiB
SQL
69 lines
2.0 KiB
SQL
-- list all the items we're going to have to deal with
|
|
create table temp_items
|
|
as select o.object_id, owner_id from objects o, tangible_objects t where o.object_id = t.object_id and deleted = 2;
|
|
|
|
create table temp_owners
|
|
as select distinct owner_id, owner_id inventory, owner_id bag from temp_items;
|
|
|
|
-- figure out the inventory objects for these
|
|
update temp_owners
|
|
set inventory = admin.get_inventory_for_player(owner_id);
|
|
|
|
-- delete ones where we couldn't get the inventory
|
|
delete temp_owners
|
|
where inventory = 0;
|
|
|
|
-- make bags
|
|
|
|
declare
|
|
bag_id number;
|
|
begin
|
|
for x in (select * from temp_owners)
|
|
loop
|
|
|
|
bag_id := objectidmanager.get_single_id();
|
|
|
|
insert into objects (object_id, x, y, z, quaternion_w, quaternion_x, quaternion_y, quaternion_z, node_x, node_y, node_z, type_id, scene_id, controller_type,
|
|
deleted, object_name, volume, contained_by, slot_arrangement, player_controlled, cache_version, load_contents, cash_balance, bank_balance, complexity,
|
|
name_string_table, name_string_text, object_template_id, load_with)
|
|
values
|
|
(bag_id,0,0,0,1,0,0,0,0,0,0,1413566031,'bogus',0,
|
|
0,'Restored Items from Vendors',1,x.inventory,-1,'N',0,'Y',0,0,1,
|
|
'container_name','satchel',-956527269,x.owner_id);
|
|
|
|
insert into tangible_objects (object_id, max_hit_points, owner_id, visible, pvp_type, pvp_faction, damage_taken, count, condition, creator_id, source_draft_schematic)
|
|
values (bag_id, 100, x.owner_id, 'Y', 0,0,0,0,256,0,0);
|
|
|
|
update temp_owners
|
|
set bag = bag_id
|
|
where owner_id = x.owner_id;
|
|
|
|
end loop;
|
|
end;
|
|
/
|
|
|
|
|
|
-- put all deleted items into the appropriate bag
|
|
|
|
begin
|
|
for x in (select t.object_id, t.owner_id, o.bag from temp_items t, temp_owners o where t.owner_id = o.owner_id)
|
|
loop
|
|
update objects
|
|
set
|
|
deleted = 0,
|
|
deleted_date = null,
|
|
load_with = x.owner_id,
|
|
contained_by = x.bag
|
|
where object_id = x.object_id;
|
|
end loop;
|
|
end;
|
|
/
|
|
|
|
|
|
select station_id
|
|
from players p, temp_owners o
|
|
where p.character_object = o.owner_id;
|
|
|
|
drop table temp_items;
|
|
drop table temp_owners;
|