Jump to content
  • 0

Bad RequestBypassToServer: null


Question

15 answers to this question

Recommended Posts

  • 0
Posted (edited)
6 hours ago, L2shaken said:

Hi, I'm having a problem with the phoenix event when I click on "info" in npc, it does not open the html with the information of the event and this error in GS, does anyone know how to fix it?

 

https://imgur.com/a/DTLu3

 

https://imgur.com/a/5jumZ

 

This is not enough information, noone can help you.

Add more information.

 

Edited by Not Alone
  • 0
Posted

the button Info have a bypass, this bypass is wrong. check in requestbypasstoserver the specific bypass if it handles properly the tokens you sent

  • 0
Posted

Search the error message on sources, add a e.printStackTrace() and repost once you got more details. As said higher, a bypass encountered a null value and couldn't move on since it tried to make an action on an non-existing object.

  • 0
Posted

Check you RequestBypassToServer if have .

if dont have add.

				
				String[] str = _command.substring(6).trim().split(" ", 2);
				if (str.length == 1)
					activeChar.processQuestEvent(str[0], "");
				else
					activeChar.processQuestEvent(str[0], str[1]);
			}
+			else if (_command.startsWith("eventvote")) 
+				EventManager.getInstance().addVote(activeChar, Integer.parseInt(_command.substring(10))); 
+		 	else if (_command.startsWith("eventstats")) 
+		 	{
+		 		try
+		 		{
+		 	        EventStats.getInstance().showHtml(Integer.parseInt(_command.substring(11)),activeChar);
+		 		}
+		 		catch (Exception e)
+		 		{
+		 			activeChar.sendMessage("Currently there are no statistics to show.");
+		 		}
+		 	}
+		 	else if (_command.startsWith("eventstats_show")) 
+	 			EventStats.getInstance().showPlayerStats(Integer.parseInt(_command.substring(16)),activeChar); 
+		 	else if (_command.equals("eventbuffershow")) 
+		 		EventBuffer.getInstance().showHtml(activeChar); 
+		 	else if (_command.startsWith("eventbuffer")) 
+		 	{ 
+				EventBuffer.getInstance().changeList(activeChar, Integer.parseInt(_command.substring(12,_command.length()-2)), (Integer.parseInt(_command.substring(_command.length()-1)) == 0 ? false : true)); 
+				EventBuffer.getInstance().showHtml(activeChar); 
+		 	}
+		 	else if (_command.startsWith("eventinfo "))
+			{
+				int eventId = Integer.valueOf(_command.substring(10));
+				
+				NpcHtmlMessage html = new NpcHtmlMessage(0);
+				html.setFile("data/html/eventinfo/"+eventId+".htm");
+				activeChar.sendPacket(html);
+				activeChar.sendPacket(ActionFailed.STATIC_PACKET);
+			}
			else if (_command.startsWith("_match"))
			{

Thanks.

  • 0
Posted
7 hours ago, Tryskell said:

Search the error message on sources, add a e.printStackTrace() and repost once you got more details. As said higher, a bypass encountered a null value and couldn't move on since it tried to make an action on an non-existing object.


I've tried everything, apparently everything is correct, I do not understand this error.

  • 0
Posted
10 hours ago, Reborn12 said:

Missing requestbypasstoserver.java part if im not wrong


I added everything.

 

   Index: aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java


            else if (_command.startsWith("eventvote ")) 
			{
				EventManager.getInstance().addVote(activeChar, Integer.parseInt(_command.substring(10)));
			}
			else if (_command.startsWith("eventstats "))
			{
				try
				{
					EventStats.getInstance().showHtml(Integer.parseInt(_command.substring(11)),activeChar);
				}
				catch (Exception e)
				{
					activeChar.sendMessage("Currently there are no statistics to show.");
				}
			}
			else if (_command.startsWith("eventstats_show "))
			{
				EventStats.getInstance().showPlayerStats(Integer.parseInt(_command.substring(16)),activeChar);
			}
			else if (_command.equals("eventbuffershow"))
			{
				EventBuffer.getInstance().showHtml(activeChar);
			}
			else if (_command.startsWith("eventbuffer "))
			{
				EventBuffer.getInstance().changeList(activeChar, Integer.parseInt(_command.substring(12,_command.length()-2)), (Integer.parseInt(_command.substring(_command.length()-1)) == 0 ? false : true)); 
				EventBuffer.getInstance().showHtml(activeChar);
			}
			else if (_command.startsWith("eventinfo "))
		    {
				int eventId = Integer.valueOf(_command.substring(10));
		        
		        NpcHtmlMessage html = new NpcHtmlMessage(0);
		        html.setFile("data/html-" + activeChar.getPlayerLanguage() + "/mods/eventinfo/" + eventId + ".htm");
		        html.replace("%amount%", String.valueOf(EventManager.getInstance().getInt(eventId, "rewardAmmount")));
		        html.replace("%item%", ItemTable.getInstance().createDummyItem(EventManager.getInstance().getInt(eventId, "rewardId")).getItemName());
		        html.replace("%minlvl%", String.valueOf(EventManager.getInstance().getInt(eventId, "minLvl")));
		        html.replace("%maxlvl%", String.valueOf(EventManager.getInstance().getInt(eventId, "maxLvl")));
		        html.replace("%time%", String.valueOf(EventManager.getInstance().getInt(eventId, "matchTime") / 60));
		        html.replace("%players%", String.valueOf(EventManager.getInstance().getInt(eventId, "minPlayers")));
		        html.replace("%url%", EventManager.getInstance().getString("siteUrl"));
		        html.replace("%buffs%", EventManager.getInstance().getBoolean(eventId, "removeBuffs") ? "Self" : "Full");
		        activeChar.sendPacket(html);
		        activeChar.sendPacket(ActionFailed.STATIC_PACKET);
		    }

 

  Index: aCis_gameserver/java/net/sf/l2j/gameserver/events/EventManager.java

 

Responsible for displaying html from NPC:

public void showFirstHtml(L2PcInstance player, int obj)
	{
		NpcHtmlMessage html = new NpcHtmlMessage(obj);
		StringBuilder sb = new StringBuilder();
		int count = 0;
		
		sb.append("<html><body><center><table width=270><tr><td width=145>Event Engine</td><td width=75>" + (getBoolean("eventBufferEnabled") ? "<a action=\"bypass -h eventbuffershow\">Buffer</a>" : "") + "</td><td width=50><a action=\"bypass -h eventstats 1\">Statistics</a></td></tr></table></center><br>");
		
		if (getStatus() == State.VOTING)
		{
			sb.append("<center><table width=270 bgcolor=5A5A5A><tr><td width=90>Events</td><td width=140><center>Time left: " + cdtask.getTime() + "</center></td><td width=40><center>Votes</center></td></tr></table></center><br>");
			
			for (Map.Entry<Integer, Event> event : events.entrySet())
			{
				count++;
				sb.append("<center><table width=270 " + (count % 2 == 1 ? "" : "bgcolor=5A5A5A") + "><tr><td width=180>" + event.getValue().getString("eventName") + "</td><td width=30><a action=\"bypass -h eventinfo " + event.getKey() + "\">Info</a></td><td width=30><center>" + getVoteCount(event.getKey()) + "</td></tr></table></center>");
			}
			
			sb.append("</body></html>");
			html.setHtml(sb.toString());
			player.sendPacket(html);
		}
		else if (getStatus() == State.REGISTERING)
		{
			sb.append("<center><table width=270 bgcolor=5A5A5A><tr><td width=70>");
			
			if (players.contains(player))
				sb.append("<a action=\"bypass -h npc_" + obj + "_unreg\">Unregister</a>");
			else
				sb.append("<a action=\"bypass -h npc_" + obj + "_reg\">Register</a>");
			
			sb.append("</td><td width=130><center><a action=\"bypass -h eventinfo " + getCurrentEvent().getInt("ids") + "\">" + getCurrentEvent().getString("eventName") + "</a></td><td width=70>Time: " + cdtask.getTime() + "</td></tr></table><br>");
			
			for (L2PcInstance p : EventManager.getInstance().players)
			{
				count++;
				sb.append("<center><table width=270 " + (count % 2 == 1 ? "" : "bgcolor=5A5A5A") + "><tr><td width=120>" + p.getName() + "</td><td width=40>lvl " + p.getLevel() + "</td><td width=110>" + p.getTemplate().getClassName() + "</td></tr></table>");
			}
			
			sb.append("</body></html>");
			html.setHtml(sb.toString());
			player.sendPacket(html);
		}
		else if (getStatus() == State.RUNNING)
			getCurrentEvent().showHtml(player, obj);
	}
	

 

  • 0
Posted (edited)
14 minutes ago, tazerman2 said:

 

 

public void showFirstHtml(L2PcInstance player, int obj)

 

Show me that part of your code in EventManager.java for me to compare. is possible ?

Edited by L2shaken
  • 0
Posted (edited)

your showfirsthtml is differet from my and i can't give you my code because i have change html's and i sell my phoenix.

try add from this maybe you find problem.

http://www.mediafire.com/file/ww4b3u0efs58t8q/Phoenix+Event+Engine+aCis.rar

Edited by tazerman2
  • 0
Posted
17 minutes ago, tazerman2 said:

 

 

html.replace("%item%", ItemTable.getInstance().createDummyItem(EventManager.getInstance().getInt(eventId, "rewardId")).getItemName());

 


I found the error, it is in this line, I isolated it and it worked normally.

  • 0
Posted (edited)

Why would you create a dummy item for ? Simply use ItemTable to retrieve item name, based on the itemId.

 

And put a damn null check if the item doesn't exist (case you write an invalid itemId, or don't write it at all).

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

    • Hello everyone, I am selling the complete AdvExt64 FULL Extender for L2OFF PTS Interlude servers, including the complete source code.   Note: This is NOT the Vanganth extender. This is the complete, fully featured Interlude advext64 extender its full source code. Here is a breakdown of the key features included in this extender:   💻 Source Code Included   Full Extender Source: Modify, compile, and add your own custom features with zero limitations   ⚔️[NEW] Boss Spawns & Global Announcements   Boss Management (BossSpawn.txt): Full control over the exact spawn coordinates and respawn times for any Raid or Epic Boss. Auto-Announce: The server will automatically send a global announcement whenever a normal Raid Boss or Epic Boss spawns (supports custom chat colors). 🏪 Exclusive Systems (OtherSettings) [SearchStore] Costume system; Skins Clan Crest on NPCs:   🌟 Core Systems & Quality of Life AIO (All-In-One) System Premium & VIP System Offline Trade & Market Custom NPC Buffer Extended Teleports Buff Store System: Buff Item Fast Load L2Npc Multi-language System   ⚔️ [NEW] Event Engine (Fully Automated) Good vs Evil (GVE) & All vs All (AVA): Team vs Team (TvT) Capture the Flag (CTF): Last Hero (DeathMatch) Party Death "Server First" Promos: Custom Drop Events Vip System Newbie Rates: ⚙️ Custom Gameplay Mechanics Daily/Weekly/Monthly Missions: Advanced Enchant System: Attribute System Special Map Areas: Olympiad Extras: PvP/PK Systems: In-Game Mail Clan Search Seach Store Bot Report   🛡️ Security & Administration Anti-Bot Integrations:  Patch & HWID Protection: Builder System Jail & Chat Filter System   Price: 500 USD Contact Telegram: @TrakinasXP      
    • [SIZE=4][B]🇨🇦 NEWCANADA40 — 40% OFF VPS in Canada (Toronto)[/B][/SIZE] We are excited to announce the launch of our new location — Toronto, Canada. [B]Promo code:[/B] NEWCANADA40 [B]Discount:[/B] 40% on VPS orders [B]Valid until:[/B] June 7 ✔ New Canadian location ✔ Excellent North American connectivity ✔ Fast server deployment ✔ Suitable for any project [B]How to activate:[/B] — Visit our website — Select Canada (Toronto) as your location — Enter the promo code during checkout 👉 [url=https://bit.hosting]https://bit.hosting[/url] [I]The offer is valid for new Toronto VPS orders until June 7, 2026.</I>
    • Thanks for the collection and the free advertising! These files have been in the public domain for a long time — you just saved people the trouble of searching. A true fan. 😄 Just to clarify for everyone reading: these files have nothing to do with this topic. They are 10+ year old builds, and since various third-party modifications exist in the wild, we cannot guarantee what may have been added or changed in those versions. Use them at your own risk. We have absolutely no judgment toward those who are on a tight budget and can't afford our current builds — these old shared files might genuinely help you get started. Just use them carefully and at your own risk. And please don't judge developers for the mistakes they made early in their careers — every developer goes through stages of growth, and what you see in those old builds is simply a snapshot of where we were back then. We've come a long way since. If you're interested in our older builds, we have a dedicated thread for that with significantly reduced prices — very accessible for any budget. We have also recently resumed full technical support for legacy builds, handled by a separate team that doesn't interfere with our private development direction for larger projects. You can find our legacy builds here: Our OLd L2-scripts Packs Actual revisions Our current private sources are a completely different story — which is exactly what this thread is about. Too bad all your time goes into collecting other people's old code instead of developing your own project. Though judging by "L2MID is currently offline, we will come back soon in 2026" — you clearly have plenty of time on your hands. 😉
    • SHARED alreaxy! Are these files yours? https://fex.net/ru/s/kdop2z4
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..