Jump to content

millers

VIP Member
  • Posts

    69
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by millers

  1. Hi guys i have a little problem here and really dont know what's wrong with it . So today i tried to add some custom items but in the end i get some strange error what says : Cannot create item 0 , ItemTable: Highest used itemID : 9852 .

    Here is all from error.log file 

    Jan 31, 2015 1:37:09 AM net.sf.l2j.gameserver.skills.DocumentItem parseDocument
    WARNING: Cannot create item 0
    java.lang.NullPointerException
    	at net.sf.l2j.gameserver.skills.DocumentItem.parseItem(DocumentItem.java:95)
    	at net.sf.l2j.gameserver.skills.DocumentItem.parseDocument(DocumentItem.java:78)
    	at net.sf.l2j.gameserver.skills.DocumentBase.parse(DocumentBase.java:120)
    	at net.sf.l2j.gameserver.skills.SkillsEngine.loadItems(SkillsEngine.java:107)
    	at net.sf.l2j.gameserver.datatables.ItemTable.load(ItemTable.java:162)
    	at net.sf.l2j.gameserver.datatables.ItemTable.<init>(ItemTable.java:155)
    	at net.sf.l2j.gameserver.datatables.ItemTable$SingletonHolder.<clinit>(ItemTable.java:383)
    	at net.sf.l2j.gameserver.datatables.ItemTable.getInstance(ItemTable.java:135)
    	at net.sf.l2j.gameserver.GameServer.<init>(GameServer.java:160)
    	at net.sf.l2j.gameserver.GameServer.main(GameServer.java:385)
    
    

    package what i'm using is trace editon Based on aCis revision: 315 if that help...

     

     

    Item what i tried to add was 

    Tried With id=9853 the same stoory ..
    
    <item id='23569' name="Dynasty Leather Armor">
    <set name="default_action" val="equip" />
    <set name="armor_type" val="light" />
    <set name="bodypart" val="fullarmor" />
    <set name="crystal_type" val="s" />
    <set name="crystal_count" val="870" />
    <set name="material" val="leather" />
    <set name="weight" val="5400" />
    <set name="price" val="0" />
    <set name="item_skill" val="11961-1" />
      <for>
        <add val='170' order='0x10' stat='pDef'/>
        <enchant val='0' order='0x0C' stat='pDef'/>
      </for>
    </item>
    

    I really hope someone can help me with it didn't find anything near about this error in google.

     

     

    and how about this code i found it in itemtable.java it looks a  bit wierd for me  :

     

    	/**
    	 * Returns instance of ItemTable
    	 * @return ItemTable
    	 */
    	public static ItemTable getInstance()
    	{
    		return SingletonHolder._instance;
    	}
    	
    	/**
    	 * Returns a new object Item
    	 * @return
    	 */
    	public Item newItem()
    	{
    		return new Item();
    	}
    	
    	/**
    	 * Constructor.
    	 */
    	protected ItemTable()
    	{
    		_armors = new HashMap<>();
    		_etcItems = new HashMap<>();
    		_weapons = new HashMap<>();
    		load();
    	}
    	
    	private void load()
    	{
    		int highest = 0;
    		
    		for (L2Item item : SkillsEngine.getInstance().loadItems())
    		{
    			if (highest < item.getItemId())
    				highest = item.getItemId();
    			
    			if (item instanceof L2EtcItem)
    				_etcItems.put(item.getItemId(), (L2EtcItem) item);
    			else if (item instanceof L2Armor)
    				_armors.put(item.getItemId(), (L2Armor) item);
    			else
    				_weapons.put(item.getItemId(), (L2Weapon) item);
    		}
    		buildFastLookupTable(highest);
    	}
    	
    	/**
    	 * Builds a variable in which all items are putting in in function of their ID.
    	 * @param size
    	 */
    	private void buildFastLookupTable(int size)
    	{
    		// Create a FastLookUp Table called _allTemplates of size : value of the highest item ID
    		_log.info("ItemTable: Highest used itemID : " + size);
    		
    		_allTemplates = new L2Item[size + 1];
    		
    		// Insert armor item in Fast Look Up Table
    		for (L2Armor item : _armors.values())
    			_allTemplates[item.getItemId()] = item;
    		
    		// Insert weapon item in Fast Look Up Table
    		for (L2Weapon item : _weapons.values())
    			_allTemplates[item.getItemId()] = item;
    		
    		// Insert etcItem item in Fast Look Up Table
    		for (L2EtcItem item : _etcItems.values())
    			_allTemplates[item.getItemId()] = item;
    	}
    	
    	/**
    	 * Returns the item corresponding to the item ID
    	 * @param id : int designating the item
    	 * @return L2Item
    	 */
    	public L2Item getTemplate(int id)
    	{
    		if (id >= _allTemplates.length)
    			return null;
    		
    		return _allTemplates[id];
    	}
    	
    
  2. Hello i'm looking for someone ho could explaine me how npc.xml stats works for example if i want to  create new npc with brand new stats like 200k hp 200k mana 250 def 250 mdef 5k patt and 5k matt ? i was looking on original mobs in game but i dont understand anything here is example why  : npc.xml file says 

     

     

     <set name="hp" val="2975.2369188"/>

    <set name="mp" val="1742.976"/>
    <set name="hpRegen" val="8.721"/>
    <set name="mpRegen" val="3.0804"/>
    <set name="pAtk" val="938.20801458"/>
    <set name="pDef" val="354.8183475"/>
    <set name="mAtk" val="656.66638089"/>
    <set name="mDef" val="239.180922"/>
    <set name="crit" val="4"/>
    <set name="atkSpd" val="253"/>

     

     

    in game it shows :

     

    33c0rv6.jpg

     

    all what i dont understand .. is where dos it get stats like this from and what means 

    example:

    <set name="pDef" val="354.8183475"/> 

     

    all these extreme numbers  makes no sense !? 

    can someone explaine me how to add some diff stats to mobs,npcs.!!!

     

    Soory for my creepy English!

     

    EDIT:

    Oh and how dose the chance rate work ???

     

    chance="800000"
    chance="700000"
    chance="300000"
    chance="75000"
  3. Hello i  tried to import npc buffer but i get this error

     

     

     

    2011.17.2 02:46:40 com.l2jserver.gameserver.datatables.NpcTable restoreNpcData
    SEVERE: NPCTable: Error creating custom NPC table.
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'critical' in 'field list'
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
    at com.mysql.jdbc.Util.getInstance(Util.java:382)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
    at com.l2jserver.gameserver.datatables.NpcTable.restoreNpcData(NpcTable.java:104)
    at com.l2jserver.gameserver.datatables.NpcTable.<init>(NpcTable.java:64)
    at com.l2jserver.gameserver.datatables.NpcTable.<init>(NpcTable.java:49)
    at com.l2jserver.gameserver.datatables.NpcTable$SingletonHolder.<clinit>(NpcTable.java:919)
    at com.l2jserver.gameserver.datatables.NpcTable.getInstance(NpcTable.java:57)
    at com.l2jserver.gameserver.GameServer.<init>(GameServer.java:259)
    at com.l2jserver.gameserver.GameServer.main(GameServer.java:485)
    2011.17.2 02:46:41 com.l2jserver.gameserver.datatables.NpcTable restoreNpcData
    SEVERE: NPCTable: Error reading NPC Custom AI Data: Unknown column 'can_move' in 'field list'
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'can_move' in 'field list'
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
    at com.mysql.jdbc.Util.getInstance(Util.java:382)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
    at com.l2jserver.gameserver.datatables.NpcTable.restoreNpcData(NpcTable.java:423)
    at com.l2jserver.gameserver.datatables.NpcTable.<init>(NpcTable.java:64)
    at com.l2jserver.gameserver.datatables.NpcTable.<init>(NpcTable.java:49)
    at com.l2jserver.gameserver.datatables.NpcTable$SingletonHolder.<clinit>(NpcTable.java:919)
    at com.l2jserver.gameserver.datatables.NpcTable.getInstance(NpcTable.java:57)
    at com.l2jserver.gameserver.GameServer.<init>(GameServer.java:259)
    at com.l2jserver.gameserver.GameServer.main(GameServer.java:485)
    

     

    Edited in General.properties :

    # Default: False

    CustomNpcBufferTables = True

     

    # Default: False

    CustomNpcTable = True

     

    and mysql table custom_npcaidata is empty

    why i get this error ?

     

    here is the part from npctable.java

    		//-------------------------------------------------------------------
    		//NPC AI Attributes & Data ...
    
    		try
    		{
    			PreparedStatement statement10 = con.prepareStatement("SELECT " + L2DatabaseFactory.getInstance().safetyString(new String[] {"npc_id", "primary_attack","skill_chance","can_move","soulshot","spiritshot","sschance","spschance","minrangeskill","minrangechance","maxrangeskill","maxrangechance","ischaos","clan","clan_range","enemyClan","enemyRange","ai_type","dodge"}) + " FROM npcaidata ORDER BY npc_id");
    			ResultSet NpcAIDataTable = statement10.executeQuery();
    			L2NpcAIData npcAIDat = null;
    			L2NpcTemplate npcDat = null;
    			int cont=0;
    			while (NpcAIDataTable.next())
    			{
    				int npc_id = NpcAIDataTable.getInt("npc_id");
    				npcDat = _npcs.get(npc_id);
    				if (npcDat == null)
    				{
    					_log.severe("NPCTable: AI Data Error with id : " + npc_id);
    					continue;
    				}
    				npcAIDat = new L2NpcAIData();
    
    				npcAIDat.setPrimaryAttack(NpcAIDataTable.getInt("primary_attack"));
    				npcAIDat.setSkillChance(NpcAIDataTable.getInt("skill_chance"));
    				npcAIDat.setCanMove(NpcAIDataTable.getInt("can_move"));
    				npcAIDat.setSoulShot(NpcAIDataTable.getInt("soulshot"));
    				npcAIDat.setSpiritShot(NpcAIDataTable.getInt("spiritshot"));
    				npcAIDat.setSoulShotChance(NpcAIDataTable.getInt("sschance"));
    				npcAIDat.setSpiritShotChance(NpcAIDataTable.getInt("spschance"));
    				npcAIDat.setIsChaos(NpcAIDataTable.getInt("ischaos"));
    				npcAIDat.setShortRangeSkill(NpcAIDataTable.getInt("minrangeskill"));
    				npcAIDat.setShortRangeChance(NpcAIDataTable.getInt("minrangechance"));
    				npcAIDat.setLongRangeSkill(NpcAIDataTable.getInt("maxrangeskill"));
    				npcAIDat.setLongRangeChance(NpcAIDataTable.getInt("maxrangechance"));
    				//npcAIDat.setSwitchRangeChance(NpcAIDataTable.getInt("rangeswitchchance"));
    				npcAIDat.setClan(NpcAIDataTable.getString("clan"));
    				npcAIDat.setClanRange(NpcAIDataTable.getInt("clan_range"));
    				npcAIDat.setEnemyClan(NpcAIDataTable.getString("enemyClan"));
    				npcAIDat.setEnemyRange(NpcAIDataTable.getInt("enemyRange"));
    				npcAIDat.setDodge(NpcAIDataTable.getInt("dodge"));
    				npcAIDat.setAi(NpcAIDataTable.getString("ai_type"));
    				//npcAIDat.setBaseShldRate(NpcAIDataTable.getInt("baseShldRate"));
    				//npcAIDat.setBaseShldDef(NpcAIDataTable.getInt("baseShldDef"));
    
    
    				//npcDat.addAIData(npcAIDat);
    				npcDat.setAIData(npcAIDat);
    				cont++;
    			}
    
    			NpcAIDataTable.close();
    			statement10.close();
    			_log.info("NPC AI Data Table: Loaded " + cont + " AI Data.");
    		}
    		catch (Exception e)
    		{
    			_log.log(Level.SEVERE, "NPCTable: Error reading NPC AI Data: " + e.getMessage(), e);
    		}

     

    I'm Using l2jserver !!!

     

     

     

  4. hello my friends ;).. i have question how the importing system works ? like for example for buffer first lines in __init__ file you add something like this

     

    from com.l2jfree.gameserver.model.actor.instance import L2PcInstance

     

    so that means he look the information about that code in these folders

    com.l2jfree.gameserver.model.actor.instance

    com/l2jfree/gameserver/model/actor/instance

    but if i don't have that kind of folder in my server folders?

    or he reads them from .jar files?

  5. i still get the error... ;( the buffers are one big problem ;(

    Edit:the same maybe there is core problem ? because  a lot of the guys have this problem and it's still not resolved ;(

    maybe here is some guy ho fix'd this problem ? a can help me !?

    edit2: one more question where he gets the info about that quest ? in the import it says

    from com.l2jfree.gameserver.model.quest import State

    that means from com/l2jfree/gameserver/model/quest but i don't have that kind of folders !!

  6. hello guys. I have problem with my buffer i add my buffer in costume folder add line in __init__ add html fail but on load it says failed to import quest... and in game it says i dont have criteria ...so i'm using l2jfree and here is my starting for my npc .. :

    import sys
    from com.l2jfree.gameserver.model.actor.instance import L2PcInstance
    from java.util import Iterator
    from com.l2jfree.gameserver.datatables import SkillTable
    from com.l2jfree			       import L2DatabaseFactory
    from com.l2jfree.gameserver.model.quest import State
    from com.l2jfree.rver.model.quest import QuestState
    from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest
    
    qn = "8505_Buffer"
    
    NPC=[85050]
    ADENA_ID=57
    QuestId     = 8505
    QuestName   = "Buffer"
    QuestDesc   = "custom"
    InitialHtml = "1.htm"
    
    print "importing custom: 8505: Buffer"
    
    class Quest (JQuest) :
    
    def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
    

  7. Hello Guys ;) .. I'm searching 2 days all ready and i could not found the answer to my question.

    i Have big problem with my npc buffer..

    When i'm trying to talk with npc buffer it's shows me this:

    questimport4.png

    When i try to talk one more time it's showing me this:

    questimport3.png

     

    So Here is my __init__ starting:

     

    import sys
    from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
    from java.util import Iterator
    from net.sf.l2j.gameserver.datatables import SkillTable
    from net.sf.l2j			       import L2DatabaseFactory
    from net.sf.l2j.gameserver.model.quest import State
    from net.sf.l2j.gameserver.model.quest import QuestState
    from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
    
    qn = "8505_Buffer"
    
    NPC=[85050]
    ADENA_ID=57
    QuestId     = 8505
    QuestName   = "Buffer"
    QuestDesc   = "custom"
    InitialHtml = "1.htm"
    
    print "importing custom: 8505: Buffer"
    
    class Quest (JQuest) :
    
    def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)
    
    
    def onEvent(self,event,st):
    	htmltext = event
    	count=st.getQuestItemsCount(ADENA_ID)
    	if count < 0  or st.getPlayer().getLevel() < 1 :
    		htmltext = "<html><head><body>Minimum Level for Buff is 1.</body></html>"
    	else:
    		st.takeItems(ADENA_ID,0)
    		st.getPlayer().setTarget(st.getPlayer())
    
    

     

    And here is end of it :

     

    
    
    def onTalk (self,npc,player):
       st = player.getQuestState(qn)
       htmltext = "<html><head><body>I have nothing to say to you</body></html>"
       st.setState(State.STARTED)
       return InitialHtml
    
    QUEST       = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
    
    for npcId in NPC:
    QUEST.addStartNpc(npcId)
    QUEST.addTalkId(npcId)
    
    

    And i'm using l2jserver IL

    i hope someone can help me ! ;(

     

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock