Sign in to follow this  
Eject

Missing item_type

Recommended Posts

Hello friends

 

We created some new wagons and after a hard work to figure all out, we are stucking on a missing item type to get the "open" option on the new wagons.

We tried ItemTypes.ITEM_TYPE_USES_SPECIFIED_CONTAINER_VOLUME and two other ones with Inventory in it, but nothing works.

 

Can anyone help me out so i can release the new wagons for my players?

 

Eject

Share this post


Link to post
Share on other sites

Did you set ITEM_TYPE_HOLLOW? That's what allows the open action.

Share this post


Link to post
Share on other sites

yes hollow is included

at the moment i have this types in the code

 

 

ItemTypes.ITEM_TYPE_WOOD,
        ItemTypes.ITEM_TYPE_NAMED,
        ItemTypes.ITEM_TYPE_OWNER_DESTROYABLE,
        ItemTypes.ITEM_TYPE_DESTROYABLE,
        ItemTypes.ITEM_TYPE_TURNABLE,
        ItemTypes.ITEM_TYPE_REPAIRABLE,
        ItemTypes.ITEM_TYPE_COLORABLE,
        ItemTypes.ITEM_TYPE_VEHICLE,
        //ItemTypes.ITEM_TYPE_CART,
        ItemTypes.ITEM_TYPE_LEAD_MULTIPLE_CREATURES,
        ItemTypes.ITEM_TYPE_HOLLOW,
        ItemTypes.ITEM_TYPE_NOTAKE,
        ItemTypes.ITEM_TYPE_DECORATION,
        ItemTypes.ITEM_TYPE_VEHICLE_DRAGGED,
        ItemTypes.ITEM_TYPE_LOCKABLE,
        ItemTypes.ITEM_TYPE_HASDATA,
        ItemTypes.ITEM_TYPE_TRANSPORTABLE,
        //ItemTypes.ITEM_TYPE_USES_SPECIFIED_CONTAINER_VOLUME,
        //ItemTypes.ITEM_TYPE_NOWORKPARENT,
        ItemTypes.ITEM_TYPE_NORENAME,
        //ItemTypes.ITEM_TYPE_INVENTORY_GROUP

Share this post


Link to post
Share on other sites

maybe something otheris wrong

 

here is the complete code

 

template

Spoiler

var ItemTemplateBuilder = Packages.org.gotti.wurmunlimited.modsupport.ItemTemplateBuilder;
var ItemTypes = Packages.com.wurmonline.server.items.ItemTypes;
var logger = Packages.java.util.logging.Logger.getLogger("nekropolis.transports");

