mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-09-12 22:45:31 -04:00
Merge remote-tracking branch 'origin/master' into TuningProcess
This commit is contained in:
@@ -1,16 +0,0 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('carrion_kreetle')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_carrion_kreetle_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_carrion_kreetle_01', dynamicGroup)
|
||||
return
|
||||
@@ -1,16 +0,0 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('city_sewer_swamprat')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_city_sewer_rats_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_city_sewer_rats_01', dynamicGroup)
|
||||
return
|
||||
@@ -1,16 +0,0 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('mound_mite')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_mound_mites_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_mound_mites_01', dynamicGroup)
|
||||
return
|
||||
@@ -1,16 +0,0 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('rockmite')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_rock_mites_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_rock_mites_01', dynamicGroup)
|
||||
return
|
||||
@@ -1,16 +0,0 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('sickly_womprat')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_sickly_womp_rats_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_sickly_womp_rats_01', dynamicGroup)
|
||||
return
|
||||
@@ -1,16 +0,0 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('tame_worrt')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_tame_worrts_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_tame_worrts_01', dynamicGroup)
|
||||
return
|
||||
@@ -1,16 +0,0 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('tempest_rill')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_tempest_rills_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_tempest_rills_01', dynamicGroup)
|
||||
return
|
||||
@@ -1,16 +0,0 @@
|
||||
import sys
|
||||
from services.spawn import DynamicSpawnGroup
|
||||
from services.spawn import MobileTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addDynamicGroup(core):
|
||||
dynamicGroup = DynamicSpawnGroup()
|
||||
mobileTemplates = Vector()
|
||||
mobileTemplates.add('womprat')
|
||||
dynamicGroup.setMobiles(mobileTemplates)
|
||||
dynamicGroup.setGroupMembersNumber(1)
|
||||
dynamicGroup.setName('mos_eisley_womprats_01')
|
||||
dynamicGroup.setMaxSpawns(-1)
|
||||
dynamicGroup.setMinSpawnDistance(5)
|
||||
core.spawnService.addDynamicGroup('mos_eisley_womprats_01', dynamicGroup)
|
||||
return
|
||||
@@ -1,9 +0,0 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('mos_eisley_carrion_kreetle_01')
|
||||
dynamicGroups.add('mos_eisley_city_sewer_rats_01')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 3216, -4465, 100, 'tatooine')
|
||||
return
|
||||
@@ -1,9 +0,0 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('mos_eisley_tame_worrts_01')
|
||||
dynamicGroups.add('mos_eisley_sickly_womp_rats_01')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 3115, -4758, 100, 'tatooine')
|
||||
return
|
||||
@@ -1,9 +0,0 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('mos_eisley_tame_worrts_01')
|
||||
dynamicGroups.add('mos_eisley_rock_mites_01')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 3153, -4945, 100, 'tatooine')
|
||||
return
|
||||
@@ -1,9 +0,0 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('mos_eisley_tempest_rills_01')
|
||||
dynamicGroups.add('mos_eisley_mound_mites_01')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 3841, -4345, 100, 'tatooine')
|
||||
return
|
||||
@@ -1,9 +0,0 @@
|
||||
import sys
|
||||
from java.util import Vector
|
||||
|
||||
def addSpawnArea(core):
|
||||
dynamicGroups = Vector()
|
||||
dynamicGroups.add('mos_eisley_womprats_01')
|
||||
dynamicGroups.add('mos_eisley_mound_mites_01')
|
||||
core.spawnService.addDynamicSpawnArea(dynamicGroups, 3587, -4354, 100, 'tatooine')
|
||||
return
|
||||
@@ -57,6 +57,8 @@ public class ConversationService implements INetworkDispatch {
|
||||
if(player.getConversingNpc() != null && player.getConversingNpc() != npc)
|
||||
handleEndConversation(player, player.getConversingNpc());
|
||||
|
||||
core.simulationService.faceTarget(npc, player);
|
||||
|
||||
player.setConversingNpc(npc);
|
||||
sendStartConversation(player, npc);
|
||||
core.scriptService.callScript("scripts/conversation/", (String) npc.getAttachment("conversationFile"), "startConversation", core, player, npc);
|
||||
|
||||
@@ -123,6 +123,8 @@ public class EquipmentService implements INetworkDispatch {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(item.getTemplate().startsWith("object/weapon/") && item.getTemplate().contains("lightsaber") && item.getAttachment("hasColorCrystal") == null) item.setAttachment("hasColorCrystal", false);
|
||||
|
||||
if(item.getAttachment("hasColorCrystal") != null && (Boolean) item.getAttachment("hasColorCrystal") == false)
|
||||
{
|
||||
actor.sendSystemMessage("You may not equip a light saber that has no color crystal!", (byte) 0);
|
||||
@@ -320,7 +322,7 @@ public class EquipmentService implements INetworkDispatch {
|
||||
|
||||
if(!item.getTemplate().startsWith("object/tangible/component/weapon/lightsaber/")) return;
|
||||
if(lightsaber.getAttachment("hasColorCrystal") == null) lightsaber.setAttachment("hasColorCrystal", false);
|
||||
if(item.getAttributes().containsKey("@obj_attr_n:color") && (Boolean) lightsaber.getAttachment("hasColorCrystal")) return;
|
||||
if(item.getAttributes().containsKey("@obj_attr_n:color") && (Boolean) lightsaber.getAttachment("hasColorCrystal") && !(targetContainer.getContainer() instanceof CreatureObject)) return;
|
||||
|
||||
// Find our tuner
|
||||
if(item.getAttachment("tunerId") == null) item.setAttachment("tunerId", 0);
|
||||
@@ -335,6 +337,8 @@ public class EquipmentService implements INetworkDispatch {
|
||||
else item.getContainer().transferTo(actor, targetContainer, item);
|
||||
|
||||
// Calculate attributes
|
||||
lightsaber.setAttachment("hasColorCrystal", false);
|
||||
|
||||
lightsaberInventory.viewChildren(lightsaberInventory, false, false, new Traverser()
|
||||
{
|
||||
WeaponObject saber;
|
||||
@@ -342,7 +346,7 @@ public class EquipmentService implements INetworkDispatch {
|
||||
|
||||
int minDamageBonus = 0;
|
||||
int maxDamageBonus = 0;
|
||||
Boolean hasColorCrystal = false;
|
||||
Boolean hasColorCrystal = false;
|
||||
|
||||
public void process(SWGObject item)
|
||||
{
|
||||
@@ -359,10 +363,10 @@ public class EquipmentService implements INetworkDispatch {
|
||||
saber.setCustomizationVariable("private/alternate_shader_blade", bladeType);
|
||||
saber.setCustomizationVariable("/private/index_color_blade", bladeColor);
|
||||
|
||||
// System.out.println("bladeColorName: " + item.getAttributes().get("@obj_attr_n:color"));
|
||||
// System.out.println("bladeColor: " + bladeColor);
|
||||
// System.out.println("bladeType: " + bladeType);
|
||||
// System.out.println();
|
||||
// System.out.println("bladeColorName: " + item.getAttributes().get("@obj_attr_n:color"));
|
||||
// System.out.println("bladeColor: " + bladeColor);
|
||||
// System.out.println("bladeType: " + bladeType);
|
||||
// System.out.println();
|
||||
|
||||
hasColorCrystal = true;
|
||||
}
|
||||
|
||||
@@ -948,6 +948,36 @@ public class SimulationService implements INetworkDispatch {
|
||||
teleport(obj, obj.getPosition(), newRotation, obj.getParentId());
|
||||
}
|
||||
|
||||
public void rotateToFaceTarget(SWGObject object, SWGObject target) {
|
||||
float radians = (float) (((float) Math.atan2(target.getPosition().z - object.getPosition().z, target.getPosition().x - object.getPosition().x)) - object.getRadians());
|
||||
transform(object, radians, object.getPosition());
|
||||
}
|
||||
|
||||
public void faceTarget(SWGObject object, SWGObject target) {
|
||||
float direction = (float) Math.atan2(target.getWorldPosition().x - object.getWorldPosition().x, target.getWorldPosition().z - object.getWorldPosition().z);
|
||||
|
||||
if (direction < 0) {
|
||||
direction = (float) (2 * Math.PI + direction);
|
||||
}
|
||||
|
||||
if (Math.abs(direction - object.getRadians()) < 0.05) {
|
||||
return;
|
||||
}
|
||||
|
||||
Quaternion quaternion = new Quaternion((float) Math.cos(direction / 2), 0, (float) Math.sin(direction / 2), 0);
|
||||
|
||||
if (quaternion.y < 0.0f && quaternion.w > 0.0f) {
|
||||
quaternion.y *= -1;
|
||||
quaternion.w *= -1;
|
||||
}
|
||||
|
||||
if (object.getContainer() instanceof CellObject) {
|
||||
NGECore.getInstance().simulationService.moveObject(object, object.getPosition(), quaternion, object.getMovementCounter(), 0, (CellObject) object.getContainer());
|
||||
} else {
|
||||
NGECore.getInstance().simulationService.moveObject(object, object.getPosition(), quaternion, object.getMovementCounter(), 0, null);
|
||||
}
|
||||
}
|
||||
|
||||
public void teleport(SWGObject obj, Point3D position, Quaternion orientation, long cellId) {
|
||||
|
||||
if(cellId == 0) {
|
||||
|
||||
@@ -47,6 +47,7 @@ import protocol.swg.ObjControllerMessage;
|
||||
import protocol.swg.objectControllerObjects.CommandEnqueue;
|
||||
import protocol.swg.objectControllerObjects.CommandEnqueueRemove;
|
||||
import protocol.swg.objectControllerObjects.StartTask;
|
||||
import resources.objects.cell.CellObject;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
import resources.objects.tangible.TangibleObject;
|
||||
import resources.objects.weapon.WeaponObject;
|
||||
@@ -141,6 +142,11 @@ public class CommandService implements INetworkDispatch {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (!target.isInQuadtree() && (target.getContainer() == null || !(target.getContainer() instanceof CellObject))) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!core.simulationService.checkLineOfSight(actor, target)) {
|
||||
actor.showFlyText("@combat_effects:cant_see", 1.5f, new RGB(72, 209, 204), 1, true);
|
||||
return false;
|
||||
@@ -170,6 +176,10 @@ public class CommandService implements INetworkDispatch {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!target.isInQuadtree() && (target.getContainer() == null || !(target.getContainer() instanceof CellObject))) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!core.simulationService.checkLineOfSight(actor, target)) {
|
||||
actor.showFlyText("@combat_effects:cant_see", 1.5f, new RGB(72, 209, 204), 1, true);
|
||||
return false;
|
||||
@@ -218,6 +228,10 @@ public class CommandService implements INetworkDispatch {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!target.isInQuadtree() && (target.getContainer() == null || !(target.getContainer() instanceof CellObject))) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!core.simulationService.checkLineOfSight(actor, target)) {
|
||||
actor.showFlyText("@combat_effects:cant_see", 1.5f, new RGB(72, 209, 204), 1, true);
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user