Jump to content

Question

12 answers to this question

Recommended Posts

  • 0
Posted (edited)

if you are using aCis:

 

pastebin

 

log with your gm and spawn fences , they will be stored to db.

(in case of delete some of them use //listfence and click the fence you want)

Edited by melron
  • Upvote 1
  • 0
Posted
27 minutes ago, Xenokage said:

how am i supposed to add a fence to a zone ? i use //spawnfence 2 2000 2000 but after restart it dissapears , anyway to save ?

You can save them in xml with a code...

  • 0
Posted (edited)
5 minutes ago, Reborn12 said:

You can save them in xml with a code...

can u be specific on wich xml i have to add the location values ? 

would it be on the zone xml like this ? 

<spawnfence 2 2000 2000 X="-119418" Y="-225003" Z="-3327" /> ????

Edited by Xenokage
  • 0
Posted
On 9/7/2018 at 2:19 PM, Reborn12 said:

You can save them in xml with a code...

Tell me the day SQL replaced with XML to store somethin cause im sure i was SLEEPING

  • 0
Posted
2 minutes ago, Kara` said:

Tell me the day SQL replaced with XML to store somethin cause im sure i was SLEEPING

 

νοτ σθρε ιφ ρεταρδεδ ορ...;

  • 0
Posted

crappy code but still u can see example:

fencetable.java

package com.l2jfrozen.gameserver.datatables;

import java.util.ArrayList;
import java.util.Collection;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.l2jfrozen.gameserver.model.L2Object;
import com.l2jfrozen.gameserver.model.actor.instance.L2FenceInstance;
import java.util.logging.Logger;
import com.l2jfrozen.util.database.L2DatabaseFactory;
import com.l2jfrozen.gameserver.idfactory.IdFactory;
import com.l2jfrozen.util.CloseUtil;

public class FenceTable
{
protected static Logger _log = Logger.getLogger(FenceTable.class.getName());

public static void fencedelsql(int type,int locx,int locy,int locz,int width,int length){
		Connection con;
		try 
		{
			con = L2DatabaseFactory.getInstance().getConnection();
			PreparedStatement statement = con.prepareStatement("DELETE FROM `fences` WHERE `type`='"+type+"' AND `locx`='"+locx+"' AND `locy`='"+locy+"' AND `locz`='"+locz+"' AND `width`='"+width+"' AND `length`='"+length+"'");
			statement.execute();
            statement.close(); 	
			CloseUtil.close(con);			
			   }
			    catch (Exception e)
               {
                       e.printStackTrace();
               }
}
public static void fencetogame(){
						  int g=0;
		Connection con = null;
		try 
		{
			con = L2DatabaseFactory.getInstance().getConnection();
                       ResultSet rset;
                       PreparedStatement statement = con.prepareStatement("SELECT * FROM `fences` WHERE 1");
                       rset = statement.executeQuery();
					  int type;
                      int width;
					  int length;
					  int height;
					  int locx;
					  int locy;
					  int locz;
					  String name;
                       while (rset.next())
                       {
						   g++;
						   type = rset.getInt("type");
						   width = rset.getInt("width");
						   length = rset.getInt("length");
						   height = rset.getInt("height");
						   locx = rset.getInt("locx");
						   locy = rset.getInt("locy");
						   locz = rset.getInt("locz");
						   name = rset.getString("name");


						// spawn fence
				for (int i = 0;i < height;i++)
				{
					L2FenceInstance fence = new L2FenceInstance(IdFactory.getInstance().getNextId(), type, width, length, locz, locy, name);
					fence.spawnMe(locx, locy, locz);
					addFence(fence);
				}
                        // spawn fence						
                       }
			   }
			    catch (Exception e)
               {
                       e.printStackTrace();
               }		finally
		{
			CloseUtil.close(con);
		}
			   _log.warning("Loaded "+g+" fences to world.");
}

 public static ArrayList<L2FenceInstance> fences = new ArrayList<>();
 
 public static void addFence(L2FenceInstance fence)
 {
     fences.add(fence);
 }

 public static ArrayList<L2FenceInstance> getAllFences()
 {
     return fences;
 }
 
 public static void removeFence(L2FenceInstance fence)
 {
     if (fences.contains(fence))
         fences.remove(fence);
 }
 
 public static boolean canSeeTarget(L2Object source, int x, int y)
 {
     Collection<L2Object> objects = source.getKnownList().getKnownObjects().values();
     
     for (L2Object obj : objects)
     {
         if (obj instanceof L2FenceInstance)
         {
             L2FenceInstance fence = (L2FenceInstance) obj;
             
             if (fence.isBetween(source.getX(), source.getY(), x, y))
                 return false;
         }
     }
     
     return true;
 }
 
 public static boolean canSeeTarget(int x, int y, int tx, int ty)
 {
     for (L2FenceInstance fence : fences)
     {
         if (fence.isBetween(x, y, tx, ty))
             return false;
     }
     
     return true;
 }
}

gameserver java

FenceTable.fencetogame();

admin command:

		else if (command.startsWith("admin_spawnfence"))
		{
			StringTokenizer st = new StringTokenizer(command, " ");
			try
			{
				st.nextToken();
				int type = Integer.parseInt(st.nextToken());
				int width = Integer.parseInt(st.nextToken());
				int length = Integer.parseInt(st.nextToken());
				int height = 1;
				String name = "";
				if (st.hasMoreTokens())
					height = Math.min(Integer.parseInt(st.nextToken()), 3);
				if (st.hasMoreTokens())
				name = st.nextToken();
				
				for (int i = 0;i < height;i++)
				{
					L2FenceInstance fence = new L2FenceInstance(IdFactory.getInstance().getNextId(), type, width, length, activeChar.getX(), activeChar.getY(), name);
					fence.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
					FenceTable.addFence(fence);
					fence.fencetosql(type,activeChar.getX(),activeChar.getY(),activeChar.getZ(),width,length, height,name);
				}
			}
			catch (Exception e)
			{
				activeChar.sendMessage("Usage: //spawnfence <type> <width> <length> [<height>]");
			}
		}
		else if (command.startsWith("admin_deletefence"))
		{
			StringTokenizer st = new StringTokenizer(command, " ");
			st.nextToken();
			int idas = Integer.parseInt(st.nextToken());
			for (L2FenceInstance fencex : FenceTable.getAllFences()) {
					if(fencex.getObjectId()==idas) {
					FenceTable.fencedelsql(fencex.getType(),fencex.getX(),fencex.getY(),fencex.getZ(),fencex.getWidth(),fencex.getLength());
					L2WorldRegion region = fencex.getWorldRegion();
					fencex.decayMe();
					region.removeVisibleObject(fencex);
					fencex.getKnownList().removeAllKnownObjects();
					L2World.getInstance().removeObject(fencex);
					FenceTable.removeFence(fencex);
					activeChar.sendMessage("Deleted fence " + fencex.getObjectId());
					listFences(activeChar);
					}
				}
		}
		else if (command.startsWith("admin_listfence"))
			listFences(activeChar);
                                              ....
    private static void listFences(L2PcInstance activeChar)
	{
		NpcHtmlMessage html = new NpcHtmlMessage(0);
		StringBuilder sb = new StringBuilder();
		
		sb.append("<html><body>Total Fences: " + FenceTable.getAllFences().size() + "<br><br>");
		for (L2FenceInstance fence : FenceTable.getAllFences())
			sb.append("<a action=\"bypass admin_deletefence " + fence.getObjectId() + " 1\">Fence: "+fence.getNamex()+" " + fence.getObjectId() + " [" + fence.getX() + " " + fence.getY() + " " + fence.getZ() + "]</a><br>");
		sb.append("</body></html>");
		
		html.setHtml(sb.toString());
		activeChar.sendPacket(html);
	}

 

  • Upvote 1
  • 0
Posted
On 10/14/2018 at 3:53 AM, melron said:

if you are using aCis:

 

pastebin

 

log with your gm and spawn fences , they will be stored to db.

(in case of delete some of them use //listfence and click the fence you want)

Thank you , Helpful as always :)) 
can lock ! 

Guest
This topic is now closed to further replies.


  • Posts

    • Download Lobby u need island for lobby Download Crow Island  
    • Website: https://l2elixir.org/ Discord: https://discord.gg/5ydPHvhbxs    
    • L2-LORENA x100 MID RATE   Interlude Nostalgia Meets Modern Gameplay   OFFICIAL OPENING:  April 4 (Saturday)  19:00 UTC+1 ⸻  MAIN INFORMATION  Adena: x5  Drop: x10  Spoil: x10  Raid Boss: x10  Seal Stones: x2  Quests: x10 ⸻  FEATURES  GM Shop up to B-Grade  Full Buffer  Premium System (x2 bonuses)  AutoFarm – FREE for everyone ⸻  SERVER CONCEPT  Classic Interlude nostalgia  Enhanced with modern interface & mechanics  Balanced PvP & PvE gameplay  Active development & custom features ⸻  WHY JOIN L2-LORENA?  No Pay-to-Win  Smooth gameplay & stable server  Competitive PvP environment  Friendly & active community ⸻  JOIN US NOW L2-LORENA 100X <<< LINK Discord: https://discord.gg/TYZ88Tgx4b  Facebook: https://www.facebook.com/share/18kwbkaYZY/?mibextid=wwXIfr   L2-LORENA Link << Discord: https://discord.gg/TYZ88Tgx4b  Facebook: https://www.facebook.com/share/18kwbkaYZY/?mibextid=wwXIfr
    • https://web.archive.org/web/20260306183214/https://maxcheaters.com/topic/241828-l2j-l2damage/page/3/ https://l2topzone.com/forum/l2-server-support-problems/9/l2damage-stopped/30514 Also we will try to push longer seasons ever ! (1135-100)/9 = 115 online
    • ONE SIDE – AND EVERYTHING BREAKS ▪ Looks like a simple case: Florida DL, back side, barcode – “clean and minimal”. ▪ In reality, these are exactly the tasks that fail most often. – data provided as plain text – request only for the back side – focus on the barcode (PDF417) ▪ And here’s the key point: ▪ A barcode is not just a “picture on the back”. It’s compressed logic of the entire document. ▪ If it doesn’t match the front, format, and data structure – the system flags it instantly. ▪ Many create a “similar-looking” code. But systems don’t read “similar” – they read by specification. ▪ In cases like this, it’s not about design. It’s about correct data assembly and how it behaves inside the format. ▪ Today only – 15% off for verification cases. ▪ Want it to pass, not just look right? Describe your case – we’ll show where even clean files break. › TG: @mustang_service ( https:// t.me/ mustang_service ) › Channel: Mustang Service ( https:// t.me/ +JPpJCETg-xM1NjNl ) #editing #photoshop #documents #verification #case
  • 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..