Jump to content
  • 0

Respawn On Custom Zone.


Rio

Question

I use clan war zone : http://www.maxcheaters.com/topic/145845-clan-war-zone-l2jfrozen/?hl=%2Bclan+%2Bzone
I have a problem with character's respawn when he dies, i want him to respawn inside the zone but instead of that he teleports to the nearest town.
I tried the on ondie character:
 

character.teleToLocation(133059, -14748, -1023 +Rnd.get(-500,500), 130351, -13881, -1023 +Rnd.get(-500,500), 138516, -15510, -1023 +Rnd.get(-500,500));

but i get error on .teleToLocation, i must be missing or messed up something

Here is the xml zone:
 

<zone id='200000' type='ClanWarZone' shape='Cuboid' minZ='-3800' maxZ='3200'>
 		
 		<stat name='spawnX' val='131376'/>
 		<stat name='spawnY' val='-15203'/>
 		<stat name='spawnZ' val='-995'/>
                <spawn X='133059' Y='-14748' Z='-1023'/>
		<spawn X='130351' Y='-13881' Z='-1023'/>
		<spawn X='138516' Y='-15510' Z='-1023'/>
		<spawn X='139994' Y='-14989' Z='-572'/>
		<spawn X='131359' Y='-15124' Z='-98'/>
		<spawn X='132601' Y='-15310' Z='-577'/>
		<spawn X='133484' Y='-16095' Z='-946'/>
 	</zone>
Edited by Rio
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

is with config like you can use X,Y,Z and again X,Y,Z

elso is working with much location

and from here static int radius = 100 you can use radius in respawn

post error

frozenSettings.property
==============================
find
NewPlayerEffect = false
paste
SpawnLoc = 150111,144740,-12248,150111,144740,-12248


================================
Config.java
================================
find
	public static boolean NEW_PLAYER_EFFECT;
paste
	+public static int[][] SPAWN_LOCATION;

find
	NEW_PLAYER_EFFECT = Boolean.parseBoolean(frozenSettings.getProperty("NewPlayerEffect", "True"));
paste
	+SPAWN_LOCATION = parseItemsList(frozenSettings.getProperty("SpawnLoc", "150111,144740,-12248"));


find
			LOGGER.warn("Could not load HexID file (" + HEXID_FILE + "). Hopefully login will give us one.");
		}
	}
paste
+    private static int[][] parseItemsList(String line)
+    {
+            final String[] propertySplit = line.split(";");
+            if (propertySplit.length == 0)
+                    return null;
+
+            int i = 0;
+            String[] valueSplit;
+            final int[][] result = new int[propertySplit.length][];
+            for (String value : propertySplit)
+            {
+                    valueSplit = value.split(",");
+                    if (valueSplit.length != 3)
+                    {
+                            return null;
+                    }
+
+                    result[i] = new int[3];
+                    try
+                    {
+                            result[i][0] = Integer.parseInt(valueSplit[0]);
+                    }
+                    catch (NumberFormatException e)
+                    {
+                            return null;
+                    }
+                    try
+                    {
+                            result[i][1] = Integer.parseInt(valueSplit[1]);
+                    }
+                    catch (NumberFormatException e)
+                    {
+                            return null;
+                    }
+                    try
+                    {
+                            result[i][2] = Integer.parseInt(valueSplit[2]);
+                    }
+                    catch (NumberFormatException e)
+                    {
+                            return null;
+                    }
+                    i++;
+            }
+            return result;
+    }

public class L2ClanWarZone extends L2ZoneType
{
	+static int radius = 100;
	+static int[][] spawn_loc = Config.SPAWN_LOCATION;

find your onDieInside
and use my
  @Override
   public void onDieInside(L2Character character)
   {
	 + if (character instanceof L2PcInstance)
	 + {
	 +	  final L2PcInstance activeChar = ((L2PcInstance) character);
	 +	  
         + int[] loc = spawn_loc[Rnd.get(spawn_loc.length)];
         + activeChar.teleToLocation(loc[0]+Rnd.get(-radius,radius), loc[1]+Rnd.get(-radius,radius), loc[2]);
	 + }
   }
Link to comment
Share on other sites

  • 0

Check your PM's for the code.

 

(Sorry but I do not want to give this code public).

Edited by 'Baggos'
Link to comment
Share on other sites

  • 0

 

I use clan war zone : http://www.maxcheaters.com/topic/145845-clan-war-zone-l2jfrozen/?hl=%2Bclan+%2Bzone

I have a problem with character's respawn when he dies, i want him to respawn inside the zone but instead of that he teleports to the nearest town.

I tried the on ondie character:

 

character.teleToLocation(133059, -14748, -1023 +Rnd.get(-500,500), 130351, -13881, -1023 +Rnd.get(-500,500), 138516, -15510, -1023 +Rnd.get(-500,500));

but i get error on .teleToLocation, i must be missing or messed up something

Here is the xml zone:

 

<zone id='200000' type='ClanWarZone' shape='Cuboid' minZ='-3800' maxZ='3200'>
 		
 		<stat name='spawnX' val='131376'/>
 		<stat name='spawnY' val='-15203'/>
 		<stat name='spawnZ' val='-995'/>
                <spawn X='133059' Y='-14748' Z='-1023'/>
		<spawn X='130351' Y='-13881' Z='-1023'/>
		<spawn X='138516' Y='-15510' Z='-1023'/>
		<spawn X='139994' Y='-14989' Z='-572'/>
		<spawn X='131359' Y='-15124' Z='-98'/>
		<spawn X='132601' Y='-15310' Z='-577'/>
		<spawn X='133484' Y='-16095' Z='-946'/>
 	</zone>

just go to  RequestRestartPoint.java (gameserver.network.clientpackets)

 

search for 

if (activeChar.isInJail())
_requestedPointType = 27;
else if (activeChar.isFestivalParticipant())
_requestedPointType = 4;

make something like:

 

if (activeChar.isInJail())
_requestedPointType = 27;
else if (activeChar.isFestivalParticipant())
_requestedPointType = 4; 
else if(activeChar.isInsideClanwarZone())
_requestedPointType = 372;

find 

 

case 27: // to jail
if (!activeChar.isInJail())
return;
loc = new Location(-114356, -249645, -2984);
break;

add above your new switch case:

 

case 372: 
if(activeChar.isInsideClanwarZone())
{
loc = new Location(yourlocx+rndshits, yourlocy+rndshits, yourlocz+rndshits);


}
break;
Link to comment
Share on other sites

  • 0

case 372: 
if(activeChar.isInsideClanwarZone())
{
loc = new Location(yourlocx+rndshits, yourlocy+rndshits, yourlocz+rndshits);


}
break;

what should i set in +rndshits?   

Do i have to make it like this for multi respawn locations?

loc = new Location(-114356+rndshits, -249645,+rndshits, -2984+rndshits);

Edited by Rio
Link to comment
Share on other sites

  • 0
case 372: 
if(activeChar.isInsideClanwarZone())
{
loc = new Location(yourlocx+rndshits, yourlocy+rndshits, yourlocz+rndshits);


}
break;

what should i set in +rndshits?   

Do i have to make it like this for multi respawn locations?

loc = new Location(-114356+rndshits, -249645,+rndshits, -2984+rndshits);

 

+Rnd.get(-400,400)

Link to comment
Share on other sites

  • 0

Use command /loc add your location where is 100 tha means the positions where player will teleported..if you set to 0 all players will teleported to the same range that means all will be stucked there :p

loc = new Location(114356, -249645, -2984,100);
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.


×
×
  • Create New...