Jump to content

xXObanXx

Members
  • Posts

    416
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by xXObanXx

  1. so... i've made some changes...

    		if (activeChar.isInBoat())
    		{
    			if (Config.COORD_SYNCHRONIZE == 2)
    			{
    				dx = _x - activeChar.getInVehiclePosition().getX();
    				dy = _y - activeChar.getInVehiclePosition().getY();
    -				// dz = _z - activeChar.getInVehiclePosition().getZ();
    +				dz = _z - activeChar.getInVehiclePosition().getZ();
    -				diffSq = ((dx * dx) + (dy * dy));
    +				diffSq = ((dx * dx) + (dy * dy) + (dz * dz));
    				if (diffSq > 250000)
    				{
    					sendPacket(new GetOnVehicle(activeChar.getObjectId(), _data, activeChar.getInVehiclePosition()));
    				}
    			}
    			return;
    		}
    

    and i've added this option:

    			if (Config.COORD_SYNCHRONIZE == 3)
    			{
    				activeChar.setXYZ(_x, _y, _z);
    				return;
    			}
    

    i saw that on Config.COORD_SYNCHRONIZE == -1 it's saying only the Z coord will synch with the server... by using the code activeChar.setXYZ(realX, realY, _z);

    so if this code is synchronizing only Z... what will happened if i will make it like the code above?!

     

    Edit: i tried and something else..

    -				if (((Math.abs(dz) > 200) && (Math.abs(dz) < 1500) && (Math.abs(_z - activeChar.getClientZ()) < 800))
    +				if (((Math.abs(dx) > 200) && (Math.abs(dx) < 1500) && (Math.abs(_x - activeChar.getClientX()) < 800)) && ((Math.abs(dy) > 200) && (Math.abs(dy) < 1500) && (Math.abs(_y - activeChar.getClientY()) < 800)) && ((Math.abs(dz) > 200) && (Math.abs(dz) < 1500) && (Math.abs(_z - activeChar.getClientZ()) < 800)))
    				{
    -					activeChar.setXYZ(realX, realY, _z);
    +					activeChar.setXYZ(_x, _y, _z);
    +					realX = _x;
    +					realY = _y;
    					realZ = _z;
    				}
    

    i tested it and i can said that the cords have a better synch than before but not actually the same at all times..!

    so these are the coords

     

    client pos: 83245 148623 -3405 head 32916
    server pos: 83241 148623 -3408 head 32907
     
    please can you explain me what exactly is the "heading"? cause in some cases is the same from server with client and in other cases is far different than client..!
     
    edit 2: i think is far better the last way i do..
    before doing this i was have dual box with admin and a normal char and the char was looking to different way on both clients..!
    and now with this the players have fully synchronization on each client!!
  2. ur talking about the validatePosition packet...

     

    First of all its sooooo hard coded, you wont ever make a worty modification in it...

    Secondly the only solution to this is geodata, but imo, the serverXYZ != clientXYZ or serverIntention != clientIntention isnt even close to a problem

    can you explain it better? :P

    i have geodata and pathnodes and the Geodata config is setted to 2

  3. U should use the command "admin_rai_load" before using the autoevent command, or add loadData() at the start of this method "public static void autoEvent()"

    like that?

    	public static void autoEvent()
    	{
    		if (startAutoJoin())
    		{
    			loadData();
    			if (_joinTime > 0)
    			{
    				waiter(_joinTime * 60 * 1000); // minutes for join event
    				_log.warning("Place 1 OK!");
    			}
    .....
    
  4. Hello guys!

     

    so i've put the Raid event that have on l2jserver forum... Click

    so i was looking the code... and i saw that this event's codes etc. are c/p from the CTF Event (by FFs)

    all are ok on eclipse...! the problem is..! the code is not reading from the sql table (like CTF event)

    what i mean? when i'm pressing  //rai_autoevent a message appears that is saying the join time and event time are invalid (maybe it's reading the _joinTime = 0;)

    don't really know..!

    so can you help me to make the event to working well?! :)

     

    my Raid.java is this (Latest unstable High Five L2J Pack)

  5. ok guys i'm on the way to test these things...

    i will update the post in some minutes!

     

    edit: the "hide" option doesn't work... i think cause check for hide players but doesn't doing something to make him visible..!

    about the summon... i can't summon pets like Fernir etc. but i can summon servitors like Mew the Cat (Archmage) or Reanimated Man (Soultaker)

  6. Ye, I typed that too fast... that thing about storing pet buffs after unsummon shouldn't exist coz then, even if you remove the buff before unsumonning it, they could unsummon the pet by theirselves and then summon and be inside the event with buffs. I think it was a config to turn it off/on, should be off xd

     

    no :s

    ok.. i'll test it tomorrow!!

  7. So if the "bug" that I pointed still exists, why is it useless? For example: full buff server (but the event just gives you 4-5 buffs), you got your full buffs in your pet and you unsummon it, you register to the event, you get teleported, then you re-summon your pet and bam! full buffed  :rage:

    the best way for a "stable" event is to fix all the possible bugs like that... to exclude every way from the player to get buffs outside from the event..!

  8.  

    About hide, I want original code and where it is used. What you did is wrong. Before the point of that code was to retrieve if player was under a HIDE effect, now you messed.

    Original line:

    L2Effect eInvisible = _player.getFirstEffect(L2EffectType.HIDE);

    replaced with:

    AbnormalType eInvisible = AbnormalType.HIDE;
    

    the whole code is:

                    // If player is invisible, make them visible
    		if (_player.getAppearance().getInvisible())
    		{
    			@SuppressWarnings("unused")
    			AbnormalType eInvisible = AbnormalType.HIDE;
    		}
    
  9. Replace the whole loop for :

     

    summon.stopAllEffects();

    Finale if you want to access getEffectList(), and notably if you know it's a buff, debuff, etc, you should access it via the internal map. For instance, retrieveing all buff effect types should be called like that :

    summon.getEffectList().getBuffs().values()

    An important note, it returns BuffInfo type.

    correct me if i'm wrong... is it ok?

     

    from this:

    if (player.getSummon() != null)
    {
    L2Summon summon = player.getSummon();
    for (BuffInfo e : summon.getEffectList().getEffects())
    {
    if (e != null)
    {
    e.stopAllEffects(false);
    }
    }
    
    if (summon instanceof L2PetInstance)
    {
    summon.unSummon(player);
    }
    } 

    to this:

    if (player.getSummon() != null)
    {
    L2Summon summon = player.getSummon();
    summon.stopAllEffects();
    summon.getEffectList().getBuffs().values();
    
    if (summon instanceof L2PetInstance)
    {
    summon.unSummon(player);
    }
    }
    
  10. Hello... so i updated my pack (L2j) with the latest revision (skill and effect system complete rework)

    and i have these problems on CTF.java:

     

    for (AbstractEffect e : summon.getAllEffects())
    {
    if (e != null)
    {
    e.exit();
    }
    }
     
    also i've solved an error by my own but didn't test it... is it ok?

    AbstractEffect eInvisible = _player.getFirstEffect(L2EffectType.HIDE);
     
    to
     
    AbnormalType eInvisible = AbnormalType.HIDE;

    i will appreciate your help! :)

  11. just replace

    sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_MOUNT_A_STEED_WHILE_HOLDING_A_FLAG));
    

    with this

    activeChar.sendMessage("You cannot mount a steed while holding a flag.");

    put this on MasterHandler

      (Config.L2JMOD_ALLOW_WEDDING ? Wedding.class : null),
    + (Config.CTF_ALLOW_VOICE_COMMAND ? CTFCmd.class : null),
    

    about

    _player.broadcastPacket(new SocialAction(_player.getObjectId(), 16)); // amazing glow
    

    try to resolve them with the quick fix option

×
×
  • Create New...