Jump to content
  • 0

Broadcastpacket Is Worst Than Tryskell


Question

Posted (edited)

warning: CLICKBAIT title

 

Ok here's whats going on. player.broadcastUserInfo(); basically spreads  UserInfo(), charInfo() and extraInfo() onto knownlist players. 

So let's say we change title and then name color, we do broadcastTitle(); and broadcastUserInfo(); 

 

All players around get the new info BUT if a new player come in town of giran or teleport next to him, he see the old title + old name color cause simply he didn't receive

the packet (cause he wasnt in the knownlist region). 

 

Basically using player.decay(); player.spawn(); works fine after all but i cant really use this for 100 chars every 1 second example..

 

Is this knownlist problem? I guess no. But how to update properlya player without respawn him or without do a World.getInstance().getAllPlayers() -> sendPacket to all individual. ?

 

Tryskell ps. thanks for previous one.

Edited by Afou To Patisa

Recommended Posts

  • 0
Posted

Modify PcAppearance like from example in prev. post and change all plases where setting Name, Title, etc to this template except neccessary places (temporary use). Because current model for changing name and title uses PcAppearance and after by task all data stored to DB from this template (not direct from PcInstance). This is the big shit!

 

Don't forget change store method for using direct name and title.

ok this i understood but this doesnt explain territory war icon right? .. 

  • 0
Posted

PcAppearance was created for temporary user info like: title string, title color, name string, name color and other properties which can be changed for events and etc w/o saving. But something goes wrong and this feature was forgotten and now uses wrong.

 

Your mission recover the truth.

  • 0
Posted

PcAppearance was created for temporary user info like: title string, title color, name string, name color and other properties which can be changed for events and etc w/o saving. But something goes wrong and this feature was forgotten and now uses wrong.

 

Your mission recover the truth.

So you want to tell me that even when a player cast a spell (and suddedly you teleport onto giran), the fact that u see him just sit instead of casting it was meant to be handled by PcAppearance? ..

  • 0
Posted