function onItemTemplatesCreated() {

    var builder = new ItemTemplateBuilder("nekropolis.transports.openwagon");
    builder.name("open wagon", "open wagons", "An open wagon without a plane");
    builder.descriptions("excellent", "good", "ok", "poor");
    builder.itemTypes([ 
        ItemTypes.ITEM_TYPE_WOOD,
        ItemTypes.ITEM_TYPE_NAMED,
        ItemTypes.ITEM_TYPE_OWNER_DESTROYABLE,
        ItemTypes.ITEM_TYPE_DESTROYABLE,
        ItemTypes.ITEM_TYPE_TURNABLE,
        ItemTypes.ITEM_TYPE_REPAIRABLE,
        ItemTypes.ITEM_TYPE_COLORABLE,
        ItemTypes.ITEM_TYPE_VEHICLE,
        //ItemTypes.ITEM_TYPE_CART,
        ItemTypes.ITEM_TYPE_LEAD_MULTIPLE_CREATURES,
        ItemTypes.ITEM_TYPE_HOLLOW,
        ItemTypes.ITEM_TYPE_NOTAKE,
        ItemTypes.ITEM_TYPE_DECORATION,
        ItemTypes.ITEM_TYPE_VEHICLE_DRAGGED,
        ItemTypes.ITEM_TYPE_LOCKABLE,
        ItemTypes.ITEM_TYPE_HASDATA,
        ItemTypes.ITEM_TYPE_TRANSPORTABLE,
        //ItemTypes.ITEM_TYPE_USES_SPECIFIED_CONTAINER_VOLUME,
        //ItemTypes.ITEM_TYPE_NOWORKPARENT,
        ItemTypes.ITEM_TYPE_NORENAME,
        //ItemTypes.ITEM_TYPE_INVENTORY_GROUP
    ]);
    builder.imageNumber(274);
    builder.behaviourType(41);
    builder.combatDamage(0);
    builder.decayTime(9072000);
    builder.dimensions(10, 30, 60);
    builder.primarySkill(-10);
    builder.bodySpaces(Packages.com.wurmonline.server.MiscConstants.EMPTY_BYTE_PRIMITIVE_ARRAY);
    builder.modelName("nekropolis.transports.openwagon.");
    builder.difficulty(10.0);
    builder.weightGrams(7000);
    builder.material(14);
    builder.isTraded(true);
    var template = builder.build();
    logger.info("Created item template " + template.getTemplateId() + " for an open wagon");


    var behaviour = new org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviour({
        setSettingsForVehicle: function(item, v) {
             var vehicle = behaviour.wrap(v);
            
            // Fuer Schiffe oder Fahrzeuge: Commander + Passenger Seats erstellen
            vehicle.createPassengerSeats(1); // 0 Passenger seats, also nur Commander
    
            // Fuer Moebel
            // Passenger Seats ohne Commander erstellen
            // vehicle.createOnlyPassengerSeats(1);
            // v.setChair(true);
    
            vehicle.setCreature(false);
            vehicle.setEmbarkString("sit");
            vehicle.setName(item.getName());
    
            // Position fuer Sitz 0 (erster Sitz) festlegen
            vehicle.setSeatFightMod(0, 1.0, 0.4);
            vehicle.setSeatOffset(0, 0.0, 0.0, 0.59); // 1. wert= bla 2. wert= vorne/hinten, 3. wert= links/rechts, 4. wert=wagon tiefe
    
            //vehicle.setWindImpact(0);
            vehicle.setMaxDepth(-1.5);
            vehicle.setMaxHeightDiff(-1.10);
            //vehicle.setCommandType(2);
            //v.commandType = 2;
    
            // Sitze fuer Pferde
            var Seat = com.wurmonline.server.behaviours.Seat;
            hitches = [ behaviour.createSeat(Seat.TYPE_HITCHED), behaviour.createSeat(Seat.TYPE_HITCHED), behaviour.createSeat(Seat.TYPE_HITCHED), behaviour.createSeat(Seat.TYPE_HITCHED) ];
            hitches[0].offx = -2.0;
            hitches[0].offy = 1.2;
            hitches[1].offx = -2.0;
            hitches[1].offy = -1.2;
            hitches[2].offx = -5.0;
            hitches[2].offy = 1.2;
            hitches[3].offx = -5.0;
            hitches[3].offy = -1.2;
            vehicle.addHitchSeats(hitches);
        }
    });
    org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviours.addItemVehicle(template.getTemplateId(), behaviour);
}

recipe

Spoiler

var IdFactory = Packages.org.gotti.wurmunlimited.modsupport.IdFactory;
var IdType = Packages.org.gotti.wurmunlimited.modsupport.IdType;
var CreationCategories = Packages.com.wurmonline.server.items.CreationCategories;
var ItemList = Packages.com.wurmonline.server.items.ItemList;
var SkillList = Packages.com.wurmonline.server.skills.SkillList;
var CreationEntryCreator = Packages.com.wurmonline.server.items.CreationEntryCreator;
var logger = Packages.java.util.logging.Logger.getLogger("nekropolis.transports");

function onServerStarted() {
    var itemId = IdFactory.getIdFor("nekropolis.transports.openwagon", IdType.ITEMTEMPLATE);
    CreationEntryCreator.createSimpleEntry(SkillList.CARPENTRY, ItemList.clothYard, ItemList.shaft, itemId, false, false, 0.0, false, false, CreationCategories.DECORATION);
    logger.info("Created creation entry for open wagon");
}
 

 

Share this post


Link to post
Share on other sites

@bdewhello, at any reason this is working now, i dont know why lol

we found now a nother problem, if a player attaches a lock there is no option to set the permissions for inventory and embark and so on.

Does anyone know the item type for this permissions?

 

Eject

Share this post


Link to post
Share on other sites
15 hours ago, Eject said:

@bdewhello, at any reason this is working now, i dont know why lol

we found now a nother problem, if a player attaches a lock there is no option to set the permissions for inventory and embark and so on.

Does anyone know the item type for this permissions?

 

Eject

 

1 hour ago, Governor said:

Maybe take a look at this mod to see one way to add wagons.

 

Yes, specifically you want this part - https://github.com/Jubaroo/AddKingdomItemsMod/blob/master/org/takino/mods/AddKingdomItems.java#L74-L90

 

Share this post


Link to post
Share on other sites

Hello

 

I tried so much, can you help me to put in the code on the correct place?

 

Spoiler

var ItemTemplateBuilder = Packages.org.gotti.wurmunlimited.modsupport.ItemTemplateBuilder;
var ItemTypes = Packages.com.wurmonline.server.items.ItemTypes;
var logger = Packages.java.util.logging.Logger.getLogger("nekropolis.transports");

