Jump to content

Sectis

Members
  • Posts

    36
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by Sectis

  1. exo mia idea gt dn mathenis siga siga java ke na arxisis koutsa straba ligo to l2j dp developing meta siga siga core deving ? dn ine ke diskolo arxika apla paratiris polii kala mathenodas taftoxrona ta basika tis java

    an thes boro na sou anafero pia ine se pribe pm :)

  2. kita ligo  to ench1time kathorizi poso tha kratai opote leme tora exis bali ton xrono 3600 = 1 ora to enchant level 2 ine 1280 20 lepta  ara otan to kanis level 2 ine les ke ginete reset ke dn sou prostheti xrono aplos allazi to poso tha kratai opos ego stin thesis sou tha alaza olous tous  ench1time apo 1 ora ke kati parapano se kati level  :)

  3. u should search the core files to understand how things work in my opinion search all the pcinstance thingy and all the imports it calls to get a basic idea then start litle by litle to chose ur path let say what u wont to be specialized at ? in AI's ?

    instances ? events ? or whatever search the core files of whatever u wana do but u must know good java to do that cuz some things in core are nuff  hard to understand cuz some also use some complex logic  and btw u could also  search the datapack for lots of examples but if u wana make some thing made from brett16 u must learn the logic that l2j uses and that is not the easyest but if u manage to doit then ur on a good path :).

     

     

     

    P.S sorry for my english am not da best

  4. lipon exo kani modifie ena script na ke exo adari kapies lines lipon thelo to skill na to kani me rnd 100 < 20 ke hp 1/7 ke thelo mia voithia epidi ine episis ena minion spawn script ke otan kani to skill lei afto pou vlepete kato ala nmz oti tha to kani mia fora to skill ego thelo na to kani gia pada ala taftoxrona to skill na min bori to mob na to kani apo mono dld na ine completely ai handled  lipon kamia idea ?
    
    [ c o d e ]   # By Evil33t
    import sys
    from net.sf.l2j.gameserver.ai          import CtrlIntention
    from net.sf.l2j.gameserver.datatables  import SkillTable
    from net.sf.l2j.gameserver.model       import L2Skill
    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
    from net.sf.l2j.gameserver.network.serverpackets  import CreatureSay
    from net.sf.l2j.util                   import Rnd
    
    DARION = 25603
    GUARD1 = 22405
    GUARD2 = 22343
    GUARD3 = 22342
    
    class PyObject:
    pass
    
    class Quest (JQuest) :
    def __init__(self,id,name,descr):
    	JQuest.__init__(self,id,name,descr)
    	self.npcobject = {}
    
    def SpawnMobs(self,npc):
    	newNpc = self.addSpawn(GUARD1,21381,243815,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD1,22291,243500,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD1,22480,244021,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD1,21822,244464,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD1,21745,243406,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD2,21402,244104,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD2,21519,243573,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD2,22456,243728,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD3,22362,244281,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD3,22024,243381,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD3,21568,244344,11086,0,False,0,False, npc.getInstanceId())
    	newNpc = self.addSpawn(GUARD3,22117,244446,11086,0,False,0,False, npc.getInstanceId())
    
    def onAttack(self, npc, player, damage, isPet, skill):
    	npcId = npc.getNpcId()
    	if npcId == DARION:
    		try:
    			test = self.npcobject[npc.getObjectId()]
    		except:
    			self.npcobject[npc.getObjectId()] = PyObject()
    			self.npcobject[npc.getObjectId()].started = False
    			self.npcobject[npc.getObjectId()].killed = False
    			self.npcobject[npc.getObjectId()].hp_to_spawn = {}
    			self.npcobject[npc.getObjectId()].hp_to_spawn[90]=False
    			self.npcobject[npc.getObjectId()].hp_to_spawn[70]=False
    			self.npcobject[npc.getObjectId()].hp_to_spawn[50]=False
    			self.npcobject[npc.getObjectId()].hp_to_spawn[30]=False
    			self.npcobject[npc.getObjectId()].hp_to_spawn[10]=False
    			self.npc.addSkill[skillTable.getInstance()].getInfo(5503, 1))
    		maxHp = npc.getMaxHp()
    		nowHp = npc.getStatus().getCurrentHp()
    		rnd  = Rnd.get(100)
    		if (nowHp < maxHp*0.9) and not self.npcobject[npc.getObjectId()].hp_to_spawn[90]:
    			self.npcobject[npc.getObjectId()].hp_to_spawn[90] = True
    			self.SpawnMobs(npc)
    		if (nowHp < maxHp*0.7) and not self.npcobject[npc.getObjectId()].hp_to_spawn[70]:
    			self.npcobject[npc.getObjectId()].hp_to_spawn[70] = True
    			self.SpawnMobs(npc)
    		if (nowHp < maxHp*0.5) and not self.npcobject[npc.getObjectId()].hp_to_spawn[50]:
    			self.npcobject[npc.getObjectId()].hp_to_spawn[50] = True
    			self.SpawnMobs(npc)
    		if (nowHp < maxHp*0.3) and not self.npcobject[npc.getObjectId()].hp_to_spawn[30]:
    			self.npcobject[npc.getObjectId()].hp_to_spawn[30] = True
    			self.SpawnMobs(npc)
    		if (nowHp < maxHp*0.1) and not self.npcobject[npc.getObjectId()].hp_to_spawn[10]:
    			self.npcobject[npc.getObjectId()].hp_to_spawn[10] = True
    			self.SpawnMobs(npc)
    		if (rnd < 23 ( nowHp < maxHp*0.2()
    		    npc.doCast(SkillTable.getInstance().getInfo(5503, 1))
                   npc.broadcastPacket(CreatureSay(npc.getObjectId(),0,npc.getName(),"All Shall Fall!!!"))
    
    def onKill(self,npc,player,isPet):
    	npcId = npc.getNpcId()
    	if npcId == DARION:
    		self.addSpawn(32374,21939,243917,11088,0,False,0,False, player.getInstanceId())
    		self.npcobject[npc.getObjectId()].killed = True
    	return 
    
    QUEST = Quest(-1,"Darion","ai")
    
    QUEST.addKillId(DARION)
    
    QUEST.addAttackId(DARION)
    print "[Darion Manager	]	[Loaded]"

  5. well i will explain here how do we do a custom transformation

     

    i explain what we need first off all

     

    a small knowledge of xml understand how skills work how to  create ur own buffs/debuffs/magik/atacking skills and other types

     

    also a knowledge to edit client

     

    also how to edit java not creating it we dont need uncompiled pack to do this we can do it on compiled allready

     

    AND!!! download notepad++ it will make ur work way much easyer trust me  Smiley

     

     

    ON TO  THE GUIDE!! create copy a xml from gameserver/data/stats/skills file delete all the skills inside but keep the <list>and </list> and keep the encoding at the start id the xml rename it to whatever number we wont i chose 75100-75199 copy an existing transform skill

     

    heres the anakim trans

     

    <skill id="664" levels="1" name="Transform Anakim">

     <set name="mpConsume" val="31"/>

     <set name="target" val="TARGET_SELF"/>      

     <set name="skillType" val="BUFF"/>

     <set name="isMagic" val="true"/>

     <set name="operateType" val="OP_ACTIVE"/>

     <set name="hitTime" val="2500"/>

     <set name="reuseDelay" val="14400000"/>

     <set name="staticReuse" val="true"/>

     <set name="staticHitTime" val="true"/>

     <set name="transformId" val="306"/>

     <cond msgId="1509">

       <player olympiad="false"/>

     </cond>

     <for>

       <effect name="Transformation" time="1800" val="0"/> <!-- Transformation lasts 30 minutes -->

     </for>

    </skill>

     

    the key part here is the transform id the transform id u find it in gameserver\data\scripts\transformations there u will see the transform id (so then how do we know thats anakim ?) now in system file theres a file named transformdata.dat open it and u will see go to id 306 and u will 2 lines like that

    306   0   13100   0   LineageEffect.s_u833_transform   LineageEffect.s_u833_transform   0   0   0   0

    306   1   13100   0   LineageEffect.s_u833_transform   LineageEffect.s_u833_transform   0   0   0   0

    where 13100 is the anakim one another anakim sql so copy this lines change the transform id and the npc id to what u wont  wen ur done with it encode it again with file editor

     

    so next step u copy the transform skill of anakim and u change the name to transform antharas etc and change the transform id and change also the skill number and rename it to 75100 or 75176 whatever u wont and put level 1  

     

    NOW on to the java file copy a transform java from the path i showed to u before

     

    import net.sf.l2j.gameserver.instancemanager.TransformationManager;

    import net.sf.l2j.gameserver.model.L2Transformation;

     

    public class Frog extends L2Transformation

    {

      public Frog()

      {

         // id, colRadius, colHeight

         super(111, -1, 20, 9);

      }

     

      public void onTransform()

      {

         if (getPlayer().getTransformationId() != 111 || getPlayer().isCursedWeaponEquipped())

            return;

     

         transformedSkills();

      }

     

      public void transformedSkills()

      {

         // Decrease Bow/Crossbow Attack Speed

         getPlayer().addSkill(SkillTable.getInstance().getInfo(5491, 1), false);

         // Transfrom Dispel

         getPlayer().addSkill(SkillTable.getInstance().getInfo(619, 1), false);

     

         getPlayer().setTransformAllowedSkills(new int[]{5491,619});

      }

     

      public void onUntransform()

      {

         removeSkills();

      }

     

      public void removeSkills()

      {

         // Decrease Bow/Crossbow Attack Speed

         getPlayer().removeSkill(SkillTable.getInstance().getInfo(5491, 1), false);

         // Transfrom Dispel

         getPlayer().removeSkill(SkillTable.getInstance().getInfo(619, 1), false);

     

         getPlayer().setTransformAllowedSkills(new int[]{});

      }

     

      public static void main(String[] args)

      {

         TransformationManager.getInstance().registerTransformation(new Frog());

      }

    }

    Where frog u will put Antharas in all 3 places and down where it says register new trans that have transform name where 20 and 9 is width and height pu the ur desired width and heidth of ur mob

    where -1 leave it as it is and rename the file to ur transform name antharas in this case now wen ur done with the java file save it to the path where all transformations are then edit the scripts.cfg in gameserver/data/scripts.cfg

     

    ade this line transformations/Zombie.java in our case we will put transformations/Antharas.java where in the group where all transformations are now close it and save it

     

    now we edit system the skilgrp.dat put this line with ur transform skill id

    75100   1   7   1   44   4294967295   1   2.50000000   1   A      icon.skilltransform1      0   0   0   0   -1   -1 where 75100 put  ur transform skill id

     

    and skillsoundgrp.dat

     

    75100   1            0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000            0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000            0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000   chrsound.m_hfighter_call   chrsound.f_hfighter_call   chrsound.m_darkelf_call   chrsound.f_darkelf_call   chrsound.m_dwarf_type_c   chrsound.f_dwarf_type_c   chrsound.m_elf_call   chrsound.f_elf_call   chrsound.m_hmagician_call   chrsound.f_hmagician_call   chrsound.m_orc_fighter_type_c   chrsound.f_orc_fighter_type_c   chrsound.m_orc_magician_type_c   chrsound.f_orc_magician_type_c   chrsound.MKamael_TypeC_S   chrsound.FKamael_TypeC_S      chrsound.m_hfighter_throw   chrsound.f_hfighter_throw   chrsound.m_darkelf_throw   chrsound.f_darkelf_throw   chrsound.m_dwarf_throw   chrsound.f_dwarf_throw   chrsound.m_elf_throw   chrsound.f_elf_throw   chrsound.m_hmagician_throw   chrsound.f_hmagician_throw   chrsound.m_orc_fighter_throw   chrsound.f_orc_fighter_throw   chrsound.m_orc_magician_throw   chrsound.f_orc_magician_throw   chrsound.MKamael_throw   chrsound.FKamael_throw      250.00000000   50.00000000 where 75100 put  ur transform skill id

     

    and skillname.dat

    75100   1   a,Transform Anakim\0   a,Transform to Anakim.\0   a,none\0   a,none\0

    where 75100 put  ur transform skill id and where Transform Anakim put ur transformation name

     

    now go ingame press shift click on urself skills ade skills down in the window put ur skill id and level and press the skill and ZOOMG  theres ur trans XD if u need any help lemme know in this topic dont pm me cuz others must learn also if they have some mistake in the code hope u enjoyed my guide have a nice transcrazyness XD!!!

     

    AND!!! Credits gows to me sectis XD thanks for reading and reminding me of that hehe

×
×
  • 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