Yes. You can use this template every where and if you changed player name (as example for TvT event with profession's names as name) so you can see him in all actions. Basically you need change player.getname() to player.getAppearance().getVisibleName() everywhere for it.

  • 0
Posted

Yes. You can use this template every where and if you changed player name (as example for TvT event with profession's names as name) so you can see him in all actions. Basically you need change player.getname() to player.getAppearance().getVisibleName() everywhere for it.

So how /unstuck should be then? Example a player doing unstuck, i teleport in giran, see him just sitting there then disappear.. how should i do this? Give me an example of which line i should adjust so i can do the rest.

  • 0
Posted

all the answers are wrong. the problem is knowlist. fact.

 

the knowlist of the player who got teleported didn't receive the update, debug is your only friend

  • 0
Posted (edited)

all the answers are wrong. the problem is knowlist. fact.

 

the knowlist of the player who got teleported didn't receive the update, debug is your only friend

Could you englight me a bit more? I support ur comment more than other's since im sure is knownlist and no specific values like getTitle e.t.c 

but i can't really know where exactly it happens.. in findObjects everything seem to be fine.  

I would really appreciate if you give me a clue of what to check to make the unit that cast skill or unstuck to be seen by someone who just logged in or teleport in.

 

I did check to ensure that object is contained in knownList and yeap it is. But what you mean exactly the knownList of the player who teleported didn't receive the update? Which update is this and where it happens? Ty

Edited by Afou To Patisa
  • 0
Posted

 

debug is your only friend

 

debug in l2j sucks.. you know that that what i asked to give me a clue from ur experience on where i should look (file or line).  The only export debug does is to say

objects added in knownlist  and removed.. nothing else. No usefull info.

  • 0
Posted (edited)

As you can see debug doesnt really provide any other info rather than target and packet broadcast.. 

 

IX88ppe.png

 

I really need a clue since im not that experience in finding a specific part of code in such a huge program. 

It must be knowlist but idk which part is for update users in knownlist. Example when you enter in someone's knownlist to inform you with his actions

if he is casting or teleporting e.t.c  other functions such as Death-Karma are fine but the 1  problem is casting (including unstuck animation). 

 

Title is not big deal but casting i must at least find the exact line. 

Edited by Afou To Patisa
  • 0
Posted (edited)

Ok so you have no clue what debug is

You can provide some info at least..  could you? I don't really people point out what i know and what i don't.. i just ask for a conclusion in this silly problem

in which i agree with xdem is knownList by 80% even tho the only that is not update properly is casting upon teleport or login or far come using gm speed 3

Edited by Afou To Patisa
  • 0
Posted (edited)

Run server on eclipse, not a "compiled version" and use the debugger to see the knownlist content to make sure the player is absent, then check why the fuck it's not in it

Edited by Sdw
  • 0
Posted

Run server on eclipse, not a "compiled version" and use the debugger to see the knownlist content to make sure the player is absent, then check why the fuck it's not in it

Anyways.. thanks ill prefer to pay someone who know it to fix it shortly.. im really tired 2.5 days now. I appreciate ur comment but it doesnt debug it give  "variable reference is missing" blabla.. 

If anyone want provide some help i would appreciate. 

 

Thanks for answers.

  • 0
Posted (edited)

all the answers are wrong. the problem is knowlist. fact.

 

the knowlist of the player who got teleported didn't receive the update, debug is your only friend

 

 

It's probably a knownlist problem, since L2J got a ghosts issue (which is nothing more than people didn't receive the DeleteObject packet when he left the region).

 

About the solution, you can test aCis (rev 362+) or L2JUnity knownlist refactor for a complete rework (will fix any ghost issue + better performance).

 

About packet send, you got sendInfo and regarding moving/attack/cast stuff, it's describeStateToPlayer.

Edited by Tryskell

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



  • Posts

    • Thank you everyone — we're doing our best to deliver the highest quality experience!   ⏳ Less than 2 days left until the L2Elixir Launch! Our team is working nonstop, polishing every little detail to ensure a smooth and exciting opening. A huge thank you to everyone who participated in the Open Beta — your support and feedback have been invaluable. Get ready… the adventure begins soon! ⚔️✨   Launch: November 28 & 21:00 UTC +2   Website: https://l2elixir.org/ Discord: https://discord.gg/5ydPHvhbxs  
    • Do you sell interlude interfaces?
    • in conclusion when somebody who has a project for 10+ years still on development writes an e-say to try until you succeed and then advertises his project, one of the reasons is he needs money, so l2j has once more become pure expensive hobby, you wont make money out of it.   You can still use L2jFrozen and get better results for this, i know some people that done it    keep in mind that C in aCis stands for Crappy, and after all these years its not a cool wordplay anymore, its a fact, prove me wrong.
    • First, don't really follow the "main voice", moreover if you consider it an hobby. Simply do what you want, you got only one life so use it as you want. If you make it an hobby, it's exactly like piano, or velo - only practice makes you better.   Secondly, how do you learn things ? It's actually a really important question, since some can simply be scholar, read books (theory) then practice ; and some simply can't read books. I'm the second type, I hated school, I find it boring - my knowledge in Java comes from try-and-fail. You improve your coding style every year or so, I can myself rewrite my own code (which I already considered top-notched) after a while. You always learn something new - even if Java barely evolves. L2J is a fun way to learn programming, it's a giant sandbox where you can edit anything, and I believe it should be taken as it.   My own way of learning was as follow : Add existing customs, no matter what they are : the point is to know main classes used by L2J / customs. L2J is barely Java knowledge ; the true knowledge is to know WHAT to search in WHICH location (what I call, organization). You have to understand than EVERYTHING you think already exists, in a form on another, in the source code. A custom is only the association of the different mechanisms you found "here and there", glued together in a proper goal. Once you know main classes to edit, and the customs you added are compiling fine, the main point is to know WHAT exactly you DID. Try to understand WHY and WHERE you actually copied the code. Third point would be to MANIPULATE the customs you added in order to fit your wish. First edit little values, then logic conditions ; eventually add a new Config, or a new functionality to the custom. Fourth point would be to begin to craft your own ideas. Once again, EVERYTHING already exists, in a form or another. You want a cycled event ? You got Seven Signs main task as exemple. Npc ? Search any type of Npc and figure out what it does. Fifth point would be to understand Java - mostly containers (WHAT and WHERE to use them), variables types and main Java mechanisms (inheritance, static modifier, etc). You should also begin to cut your code into maintainable classes or methods. Java can actually run without optimization, but bigger your ideas, more optimized and well-thought it should be. It's direct saved time in the future, and you would thank yourself doing so. Main tips : ALWAYS use any type of versioning system - GIT or SVN. It allows to save your work, step by step and eventually revert back anytime you want if you terribly messed up. L2J is 80% organization knowledge, and 20% Java knowledge. Basically, if you know WHAT and WHERE to search, if you aren't dumb, it's easy to replicate and re-use things. Cherry on top is to use a already good coded pack to avoid copy-paste crap and get bad habits. Avoid any type of russian or brazilian packs, for exemple - their best ability is to leak someone's else code. Obviously you need some default sense of logic, but Java and programming in general help you to improve it.   Finally, most of your questions could be solved joining related Discord (at least for aCis, I can't speak for others) - from the moment your question was correctly asked (and you seemed to search for the answer). My community (and myself) welcomes newbies, but got some issues with noobies.   The simpliest is to try, fail and repeat until you succeed - it sounds stupid, but that's basically how life works.   PS : about Java ressources, before ChatGPT, it was mostly about stackoverflow website, and site like Baeldung's one. With ChatGPT and alike, you generally double-cross AI output to avoid fucked up answers. Also, care about AI, they are often hallucinating really hard, even today. They can give you complete wrong answer, you tell them they are wrong, and they say "indeed, I suck, sorry - here's a new fucked up answer". You shouldn't 100% rely over AI answer, even if that can give sometimes legit answers, full code or just skeletons of ideas.   PPS : I don't think there are reliable ressources regarding L2J itself, also most of the proposed code decays pretty fast if the source code is actually maintained (at least for aCis). Still, old coded customs for old aCis sources are actually a good beginner challenge to apply on latest source.
  • Topics

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