function onItemTemplatesCreated() {

    var builder = new ItemTemplateBuilder("nekropolis.transports.openwagon");
    builder.name("open wagon", "open wagons", "An open wagon without a plane");
    builder.descriptions("excellent", "good", "ok", "poor");
    builder.itemTypes([ 
        ItemTypes.ITEM_TYPE_WOOD,
        ItemTypes.ITEM_TYPE_NAMED,
        ItemTypes.ITEM_TYPE_OWNER_DESTROYABLE,
        ItemTypes.ITEM_TYPE_DESTROYABLE,
        ItemTypes.ITEM_TYPE_TURNABLE,
        ItemTypes.ITEM_TYPE_REPAIRABLE,
        ItemTypes.ITEM_TYPE_COLORABLE,
        ItemTypes.ITEM_TYPE_VEHICLE,
        //ItemTypes.ITEM_TYPE_CART,
        ItemTypes.ITEM_TYPE_LEAD_MULTIPLE_CREATURES,
        ItemTypes.ITEM_TYPE_HOLLOW,
        ItemTypes.ITEM_TYPE_NOTAKE,
        ItemTypes.ITEM_TYPE_DECORATION,
        ItemTypes.ITEM_TYPE_VEHICLE_DRAGGED,
        ItemTypes.ITEM_TYPE_LOCKABLE,
        ItemTypes.ITEM_TYPE_HASDATA,
        ItemTypes.ITEM_TYPE_TRANSPORTABLE,
        //ItemTypes.ITEM_TYPE_USES_SPECIFIED_CONTAINER_VOLUME,
        //ItemTypes.ITEM_TYPE_NOWORKPARENT,
        ItemTypes.ITEM_TYPE_NORENAME,
        //ItemTypes.ITEM_TYPE_INVENTORY_GROUP
    ]);

 

if (item.mayManage(performer)) {
  int itemId = item.getTemplateId();
  for (int id : WagonFactory.wagonList) {
  if (id == itemId) {
  debug("Adding manage permissions");
  original.add(Actions.actionEntrys[669]);
  }
  }
  }
  if (item.maySeeHistory(performer)) {
  int itemId = item.getTemplateId();
  for (int id : WagonFactory.wagonList) {
  if (id == itemId) {
  original.add(new ActionEntry((short)691, "History of Wagon", "viewing"));
  }
  }
  }


    builder.imageNumber(274);
    builder.behaviourType(41);
    builder.combatDamage(0);
    builder.decayTime(9072000);
    builder.dimensions(10, 30, 60);
    builder.primarySkill(-10);
    builder.bodySpaces(Packages.com.wurmonline.server.MiscConstants.EMPTY_BYTE_PRIMITIVE_ARRAY);
    builder.modelName("nekropolis.transports.openwagon.");
    builder.difficulty(10.0);
    builder.weightGrams(7000);
    builder.material(14);
    builder.isTraded(true);
    var template = builder.build();
    logger.info("Created item template " + template.getTemplateId() + " for an open wagon");


    var behaviour = new org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviour({
        setSettingsForVehicle: function(item, v) {
             var vehicle = behaviour.wrap(v);
            
            vehicle.createPassengerSeats(1); // 0 Passenger seats, also nur Commander
    
            vehicle.setCreature(false);
            vehicle.setEmbarkString("sit");
            vehicle.setName(item.getName());
    
            vehicle.setSeatFightMod(0, 1.0, 0.4);
            vehicle.setSeatOffset(0, 0.0, 0.0, 0.59); // 1. wert= bla 2. wert= vorne/hinten, 3. wert= links/rechts, 4. wert=wagon tiefe
    
            vehicle.setMaxDepth(-1.5);
            vehicle.setMaxHeightDiff(-1.10);

            var Seat = com.wurmonline.server.behaviours.Seat;
            hitches = [ behaviour.createSeat(Seat.TYPE_HITCHED), behaviour.createSeat(Seat.TYPE_HITCHED), behaviour.createSeat(Seat.TYPE_HITCHED), behaviour.createSeat(Seat.TYPE_HITCHED) ];
            hitches[0].offx = -2.0;
            hitches[0].offy = 1.2;
            hitches[1].offx = -2.0;
            hitches[1].offy = -1.2;
            hitches[2].offx = -5.0;
            hitches[2].offy = 1.2;
            hitches[3].offx = -5.0;
            hitches[3].offy = -1.2;
            vehicle.addHitchSeats(hitches);
        }
    });
    org.gotti.wurmunlimited.modsupport.vehicles.ModVehicleBehaviours.addItemVehicle(template.getTemplateId(), behaviour);
}

 

That would be very helpful :D

Thank you Eject

Share this post


Link to post
Share on other sites

Just grab the whole registerManageHook method. And call it from your init.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this