Hello Noppes, or anyone who may be able to help me
I'm not understanding how getBlock works. What exactly does the function return? The api says it returns the block at the given position, but in what way? It seems like random numbers and letters to me that's being returned, rather than the name of the block or the id...If someone could please explain this to me, i'd very much appreciate it. Thanks in advance!
When I try and play it my game crashes I don't have any other mods
Could you provide a crash report, then your problem could be solved.
Rollback Post to RevisionRollBack
If you require aid with Custom NPC's give me a shout (In the thread, not PM's). I can read a bit of error reports, know most of the NPC workings (I'm attempting to work on scripting) and have been using it since its 1.0 version. Otherwise I'll help with any questions or problems I can.
Not sure if it's even possible but...(this is with 1.7.10)
AI => Movement => Rotation: Manual
// [Scripting Interact Event]
// result is as expected, whatever I entered in the Rotation setting, or via code
npc.say(npc.getRotation());
Whereas
AI => Movement => Rotation: Body
// [Scripting Interact Event]
// result is whatever I last entered in the Rotation setting,
// or if not already set, I assume the value I'm seeing is whatever the rotation was when the npc was created
npc.say(npc.getRotation());
Are the random rotations in the "Body" setting synced across clients? Or is that one of those things that are somewhat client independent?
If it's not possible to sync the random rotations, and I realise the scripting is still a new addition, but do you have any idea of what performance impact using the update event to create my own random rotations using the "Manual" setting would have? I've been a little reluctant to use a script that needs to run every update tick. (one badly coded for loop could kill a server)
Loving the scripting, by the way! The possibilities are endless, and so far I've had little to no issues that weren't solved with the javadoc and better typo checking of my code.
Due to the fact that you can use Java classes within the scripting environment, I think interacting with TileEntities could be implemented quite easily, though this would be more of a hack than a solution: All you have to do is allow the world object to return the TileEntity located at a set of coordinates, and the coders can figure things out from there.
However, there is a better solution. Provide an abstract class of ScriptTileEntity which has access to all of the base TileEntity code, and then create subclasses for the basic Minecraft TileEntities. Then, as part of the API, mods can extend the ScriptTileEntity to handle interaction with mod TileEntities.
As for the API, along with the above, I would love to be able to define my own Jobs and Roles.
I would love to help out with development, if you need any help.
Also, I've been having trouble with the ScriptLiving::navigateTo() method with 1.7.10. I've been trying to create a npc that follows and stops following the player when right-clicked, but whenever this method is called, the npc doesn't move, nor does ScriptLiving::isNavigating() return true.
Programming Telekinetically
The practice of programming a computer without touching an input device of any kind, such as a keyboard or mouse. Easily confused with doing nothing at all.
Johnny might be sitting and staring at the computer, or he might be programming telekinetically.
Programming Telekinetically
The practice of programming a computer without touching an input device of any kind, such as a keyboard or mouse. Easily confused with doing nothing at all.
Johnny might be sitting and staring at the computer, or he might be programming telekinetically.
Not sure if it's even possible but...(this is with 1.7.10)
AI => Movement => Rotation: Manual
// [Scripting Interact Event]
// result is as expected, whatever I entered in the Rotation setting, or via code
npc.say(npc.getRotation());
Whereas
AI => Movement => Rotation: Body
// [Scripting Interact Event]
// result is whatever I last entered in the Rotation setting,
// or if not already set, I assume the value I'm seeing is whatever the rotation was when the npc was created
npc.say(npc.getRotation());
Are the random rotations in the "Body" setting synced across clients? Or is that one of those things that are somewhat client independent?
If it's not possible to sync the random rotations, and I realise the scripting is still a new addition, but do you have any idea of what performance impact using the update event to create my own random rotations using the "Manual" setting would have? I've been a little reluctant to use a script that needs to run every update tick. (one badly coded for loop could kill a server)
Loving the scripting, by the way! The possibilities are endless, and so far I've had little to no issues that weren't solved with the javadoc and better typo checking of my code.
No it's not client independent.
When the rotation is set to body it should not always be the same as the value you set. And yes it should auto syncs to clients.
When rotation is set to manual it doesnt matter what rotation you set as the manual rotation overrides it. This is prossibly something I can fix.
Manually doing rotation in the update script should not impact performance at all. To start with the update script is only called once every 10 server ticks. So in all twice per second. Secondly minecraft itself handles position/rotation handling syncing. As long as you dont make complicated or big for/while loops the impact should be neglectable.
Due to the fact that you can use Java classes within the scripting environment, I think interacting with TileEntities could be implemented quite easily, though this would be more of a hack than a solution: All you have to do is allow the world object to return the TileEntity located at a set of coordinates, and the coders can figure things out from there.
However, there is a better solution. Provide an abstract class of ScriptTileEntity which has access to all of the base TileEntity code, and then create subclasses for the basic Minecraft TileEntities. Then, as part of the API, mods can extend the ScriptTileEntity to handle interaction with mod TileEntities.
As for the API, along with the above, I would love to be able to define my own Jobs and Roles.
I would love to help out with development, if you need any help.
Also, I've been having trouble with the ScriptLiving::navigateTo() method with 1.7.10. I've been trying to create a npc that follows and stops following the player when right-clicked, but whenever this method is called, the npc doesn't move, nor does ScriptLiving::isNavigating() return true.
Wouldnt say I need more help. But more help is always welcome. Send me a pm.
Ill make minecrafts world object available. I guess that would be easiest. There are 20 basic tileentities I dont really feel like adding them unless somebody actually needs something from them.
Rollback Post to RevisionRollBack
Those who want to chat or hang out, join me on discord
Want to support me? Become one of my patrons:
When the rotation is set to body it should not always be the same as the value you set. And yes it should auto syncs to clients.
When rotation is set to manual it doesnt matter what rotation you set as the manual rotation overrides it. This is prossibly something I can fix.
Manually doing rotation in the update script should not impact performance at all. To start with the update script is only called once every 10 server ticks. So in all twice per second. Secondly minecraft itself handles position/rotation handling syncing. As long as you dont make complicated or big for/while loops the impact should be neglectable.
Wouldnt say I need more help. But more help is always welcome. Send me a pm.
Ill make minecrafts world object available. I guess that would be easiest. There are 20 basic tileentities I dont really feel like adding them unless somebody actually needs something from them.
i have a big bug, i cant play my world for at least a minute
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
at net.minecraft.entity.EntityLivingBase.func_70679_bo(EntityLivingBase.java:521)
at net.minecraft.entity.EntityLivingBase.func_70030_z(EntityLivingBase.java:293)
at net.minecraft.entity.EntityLiving.func_70030_z(EntityLiving.java:157)
at net.minecraft.entity.Entity.func_70071_h_(Entity.java:318)
at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:1561)
at net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:206)
at noppes.npcs.entity.EntityNPCInterface.func_70071_h_(EntityNPCInterface.java:225)
at noppes.npcs.entity.EntityCustomNpc.func_70071_h_(EntityCustomNpc.java:34)
at net.minecraft.world.World.func_72866_a(World.java:2070)
at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:648)
at net.minecraft.world.World.func_72870_g(World.java:2034)
at WorldServerOF.func_72870_g(WorldServerOF.java:347)
at net.minecraft.world.World.func_72939_s(World.java:1887)
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:489)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:636)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:186)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
Rollback Post to RevisionRollBack
GENERATION 9001: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment
When the rotation is set to body it should not always be the same as the value you set. And yes it should auto syncs to clients.
When rotation is set to manual it doesnt matter what rotation you set as the manual rotation overrides it. This is prossibly something I can fix.
I'm definitely getting the same result no matter which way the NPC's body is facing(in body mode). However, I'm not on the latest version right now, so I'll get back to you on this when I've updated.
EDIT: Same results in 1.7.10_test and CustomNPCs_1.7.10c_pre1.8alpha
Manually doing rotation in the update script should not impact performance at all. To start with the update script is only called once every 10 server ticks. So in all twice per second. Secondly minecraft itself handles position/rotation handling syncing. As long as you don't make complicated or big for/while loops the impact should be neglectable.
Thanks, that's great to know. That sort of timing will be perfect for some of the ideas I have.
A question for anyone. Does CustomNPCs have a wiki?
I dont know if someone allready posted this but what do you think about a question Mark (?) over a Questers Mob Head? And when we need to finish a quest a CustomNPC that this npc could have a exclamation mark (!).
Just a idea.
Constantly :P. In short I don't like them.
1) Because of the dynamic dialog system it is hard to tell if a npc has a quest
2) Client doesnt know if a player has a quest completed only the server knows. So it would need a rewrite to allow for client specific ?/! rendering
3) I think its bad game design. It makes players rush through your content, makes it less engaging, stops most players from interacting with your other npcs and only focus on the ones with !/? above their head.
Its just emergion breaking for me and I have yet to see any counter argument which would make me go yes, that's a good reason to spend weeks rewriting my code to make it possible.
Quote from chromecidejump
I'm definitely getting the same result no matter which way the NPC's body is facing(in body mode). However, I'm not on the latest version right now, so I'll get back to you on this when I've updated.
EDIT: Same results in 1.7.10_test and CustomNPCs_1.7.10c_pre1.8alpha
Thanks, that's great to know. That sort of timing will be perfect for some of the ideas I have.
A question for anyone. Does CustomNPCs have a wiki?
Tested it and does work. You do need to disable the stop on interact in the ai -> walking menu.
Nope it doesnt have a wiki as far as Im aware
Rollback Post to RevisionRollBack
Those who want to chat or hang out, join me on discord
Want to support me? Become one of my patrons:
This is my PickpocketVictim Script. Paste it into the "Interact" Event of the script editor, or save it in your scripts folder and add it to the Interact tab via "Load Scripts". The item to be picked is a copy of what's in the NPC's Projectile slot.(so the item wouldn't show in the NPC's hands).
To use the "skill" the player simply has to right click on the NPC with an empty hand. At the moment we can't detect player sneaking in script, but it's been suggested to Noppes, so when it's added I'll make an updated version to include sneaking.
by adding the following snippet to the init tab, you can make it so the item can only be stolen once:
npc.setStoredData('Skill_Pickpocket_RemoveItem', 1); //remove the item if a player makes a successful pickpocket
and the same can be achieved for all NPCs with the script enabled, by using:
//pickpocketing levels
var criticalSuccess = 99;
var success = 60;
var criticalFail = 1;
//if a player successfully pickpockets an NPC, should we remove the item?
var removeItemOnPick = false; //default to false
//override with a world setting
if(world.hasStoredData('Skill_Pickpocket_RemoveItem')){
removeItemOnPick = world.getStoredData('Skill_Pickpocket_RemoveItem');
}
//override on a per NPC basis
if(npc.hasStoredData('Skill_Pickpocket_RemoveItem')){
removeItemOnPick = npc.getStoredData('Skill_Pickpocket_RemoveItem');
}
//If the player has an empty hand
if(player.getHeldItem()===null){
//calculate any modifiers
var chanceModifier = 0;
if(player.hasStoredData('Skill_Pickpocket')){
chanceModifier+=player.getStoredData('Skill_Pickpocket');
}
//"Roll the Dice"
var chance = Math.floor((Math.random()*100) + 1);
//add the modifier
chance+=chanceModifier;
var item, itemName, pickedItem;
//first let's make sure the npc has an item in the projectile slot
//I've used the porojectile slot because it doesn't show in the models hand.
item = npc.getProjectileItem();
if(item){
itemName = item.getName();
}
//npc.say(itemName);
//npc.say(chance);
//npc.say(removeItemOnPick);
//determine the result
if(itemName && chance>=criticalSuccess){ //Critical Success!
//create a copy of the item
pickedItem = world.createItem(itemName, item.getItemDamage(), 2);
if(removeItemOnPick){
//remove the item from the npc
npc.setProjectileItem(null);
}
//give the item to the player
npc.giveItem(player, pickedItem);
}else{
if(itemName && chance>=success){ //Success
//create a copy of the item
pickedItem = world.createItem(itemName, item.getItemDamage(), 1);
if(removeItemOnPick){
//remove the item from the npc
npc.setProjectileItem(null);
}
//give the item to the player
npc.giveItem(player, pickedItem);
}else{
//doesn't matter if there's an item or not, you can still get busted!
if(chance<=criticalFail){ //Critical Fail
//BUSTED!
npc.setAttackTarget(player);
}//else{} //regular fail, nothing happens
}
}
//cancel the default event
event.setCancelled(true);
}
This is my PickpocketVictim Script. Paste it into the "Interact" Event of the script editor, or save it in your scripts folder and add it to the Interact tab via "Load Scripts". The item to be picked is a copy of what's in the NPC's Projectile slot.(so the item wouldn't show in the NPC's hands).
To use the "skill" the player simply has to right click on the NPC with an empty hand. At the moment we can't detect player sneaking in script, but it's been suggested to Noppes, so when it's added I'll make an updated version to include sneaking.
by adding the following snippet to the init tab, you can make it so the item can only be stolen once:
and the same can be achieved for all NPCs with the script enabled, by using:
Script:
//pickpocketing levels
var criticalSuccess = 99;
var success = 60;
var criticalFail = 1;
//if a player successfully pickpockets an NPC, should we remove the item?
var removeItemOnPick = false; //default to false
//override with a world setting
if(world.hasStoredData('Skill_Pickpocket_RemoveItem')){
removeItemOnPick = world.getStoredData('Skill_Pickpocket_RemoveItem');
}
//override on a per NPC basis
if(npc.hasStoredData('Skill_Pickpocket_RemoveItem')){
removeItemOnPick = npc.getStoredData('Skill_Pickpocket_RemoveItem');
}
//If the player has an empty hand
if(player.getHeldItem()===null){
//calculate any modifiers
var chanceModifier = 0;
if(player.hasStoredData('Skill_Pickpocket')){
chanceModifier+=player.getStoredData('Skill_Pickpocket');
}
//"Roll the Dice"
var chance = Math.floor((Math.random()*100) + 1);
//add the modifier
chance+=chanceModifier;
var item, itemName, pickedItem;
//first let's make sure the npc has an item in the projectile slot
//I've used the porojectile slot because it doesn't show in the models hand.
item = npc.getProjectileItem();
if(item){
itemName = item.getName();
}
npc.say(itemName);
npc.say(chance);
npc.say(removeItemOnPick);
//determine the result
if(itemName && chance>=criticalSuccess){ //Critical Success!
//create a copy of the item
pickedItem = world.createItem(itemName, item.getItemDamage(), 2);
if(removeItemOnPick){
//remove the item from the npc
npc.setProjectileItem(null);
}
//give the item to the player
npc.giveItem(player, pickedItem);
}else{
if(itemName && chance>=success){ //Success
//create a copy of the item
pickedItem = world.createItem(itemName, item.getItemDamage(), 1);
if(removeItemOnPick){
//remove the item from the npc
npc.setProjectileItem(null);
}
//give the item to the player
npc.giveItem(player, pickedItem);
}else{
//doesn't matter if there's an item or not, you can still get busted!
if(chance<=criticalFail){ //Critical Fail
//BUSTED!
npc.setAttackTarget(player);
}//else{} //regular fail, nothing happens
}
}
//cancel the default event
event.setCancelled(true);
}
With 1.7.10c and 1.8 all clones are saved as individual .json files. It's easier to just share that ^^
Rollback Post to RevisionRollBack
Those who want to chat or hang out, join me on discord
Want to support me? Become one of my patrons:
The Meaning of Life, the Universe, and Everything.
Location:
Earth
Join Date:
1/28/2014
Posts:
237
Location:
Valewood
Minecraft:
Saffroth
Member Details
Can someone give me the link to the 1.8 alpha? I cannot find it while looking through the posts, or I'm just not seeing it.
EDIT: Found it on CustomNPCs CurseForge page.
I need some help. So I made a nice farmer script that lets my npc check crops in an area and harvest them and etc... Problem is he keeps doing these mini jumps while walking around trampling the farmland. Anyone know why he does these mini umps?
here is how me moves
var x = world.getTime();
if(x >= 1000 && x <= 17000) //times he works
{
if(x%100 >= 0 && x%100 <= 10) //every 5 seconds
{
var arrayX = [1,2,3]; // 3x3 grid of farmland coordinates
var arrayZ = [1,2,3];
var rand1 = Math.floor(Math.random()*(maxValue - minValue + 1) + minValue); //get 2 random values
var rand2 = Math.floor(Math.random()*(maxValue - minValue + 1) + minValue); // between size of the arrays(0 and 2)
var posX = arrayX[rand1]; //get the values in the arrays
var posZ = arrayZ[rand2];
npc.setHome(posX, Y, posZ); //set home to the random values, Y is constant for flat ground
Soulstones (makes companions/followers autofollow the spawner)
Followers can be set to infinite days
Wandering npc interact option
Explosion resistance
Lines when killing
New animations: crawling, hug
Linked npcs (edit one npc edit all linked ones)
Rewritten clonesnpcs.dat to seperate readable .json files
Rewritten playerdata/dialogs/quests to .json
Ignore nbt option for traders/quests/recipes
Potion immune option
Moved walkingspeed from stats to ai walking menu
No movement option
Companion is useable (about 40% done, so still a WIP)
Follows player who spawns him from the soulstone
Needs food
Can level talents
Has a workable backpack
Tools it uses break
Can only wear certain armor/weapons after leveling
Can grow from baby to adult
More compatible inventory tabs
More scripting options
Crash and bug fixes
This will probably be the last update for 1.7.10. Originally I hadn't planned on adding these features to 1.7.10, but have them ready for my 1.8 release. The 1.8 update took a little longer than expected and I had these new features ready for 1.7.10.
This update was also necesary, because of minecraft new username changing features, which would break parts of my mod when users changed their names. So instead of saving things as username.dat its now converted and saved as uuid.dat.
Ive also rewriten the way quests/dialogs and cloned npcs are saved. They are now saved as seperate/readable .json files. The cloned entities can now be easily nbt edited if you know what you are doing. And quests/dialog/clones can now be easier shared as they are seperate files. When sharing dialogs and quests though make sure you edit their ids properly so they dont overlap with other ids.
Ill probably be releasing an update video to go over the new changes.
When updating don't forget to backup your worlds. The download is as always on my download page
I'm not understanding how getBlock works. What exactly does the function return? The api says it returns the block at the given position, but in what way? It seems like random numbers and letters to me that's being returned, rather than the name of the block or the id...If someone could please explain this to me, i'd very much appreciate it. Thanks in advance!
Could you provide a crash report, then your problem could be solved.
Not sure if it's even possible but...(this is with 1.7.10)
AI => Movement => Rotation: Manual
// [Scripting Interact Event]
// result is as expected, whatever I entered in the Rotation setting, or via code
npc.say(npc.getRotation());
Whereas
AI => Movement => Rotation: Body
// [Scripting Interact Event]
// result is whatever I last entered in the Rotation setting,
// or if not already set, I assume the value I'm seeing is whatever the rotation was when the npc was created
npc.say(npc.getRotation());
Are the random rotations in the "Body" setting synced across clients? Or is that one of those things that are somewhat client independent?
If it's not possible to sync the random rotations, and I realise the scripting is still a new addition, but do you have any idea of what performance impact using the update event to create my own random rotations using the "Manual" setting would have? I've been a little reluctant to use a script that needs to run every update tick. (one badly coded for loop could kill a server)
Loving the scripting, by the way! The possibilities are endless, and so far I've had little to no issues that weren't solved with the javadoc and better typo checking of my code.
Due to the fact that you can use Java classes within the scripting environment, I think interacting with TileEntities could be implemented quite easily, though this would be more of a hack than a solution: All you have to do is allow the world object to return the TileEntity located at a set of coordinates, and the coders can figure things out from there.
However, there is a better solution. Provide an abstract class of ScriptTileEntity which has access to all of the base TileEntity code, and then create subclasses for the basic Minecraft TileEntities. Then, as part of the API, mods can extend the ScriptTileEntity to handle interaction with mod TileEntities.
As for the API, along with the above, I would love to be able to define my own Jobs and Roles.
I would love to help out with development, if you need any help.
Also, I've been having trouble with the ScriptLiving::navigateTo() method with 1.7.10. I've been trying to create a npc that follows and stops following the player when right-clicked, but whenever this method is called, the npc doesn't move, nor does ScriptLiving::isNavigating() return true.
The practice of programming a computer without touching an input device of any kind, such as a keyboard or mouse. Easily confused with doing nothing at all.
Johnny might be sitting and staring at the computer, or he might be programming telekinetically.
The practice of programming a computer without touching an input device of any kind, such as a keyboard or mouse. Easily confused with doing nothing at all.
Johnny might be sitting and staring at the computer, or he might be programming telekinetically.
No it's not client independent.
When the rotation is set to body it should not always be the same as the value you set. And yes it should auto syncs to clients.
When rotation is set to manual it doesnt matter what rotation you set as the manual rotation overrides it. This is prossibly something I can fix.
Manually doing rotation in the update script should not impact performance at all. To start with the update script is only called once every 10 server ticks. So in all twice per second. Secondly minecraft itself handles position/rotation handling syncing. As long as you dont make complicated or big for/while loops the impact should be neglectable.
Wouldnt say I need more help. But more help is always welcome. Send me a pm.
Ill make minecrafts world object available. I guess that would be easiest. There are 20 basic tileentities I dont really feel like adding them unless somebody actually needs something from them.
Want to support me? Become one of my patrons:
i have a big bug, i cant play my world for at least a minute
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextNode(Unknown Source)
at java.util.HashMap$KeyIterator.next(Unknown Source)
at net.minecraft.entity.EntityLivingBase.func_70679_bo(EntityLivingBase.java:521)
at net.minecraft.entity.EntityLivingBase.func_70030_z(EntityLivingBase.java:293)
at net.minecraft.entity.EntityLiving.func_70030_z(EntityLiving.java:157)
at net.minecraft.entity.Entity.func_70071_h_(Entity.java:318)
at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:1561)
at net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:206)
at noppes.npcs.entity.EntityNPCInterface.func_70071_h_(EntityNPCInterface.java:225)
at noppes.npcs.entity.EntityCustomNpc.func_70071_h_(EntityCustomNpc.java:34)
at net.minecraft.world.World.func_72866_a(World.java:2070)
at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:648)
at net.minecraft.world.World.func_72870_g(World.java:2034)
at WorldServerOF.func_72870_g(WorldServerOF.java:347)
at net.minecraft.world.World.func_72939_s(World.java:1887)
at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:489)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:636)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:186)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
GENERATION 9001: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment
What if traders also had the option to trade your Experience points for their items?
Like enchanting takes away Exp. What if trading did as well?
Personally I think its a cool alternate currency system that depends on what you kill.
P.s (Note: I got the idea from Darksouls lol)
I'm definitely getting the same result no matter which way the NPC's body is facing(in body mode). However, I'm not on the latest version right now, so I'll get back to you on this when I've updated.
EDIT: Same results in 1.7.10_test and CustomNPCs_1.7.10c_pre1.8alpha
Thanks, that's great to know. That sort of timing will be perfect for some of the ideas I have.
A question for anyone. Does CustomNPCs have a wiki?
Constantly :P. In short I don't like them.
1) Because of the dynamic dialog system it is hard to tell if a npc has a quest
2) Client doesnt know if a player has a quest completed only the server knows. So it would need a rewrite to allow for client specific ?/! rendering
3) I think its bad game design. It makes players rush through your content, makes it less engaging, stops most players from interacting with your other npcs and only focus on the ones with !/? above their head.
Its just emergion breaking for me and I have yet to see any counter argument which would make me go yes, that's a good reason to spend weeks rewriting my code to make it possible.
Tested it and does work. You do need to disable the stop on interact in the ai -> walking menu.
Nope it doesnt have a wiki as far as Im aware
Want to support me? Become one of my patrons:
This is my PickpocketVictim Script. Paste it into the "Interact" Event of the script editor, or save it in your scripts folder and add it to the Interact tab via "Load Scripts". The item to be picked is a copy of what's in the NPC's Projectile slot.(so the item wouldn't show in the NPC's hands).
To use the "skill" the player simply has to right click on the NPC with an empty hand. At the moment we can't detect player sneaking in script, but it's been suggested to Noppes, so when it's added I'll make an updated version to include sneaking.
by adding the following snippet to the init tab, you can make it so the item can only be stolen once:
and the same can be achieved for all NPCs with the script enabled, by using:
Script:
var criticalSuccess = 99;
var success = 60;
var criticalFail = 1;
//if a player successfully pickpockets an NPC, should we remove the item?
var removeItemOnPick = false; //default to false
//override with a world setting
if(world.hasStoredData('Skill_Pickpocket_RemoveItem')){
removeItemOnPick = world.getStoredData('Skill_Pickpocket_RemoveItem');
}
//override on a per NPC basis
if(npc.hasStoredData('Skill_Pickpocket_RemoveItem')){
removeItemOnPick = npc.getStoredData('Skill_Pickpocket_RemoveItem');
}
//If the player has an empty hand
if(player.getHeldItem()===null){
//calculate any modifiers
var chanceModifier = 0;
if(player.hasStoredData('Skill_Pickpocket')){
chanceModifier+=player.getStoredData('Skill_Pickpocket');
}
//"Roll the Dice"
var chance = Math.floor((Math.random()*100) + 1);
//add the modifier
chance+=chanceModifier;
var item, itemName, pickedItem;
//first let's make sure the npc has an item in the projectile slot
//I've used the porojectile slot because it doesn't show in the models hand.
item = npc.getProjectileItem();
if(item){
itemName = item.getName();
}
//npc.say(itemName);
//npc.say(chance);
//npc.say(removeItemOnPick);
//determine the result
if(itemName && chance>=criticalSuccess){ //Critical Success!
//create a copy of the item
pickedItem = world.createItem(itemName, item.getItemDamage(), 2);
if(removeItemOnPick){
//remove the item from the npc
npc.setProjectileItem(null);
}
//give the item to the player
npc.giveItem(player, pickedItem);
}else{
if(itemName && chance>=success){ //Success
//create a copy of the item
pickedItem = world.createItem(itemName, item.getItemDamage(), 1);
if(removeItemOnPick){
//remove the item from the npc
npc.setProjectileItem(null);
}
//give the item to the player
npc.giveItem(player, pickedItem);
}else{
//doesn't matter if there's an item or not, you can still get busted!
if(chance<=criticalFail){ //Critical Fail
//BUSTED!
npc.setAttackTarget(player);
}//else{} //regular fail, nothing happens
}
}
//cancel the default event
event.setCancelled(true);
}
With 1.7.10c and 1.8 all clones are saved as individual .json files. It's easier to just share that ^^
Want to support me? Become one of my patrons:
Would be cool if i could tell if my npc is "sleeping"
// This doesn't make any sense!
[B#265]
[B#265] Time: 2/7/15 8:20 AM
[B#265] Description: Ticking entity
[B#265]
[B#265] java.lang.NullPointerException: Ticking entity
[B#265] at noppes.npcs.ai.EntityAIOrbitTarget.func_75251_c(EntityAIOrbitTarget.java:88)
[B#265] at net.minecraft.entity.ai.EntityAITasks.func_85156_a(SourceFile:47)
[B#265] at noppes.npcs.entity.EntityNPCInterface.clearTasks(EntityNPCInterface.java:526)
[B#265] at noppes.npcs.entity.EntityNPCInterface.updateTasks(EntityNPCInterface.java:535)
[B#265] at noppes.npcs.entity.EntityNPCInterface.reset(EntityNPCInterface.java:964)
[B#265] at noppes.npcs.entity.EntityNPCInterface.func_70609_aI(EntityNPCInterface.java:937)
[B#265] at net.minecraft.entity.EntityLivingBase.func_70030_z(EntityLivingBase.java:264)
[B#265] at net.minecraft.entity.EntityLiving.func_70030_z(EntityLiving.java:157)
[B#265] at net.minecraft.entity.Entity.func_70071_h_(Entity.java:318)
[B#265] at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:1561)
[B#265] at net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:206)
[B#265] at noppes.npcs.entity.EntityNPCInterface.func_70071_h_(EntityNPCInterface.java:225)
[B#265] at noppes.npcs.entity.EntityCustomNpc.func_70071_h_(EntityCustomNpc.java:34)
[B#265] at net.minecraft.world.World.func_72866_a(World.java:2070)
[B#265] at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:648)
[B#265] at net.minecraft.world.World.func_72870_g(World.java:2034)
[B#265] at net.minecraft.world.World.func_72939_s(World.java:1887)
[B#265] at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:489)
[B#265] at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:636)
[B#265] at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
[B#265] at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:111)
[B#265] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
[B#265] at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
[B#265]
[B#265]
[B#265] A detailed walkthrough of the error, its code path and all known details is as follows:
[B#265] ---------------------------------------------------------------------------------------
[B#265]
[B#265] -- Head --
[B#265] Stacktrace:
[B#265] at noppes.npcs.ai.EntityAIOrbitTarget.func_75251_c(EntityAIOrbitTarget.java:88)
[B#265] at net.minecraft.entity.ai.EntityAITasks.func_85156_a(SourceFile:47)
[B#265] at noppes.npcs.entity.EntityNPCInterface.clearTasks(EntityNPCInterface.java:526)
[B#265] at noppes.npcs.entity.EntityNPCInterface.updateTasks(EntityNPCInterface.java:535)
[B#265] at noppes.npcs.entity.EntityNPCInterface.reset(EntityNPCInterface.java:964)
[B#265] at noppes.npcs.entity.EntityNPCInterface.func_70609_aI(EntityNPCInterface.java:937)
[B#265] at net.minecraft.entity.EntityLivingBase.func_70030_z(EntityLivingBase.java:264)
[B#265] at net.minecraft.entity.EntityLiving.func_70030_z(EntityLiving.java:157)
[B#265] at net.minecraft.entity.Entity.func_70071_h_(Entity.java:318)
[B#265] at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:1561)
[B#265] at net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:206)
[B#265] at noppes.npcs.entity.EntityNPCInterface.func_70071_h_(EntityNPCInterface.java:225)
[B#265] at noppes.npcs.entity.EntityCustomNpc.func_70071_h_(EntityCustomNpc.java:34)
[B#265] at net.minecraft.world.World.func_72866_a(World.java:2070)
[B#265] at net.minecraft.world.WorldServer.func_72866_a(WorldServer.java:648)
[B#265] at net.minecraft.world.World.func_72870_g(World.java:2034)
[B#265]
[B#265] -- Entity being ticked --
[B#265] Details:
[B#265] Entity Type: CustomNpc (noppes.npcs.entity.EntityCustomNpc)
[B#265] Entity ID: 342
[B#265] Entity Name: Estz
[B#265] Entity's Exact location: 625.50, 63.92, 725.50
[B#265] Entity's Block location: World: (625,63,725), Chunk: (at 1,3,5 in 39,45; contains blocks 624,0,720 to 639,255,735), Region: (1,1; contains chunks 32,32 to 63,63, blocks 512,0,512 to 1023,255,1023)
[B#265] Entity's Momentum: 0.00, -0.16, 0.00
[B#265] Stacktrace:
[B#265] at net.minecraft.world.World.func_72939_s(World.java:1887)
[B#265] at net.minecraft.world.WorldServer.func_72939_s(WorldServer.java:489)
[B#265]
[B#265] -- Affected level --
[B#265] Details:
[B#265] Level name: TEST
[B#265] All players: 1 total; [EntityPlayerMP['Juno64'/337, l='TEST', x=623.42, y=66.86, z=721.82]]
[B#265] Chunk stats: ServerChunkCache: 642 Drop: 0
[B#265] Level seed: 4552267363587920527
[B#265] Level generator: ID 00 - default, ver 1. Features enabled: true
[B#265] Level generator options:
[B#265] Level spawn location: World: (84,64,140), Chunk: (at 4,4,12 in 5,8; contains blocks 80,0,128 to 95,255,143), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
[B#265] Level time: 259707 game time, 71722 day time
[B#265] Level dimension: 0
[B#265] Level storage version: 0x04ABD - Anvil
[B#265] Level weather: Rain time: 20417 (now: false), thunder time: 18411 (now: false)
[B#265] Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: true
[B#265] Stacktrace:
[B#265] at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:636)
[B#265] at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
[B#265] at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:111)
[B#265] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
[B#265] at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
[B#265]
[B#265] -- System Details --
[B#265] Details:
[B#265] Minecraft Version: 1.7.10
[B#265] Operating System: Windows 8.1 (amd64) version 6.3
[B#265] Java Version: 1.8.0_25, Oracle Corporation
[B#265] Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
[B#265] Memory: 308828168 bytes (294 MB) / 958943232 bytes (914 MB) up to 3151495168 bytes (3005 MB)
[B#265] JVM Flags: 4 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx3072m -Xincgc -XX:MaxPermSize=256m
[B#265] AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
[B#265] IntCache: cache: 5, tcache: 0, allocated: 15, tallocated: 95
[B#265] FML: MCP v9.05 FML v7.10.85.1264 Minecraft Forge 10.13.2.1264 55 mods loaded, 55 mods active
[B#265] mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] FML{7.10.85.1264} [Forge Mod Loader] (modpack.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Forge{10.13.2.1264} [Minecraft Forge] (modpack.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] CodeChickenCore{1.0.4.29} [CodeChicken Core] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] <CoFH ASM>{000} [CoFH ASM Data Initialization] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] MCVanillaTweaks{1.0} [Mariculture - Vanilla Tweaks] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] NotEnoughItems{1.0.4.83} [Not Enough Items] (NotEnoughItems-1.7.10-1.0.4.83-universal.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] ThaumicTinkerer-preloader{0.1} [Thaumic Tinkerer Core] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] OpenModsCore{0.6} [OpenModsCore] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] AppleCore{1.1.0} [AppleCore] (AppleCore-mc1.7.10-1.1.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] CoFHCore{1.7.10R3.0.0B9} [CoFH Core] (CoFHCore-[1.7.10]3.0.0B9-40.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] BuildCraft|Core{6.3.4} [BuildCraft] (buildcraft-6.3.4.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Forestry{3.3.0.6} [Forestry for Minecraft] (forestry_1.7.10-3.3.0.6.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] BinnieCore{2.0-pre5} [Binnie Core] (binnie-mods-2.0-pre5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Botany{2.0-pre5} [Botany] (binnie-mods-2.0-pre5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] ExtraBees{2.0-pre5} [Extra Bees] (binnie-mods-2.0-pre5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] ExtraTrees{2.0-pre5} [Extra Trees] (binnie-mods-2.0-pre5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Genetics{2.0-pre5} [Genetics] (binnie-mods-2.0-pre5.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] BuildCraft|Transport{6.3.4} [BC Transport] (buildcraft-6.3.4.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] BuildCraft|Silicon{6.3.4} [BC Silicon] (buildcraft-6.3.4.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] BuildCraft|Builders{6.3.4} [BC Builders] (buildcraft-6.3.4.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] BuildCraft|Energy{6.3.4} [BC Energy] (buildcraft-6.3.4.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] BuildCraft|Factory{6.3.4} [BC Factory] (buildcraft-6.3.4.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] CarpentersBlocks{3.3.5} [Carpenter's Blocks] (Carpenter's Blocks v3.3.5 - MC 1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Baubles{1.0.1.10} [Baubles] (Baubles-1.7.10-1.0.1.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Thaumcraft{4.2.3.4} [Thaumcraft] (Thaumcraft-1.7.10-4.2.3.4.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] chisel{2.3.5.31} [Chisel 2] (Chisel2-2.3.5.31.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] ComputerCraft{1.65} [ComputerCraft] (ComputerCraft1.65.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] customnpcs{1.7.10b} [CustomNpcs] (CustomNPCs_1.7.10b.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Enchiridion{1.1} [Enchiridion] (Enchiridion-1.7.X-1.2b.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] FastCraft{1.19} [FastCraft] (fastcraft-1.19.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] flansmod{4.9.0} [Flan's Mod] (Flans Mod-1.7.10-4.9.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Growthcraft{2.1.0a} [Growthcraft] (growthcraft-core-1.7.10-2.1.0a.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Growthcraft|Bamboo{2.1.0} [Growthcraft Bamboo] (growthcraft-bamboo-1.7.10-2.1.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Growthcraft|Cellar{2.1.0a} [Growthcraft Cellar] (growthcraft-cellar-1.7.10-2.1.0a.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Growthcraft|Bees{2.1.0} [Growthcraft Bees] (growthcraft-bees-1.7.10-2.1.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Growthcraft|Grapes{2.1.0} [Growthcraft Grapes] (growthcraft-grapes-1.7.10-2.1.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Growthcraft|Hops{2.1.0} [Growthcraft Hops] (growthcraft-hops-1.7.10-2.1.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Growthcraft|Rice{2.1.0a} [Growthcraft Rice] (growthcraft-rice-1.7.10-2.1.0a.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Mantle{1.7.10-0.3.2.jenkins184} [Mantle] (Mantle-1.7.10-0.3.2.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] MapWriter{2.1.2} [MapWriter] (MapWriter-Mod-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] ThermalFoundation{1.7.10R1.0.0RC1} [Thermal Foundation] (ThermalFoundation-[1.7.10]1.0.0RC1-13.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] ThermalExpansion{1.7.10R4.0.0B8} [Thermal Expansion] (ThermalExpansion-[1.7.10]4.0.0B8-23.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Waila{1.5.8} [Waila] (Waila-1.5.8a_1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] TConstruct{1.7.10-1.8.2.build858} [Tinkers' Construct] (TConstruct-1.7.10-1.8.2a.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] Mariculture{1.7.10-1.2.4c} [Mariculture] (Mariculture-Deluxe-1.7.10-1.2.4c.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] MariTech{1.0} [Marine Technlogy] (Mariculture-Deluxe-1.7.10-1.2.4c.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] minechem{5.0.5.358} [Minechem] (Minechem-1.7.10-5.0.5.358.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] cfm{3.4.7} [§9MrCrayfish's Furniture Mod] (MrCrayfishFurnitureModv3.4.7(1.7.10).jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] OpenMods{0.6} [OpenMods] (OpenModsLib-1.7.10-0.6.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] OpenBlocks{1.3} [OpenBlocks] (OpenBlocks-1.7.10-1.3.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] harvestcraft{1.7.10d} [Pam's HarvestCraft] (Pam's HarvestCraft 1.7.10f.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] SpiceOfLife{1.2.3} [The Spice of Life] (SpiceOfLife-mc1.7.10-1.2.3.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] ThaumicTinkerer{unspecified} [Thaumic Tinkerer] (ThaumicTinkerer-2.5-1.7.10-162.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] WailaHarvestability{1.1.1} [Waila Harvestability] (WailaHarvestability-mc1.7.x-1.1.1.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
[B#265] OpenModsLib crash transformers: [stencil_patches:FINISHED],[movement_callback:FINISHED],[map_gen_fix:FINISHED],[gl_capabilities_hook:FINISHED],[player_render_hook:FINISHED]
[B#265] Mantle Environment: Environment healthy.
[B#265] TConstruct Environment: Environment healthy.
[B#265] Stencil buffer state: Function set: GL30, pool: internal, bits: 8
[B#265] Profiler Position: N/A (disabled)
[B#265] Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
[B#265] Player Count: 1 / 8; [EntityPlayerMP['Juno64'/337, l='TEST', x=623.42, y=66.86, z=721.82]]
[B#265] Type: Integrated Server (map_client.txt)
[B#265] Is Modded: Definitely; Client brand changed to 'fml,forge'
[B#265] [08:20:53] [Client thread/INFO]: [net.minecraft.client.Minecraft:func_71377_b:354]: #@[email protected]# Game crashed! Crash report saved to: #@[email protected]# C:\Users\JunoMino\AppData\Roaming\.technic\modpacks\junopack\crash-reports\crash-2015-02-07_08.20.53-server.txt
[B#265] [08:20:53] [Client thread/INFO]: Waiting for the server to terminate/save.
[B#265] [08:20:53] [Server thread/INFO]: Saving worlds
[B#265] [08:20:53] [Server thread/INFO]: Saving chunks for level 'TEST'/Overworld
[B#265] [08:20:53] [Netty Client IO #0/INFO]: Restoring client configs.
[B#265] [08:20:54] [Netty Client IO #0/INFO]: openmods.network.IdSyncManager.onDisconnect(IdSyncManager.java:124): Disconnected, restoring local data
[B#265] [08:20:54] [Server thread/INFO]: Saving chunks for level 'TEST'/Nether
[B#265] [08:20:54] [Server thread/INFO]: Saving chunks for level 'TEST'/The End
[B#265] [08:20:54] [Server thread/INFO]: Saving chunks for level 'TEST'/Bedrock
[B#265] [08:20:54] [Server thread/INFO]: Saving chunks for level 'TEST'/The Outer Lands
[B#265] [08:20:54] [Server thread/INFO]: Unloading dimension 0
[B#265] [08:20:54] [Server thread/INFO]: Unloading dimension -1
[B#265] [08:20:54] [Server thread/INFO]: Unloading dimension 1
[B#265] [08:20:54] [Server thread/INFO]: Unloading dimension -19
[B#265] [08:20:54] [Server thread/INFO]: Unloading dimension -42
[B#265] [08:20:54] [Server thread/INFO]: Applying holder lookups
[B#265] [08:20:54] [Server thread/WARN]: Unable to lookup chisel:cobblestoneWall for public static com.cricketcraft.chisel.block.BlockMarbleWall com.cricketcraft.chisel.init.ChiselBlocks.cobblestoneWall. Is there something wrong with the registry?
[B#265] [08:20:54] [Server thread/WARN]: Unable to lookup chisel:bloodRune for public static com.cricketcraft.chisel.block.BlockCarvable com.cricketcraft.chisel.init.ChiselBlocks.bloodRune. Is there something wrong with the registry?
[B#265] [08:20:54] [Server thread/WARN]: Unable to lookup chisel:bloodBrick for public static com.cricketcraft.chisel.block.BlockCarvable com.cricketcraft.chisel.init.ChiselBlocks.bloodBrick. Is there something wrong with the registry?
[B#265] [08:20:54] [Server thread/INFO]: Holder lookups applied
[B#265] [08:20:54] [Server thread/INFO]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
[B#265] [08:20:54] [Client thread/INFO]: Server terminated.
Mine's dying. I shift-clicked and it pulled up his exp bar and talents, but that didn't help. I right clicked him with food too, no luck.
Also, how do I access his inventory?
Check out my art!!
http://blueeyes9.deviantart.com/
EDIT: Found it on CustomNPCs CurseForge page.
Hello!
here is how me moves
var x = world.getTime();
if(x >= 1000 && x <= 17000) //times he works
{
if(x%100 >= 0 && x%100 <= 10) //every 5 seconds
{
var arrayX = [1,2,3]; // 3x3 grid of farmland coordinates
var arrayZ = [1,2,3];
var rand1 = Math.floor(Math.random()*(maxValue - minValue + 1) + minValue); //get 2 random values
var rand2 = Math.floor(Math.random()*(maxValue - minValue + 1) + minValue); // between size of the arrays(0 and 2)
var posX = arrayX[rand1]; //get the values in the arrays
var posZ = arrayZ[rand2];
npc.setHome(posX, Y, posZ); //set home to the random values, Y is constant for flat ground
}
}
This update was also necesary, because of minecraft new username changing features, which would break parts of my mod when users changed their names. So instead of saving things as username.dat its now converted and saved as uuid.dat.
Ive also rewriten the way quests/dialogs and cloned npcs are saved. They are now saved as seperate/readable .json files. The cloned entities can now be easily nbt edited if you know what you are doing. And quests/dialog/clones can now be easier shared as they are seperate files. When sharing dialogs and quests though make sure you edit their ids properly so they dont overlap with other ids.
Ill probably be releasing an update video to go over the new changes.
When updating don't forget to backup your worlds. The download is as always on my download page
Have fun,
~Noppes
ps.
1.8 alpha is available for download too.
Want to support me? Become one of my patrons: