mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-09-23 08:13:30 -04:00
Added serverScript library
This commit is contained in:
@@ -0,0 +1,460 @@
|
||||
// ======================================================================
|
||||
//
|
||||
// ScriptMethodsHateList.cpp
|
||||
// Copyright 2005 Sony Online Eentertainment, Inc.
|
||||
// All rights reserved.
|
||||
//
|
||||
// ======================================================================
|
||||
|
||||
#include "serverScript/FirstServerScript.h"
|
||||
#include "serverScript/JavaLibrary.h"
|
||||
|
||||
#include "serverGame/AiLogManager.h"
|
||||
#include "serverGame/ConfigServerGame.h"
|
||||
#include "serverGame/CreatureObject.h"
|
||||
#include "serverGame/HateList.h"
|
||||
#include "serverGame/PlayerCreatureController.h"
|
||||
#include "serverGame/PlayerObject.h"
|
||||
#include "serverGame/TangibleObject.h"
|
||||
#include "sharedLog/Log.h"
|
||||
|
||||
using namespace JNIWrappersNamespace;
|
||||
|
||||
|
||||
// ======================================================================
|
||||
// ScriptMethodsHateListNamespace
|
||||
// ======================================================================
|
||||
|
||||
namespace ScriptMethodsHateListNamespace
|
||||
{
|
||||
bool install();
|
||||
|
||||
void JNICALL setAggroImmuneDuration(JNIEnv * env, jobject self, jlong player, jint duration);
|
||||
jboolean JNICALL isAggroImmune(JNIEnv * env, jobject self, jlong player);
|
||||
void JNICALL addHate(JNIEnv * env, jobject self, jlong object, jlong hateTarget, jfloat hate);
|
||||
void JNICALL addHateDot(JNIEnv * env, jobject self, jlong object, jlong hateTarget, jfloat hate, jint seconds);
|
||||
void JNICALL setHate(JNIEnv * env, jobject self, jlong object, jlong hateTarget, jfloat hate);
|
||||
void JNICALL removeHateTarget(JNIEnv * env, jobject self, jlong object, jlong hateTarget);
|
||||
jfloat JNICALL getHate(JNIEnv * env, jobject self, jlong object, jlong hateTarget);
|
||||
jfloat JNICALL getMaxHate(JNIEnv * env, jobject self, jlong object);
|
||||
void JNICALL clearHateList(JNIEnv * env, jobject self, jlong object);
|
||||
jlong JNICALL getHateTarget(JNIEnv * env, jobject self, jlong object);
|
||||
jlongArray JNICALL getHateList(JNIEnv * env, jobject self, jlong object);
|
||||
jboolean JNICALL isOnHateList(JNIEnv * env, jobject self, jlong object, jlong target);
|
||||
void JNICALL resetHateTimer(JNIEnv * env, jobject self, jlong object);
|
||||
void JNICALL setAILeashTime(JNIEnv * env, jobject self, jlong object, jfloat time);
|
||||
jfloat JNICALL getAILeashTime(JNIEnv * env, jobject self, jlong object);
|
||||
void JNICALL forceHateTarget(JNIEnv * env, jobject self, jlong object, jlong target);
|
||||
}
|
||||
|
||||
|
||||
//========================================================================
|
||||
// install
|
||||
//========================================================================
|
||||
|
||||
bool ScriptMethodsHateListNamespace::install()
|
||||
{
|
||||
const JNINativeMethod NATIVES[] = {
|
||||
#define JF(a,b,c) {a,b,(void*)(ScriptMethodsHateListNamespace::c)}
|
||||
JF("_setAggroImmuneDuration", "(JI)V", setAggroImmuneDuration),
|
||||
JF("_isAggroImmune", "(J)Z", isAggroImmune),
|
||||
JF("_addHate", "(JJF)V", addHate),
|
||||
JF("_addHateDot", "(JJFI)V", addHateDot),
|
||||
JF("_setHate", "(JJF)V", setHate),
|
||||
JF("_removeHateTarget", "(JJ)V", removeHateTarget),
|
||||
JF("_getHate", "(JJ)F", getHate),
|
||||
JF("_getMaxHate", "(J)F", getMaxHate),
|
||||
JF("_clearHateList", "(J)V", clearHateList),
|
||||
JF("_getHateTarget", "(J)J", getHateTarget),
|
||||
JF("_getHateList", "(J)[J", getHateList),
|
||||
JF("_isOnHateList", "(JJ)Z", isOnHateList),
|
||||
JF("_resetHateTimer", "(J)V", resetHateTimer),
|
||||
JF("_setAILeashTime", "(JF)V", setAILeashTime),
|
||||
JF("_getAILeashTime", "(J)F", getAILeashTime),
|
||||
JF("_forceHateTarget", "(JJ)V", forceHateTarget),
|
||||
};
|
||||
|
||||
return JavaLibrary::registerNatives(NATIVES, sizeof(NATIVES)/sizeof(NATIVES[0]));
|
||||
}
|
||||
|
||||
|
||||
// ======================================================================
|
||||
//
|
||||
// ScriptMethodsHateList
|
||||
//
|
||||
// ======================================================================
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
void JNICALL ScriptMethodsHateListNamespace::setAggroImmuneDuration(JNIEnv * /*env*/, jobject /*self*/, jlong player, jint duration)
|
||||
{
|
||||
NetworkId const playerNetworkId(player);
|
||||
PlayerObject * const playerObject = PlayerCreatureController::getPlayerObject(CreatureObject::getCreatureObject(playerNetworkId));
|
||||
|
||||
if (playerObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::setAggroImmuneDuration() player(%s) Unable to resolve the object to a PlayerObject.", playerNetworkId.getValueString().c_str()));
|
||||
return;
|
||||
}
|
||||
|
||||
playerObject->setAggroImmuneDuration(duration);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
jboolean JNICALL ScriptMethodsHateListNamespace::isAggroImmune(JNIEnv * /*env*/, jobject /*self*/, jlong player)
|
||||
{
|
||||
NetworkId const playerNetworkId(player);
|
||||
PlayerObject * const playerObject = PlayerCreatureController::getPlayerObject(CreatureObject::getCreatureObject(playerNetworkId));
|
||||
|
||||
if (playerObject == NULL)
|
||||
{
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
||||
return playerObject->isAggroImmune();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
void JNICALL ScriptMethodsHateListNamespace::addHate(JNIEnv * /*env*/, jobject /*self*/, jlong object, jlong hateTarget, jfloat hate)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
NetworkId const hateTargetNetworkId(hateTarget);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::addHate() object(%s) hateTarget(%s) hate(%.2f) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str(), hate));
|
||||
return;
|
||||
}
|
||||
|
||||
if (hateTargetNetworkId == NetworkId::cms_invalid)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::addHate() object(%s) hate(%.2f) Unable to resolve the hateTarget(%s) to a NetworkId.", networkId.getValueString().c_str(), hate, hateTargetNetworkId.getValueString().c_str()));
|
||||
return;
|
||||
}
|
||||
|
||||
if (networkId == hateTargetNetworkId)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::addHate() object(%s) hateTarget(%s) hate(%.2f) The object is trying to add itself to its hate list.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str(), hate));
|
||||
return;
|
||||
}
|
||||
|
||||
objectTangibleObject->addHate(hateTargetNetworkId, hate);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
void JNICALL ScriptMethodsHateListNamespace::addHateDot(JNIEnv * /*env*/, jobject /*self*/, jlong object, jlong hateTarget, jfloat hate, jint seconds)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
NetworkId const hateTargetNetworkId(hateTarget);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::addHateDot() object(%s) hateTarget(%s) hate(%.2f) seconds(%d) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str(), hate, seconds));
|
||||
return;
|
||||
}
|
||||
|
||||
if (hateTargetNetworkId == NetworkId::cms_invalid)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::addHateDot() object(%s) hate(%.2f) seconds(%d) Unable to resolve the hateTarget(%s) to a NetworkId.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str(), hate, seconds));
|
||||
return;
|
||||
}
|
||||
|
||||
if (networkId == hateTargetNetworkId)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::addHateDot() object(%s) hateTarget(%s) hate(%.2f) seconds(%d) The object is trying to add itself to its hate list.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str(), hate, seconds));
|
||||
return;
|
||||
}
|
||||
|
||||
LOGC(AiLogManager::isLogging(networkId), "debug_ai", ("ScriptMethodsHateList::addHateDot() object(%s) hateTarget(%s) hate(%.2f+%.2f) seconds(%d)", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str(), objectTangibleObject->getHate(hateTargetNetworkId), hate, seconds));
|
||||
|
||||
objectTangibleObject->addHateOverTime(hateTargetNetworkId, hate, seconds);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
void JNICALL ScriptMethodsHateListNamespace::setHate(JNIEnv * /*env*/, jobject /*self*/, jlong object, jlong hateTarget, jfloat hate)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
NetworkId const hateTargetNetworkId(hateTarget);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
WARNING(true, ("ScriptMethodsHateList::setHate() object(%s) hateTarget(%s) hate(%.2f) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str(), hate));
|
||||
return;
|
||||
}
|
||||
|
||||
if (hateTargetNetworkId == NetworkId::cms_invalid)
|
||||
{
|
||||
WARNING(true, ("ScriptMethodsHateList::setHate() object(%s) hateTarget(%s) hate(%.2f) Unable to resolve the hateTarget to a NetworkId.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str(), hate));
|
||||
return;
|
||||
}
|
||||
|
||||
if (networkId == hateTargetNetworkId)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::setHate() object(%s) hateTarget(%s) hate(%.2f) The object is trying to add itself to its hate list.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str(), hate));
|
||||
return;
|
||||
}
|
||||
|
||||
LOGC(AiLogManager::isLogging(networkId), "debug_ai", ("ScriptMethodsHateList::setHate() object(%s) hateTarget(%s) hate(%.2f)", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str(), hate));
|
||||
|
||||
objectTangibleObject->setHate(hateTargetNetworkId, hate);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
void JNICALL ScriptMethodsHateListNamespace::removeHateTarget(JNIEnv * /*env*/, jobject /*self*/, jlong object, jlong hateTarget)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
NetworkId const hateTargetNetworkId(hateTarget);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
WARNING(true, ("ScriptMethodsHateList::removeHateTarget() object(%s) hateTarget(%s) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str()));
|
||||
return;
|
||||
}
|
||||
|
||||
if (hateTargetNetworkId == NetworkId::cms_invalid)
|
||||
{
|
||||
WARNING(true, ("ScriptMethodsHateList::removeHateTarget() object(%s) Unable to resolve the hateTarget(%s) to a NetworkId.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str()));
|
||||
return;
|
||||
}
|
||||
|
||||
if (networkId == hateTargetNetworkId)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::removeHateTarget() object(%s) hateTarget(%s) The object is trying to add itself to its hate list.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str()));
|
||||
return;
|
||||
}
|
||||
|
||||
LOGC(AiLogManager::isLogging(networkId), "debug_ai", ("ScriptMethodsHateList::removeHateTarget() object(%s) hateTarget(%s)", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str()));
|
||||
|
||||
objectTangibleObject->removeHateTarget(hateTargetNetworkId);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
jfloat JNICALL ScriptMethodsHateListNamespace::getHate(JNIEnv * /*env*/, jobject /*self*/, jlong object, jlong hateTarget)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
NetworkId const hateTargetNetworkId(hateTarget);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::getHate() object(%s) hateTarget(%s) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str()));
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
if (hateTargetNetworkId == NetworkId::cms_invalid)
|
||||
{
|
||||
WARNING(true, ("ScriptMethodsHateList::getHate() object(%s) Unable to resolve the hateTarget(%s) to a NetworkId.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str()));
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
if (networkId == hateTargetNetworkId)
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
return objectTangibleObject->getHate(hateTargetNetworkId);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
jfloat JNICALL ScriptMethodsHateListNamespace::getMaxHate(JNIEnv * /*env*/, jobject /*self*/, jlong object)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::getMaxHate() object(%s) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str()));
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
float const maxHate = objectTangibleObject->getMaxHate();
|
||||
|
||||
return maxHate;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
void JNICALL ScriptMethodsHateListNamespace::clearHateList(JNIEnv * /*env*/, jobject /*self*/, jlong object)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::clearHateList() Unable to resolve the object(%s) to a TangibleObject.", networkId.getValueString().c_str()));
|
||||
return;
|
||||
}
|
||||
|
||||
LOGC(AiLogManager::isLogging(networkId), "debug_ai", ("ScriptMethodsHateList::clearHateList() object(%s)", networkId.getValueString().c_str()));
|
||||
|
||||
objectTangibleObject->clearHateList();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
jlong JNICALL ScriptMethodsHateListNamespace::getHateTarget(JNIEnv * /*env*/, jobject /*self*/, jlong object)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::getHateTarget() Unable to resolve the object(%s) to a TangibleObject.", networkId.getValueString().c_str()));
|
||||
return 0;
|
||||
}
|
||||
|
||||
CachedNetworkId const & hateTarget = objectTangibleObject->getHateTarget();
|
||||
|
||||
return hateTarget.getValue();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
jlongArray JNICALL ScriptMethodsHateListNamespace::getHateList(JNIEnv * /*env*/, jobject /*self*/, jlong object)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
LOGC(AiLogManager::isLogging(networkId), "debug_ai", ("ScriptMethodsHateList::getHateList() object(%s)", networkId.getValueString().c_str()));
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::getHateList() Unable to resolve the object(%s) to a TangibleObject.", networkId.getValueString().c_str()));
|
||||
return 0;
|
||||
}
|
||||
|
||||
HateList::SortedList sortedHateList;
|
||||
objectTangibleObject->getSortedHateList(sortedHateList);
|
||||
|
||||
LocalLongArrayRefPtr hateList = createNewLongArray(static_cast<long>(sortedHateList.size()));
|
||||
HateList::SortedList::const_iterator iterSortedHateList = sortedHateList.begin();
|
||||
int index = 0;
|
||||
|
||||
jlong jlongTmp;
|
||||
for (; iterSortedHateList != sortedHateList.end(); ++iterSortedHateList)
|
||||
{
|
||||
jlongTmp = (iterSortedHateList->first).getValue();
|
||||
setLongArrayRegion(*hateList, index, 1, &jlongTmp);
|
||||
++index;
|
||||
}
|
||||
|
||||
return hateList->getReturnValue();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
jboolean JNICALL ScriptMethodsHateListNamespace::isOnHateList(JNIEnv * /*env*/, jobject /*self*/, jlong object, jlong target)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
NetworkId const targetNetworkId(target);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::isOnHateList() object(%s) target(%s) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str(), targetNetworkId.getValueString().c_str()));
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
||||
if (targetNetworkId == NetworkId::cms_invalid)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::isOnHateList() object(%s) Unable to resolve the target(%s) to a NetworkId.", networkId.getValueString().c_str(), targetNetworkId.getValueString().c_str()));
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
||||
return objectTangibleObject->isOnHateList(targetNetworkId);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
void JNICALL ScriptMethodsHateListNamespace::resetHateTimer(JNIEnv * /*env*/, jobject /*self*/, jlong object)
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::resetHateTimer() object(%s) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str()));
|
||||
return;
|
||||
}
|
||||
|
||||
objectTangibleObject->resetHateTimer();
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
void JNICALL ScriptMethodsHateListNamespace::setAILeashTime(JNIEnv * /*env*/, jobject /*self*/, jlong object, jfloat time )
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::setAILeashTime() object(%s) time(%.2f) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str(), time));
|
||||
return;
|
||||
}
|
||||
|
||||
LOGC(AiLogManager::isLogging(networkId), "debug_ai",
|
||||
("ScriptMethodsHateList::setAILeashTime() object(%s) time(%f)",
|
||||
networkId.getValueString().c_str(),
|
||||
time
|
||||
));
|
||||
|
||||
objectTangibleObject->setAILeashTime(time);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
jfloat JNICALL ScriptMethodsHateListNamespace::getAILeashTime(JNIEnv * /*env*/, jobject /*self*/, jlong object )
|
||||
{
|
||||
NetworkId const networkId(object);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::setAILeashTime() object(%s) time(%.2f) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str(), time));
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
LOGC(AiLogManager::isLogging(networkId), "debug_ai",
|
||||
("ScriptMethodsHateList::setAILeashTime() object(%s) time(%f)",
|
||||
networkId.getValueString().c_str(),
|
||||
time
|
||||
));
|
||||
|
||||
return objectTangibleObject->getAILeashTime();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
void JNICALL ScriptMethodsHateListNamespace::forceHateTarget(JNIEnv * env, jobject self, jlong object, jlong target)
|
||||
{
|
||||
UNREF(env);
|
||||
UNREF(self);
|
||||
|
||||
NetworkId const networkId(object);
|
||||
NetworkId const hateTargetNetworkId(target);
|
||||
TangibleObject * const objectTangibleObject = TangibleObject::getTangibleObject(networkId);
|
||||
|
||||
if (objectTangibleObject == NULL)
|
||||
{
|
||||
WARNING(true, ("ScriptMethodsHateList::forceHateTarget() object(%s) hateTarget(%s) Unable to resolve the object to a TangibleObject.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str()));
|
||||
return;
|
||||
}
|
||||
|
||||
if (hateTargetNetworkId == NetworkId::cms_invalid)
|
||||
{
|
||||
WARNING(true, ("ScriptMethodsHateList::forceHateTarget() object(%s) Unable to resolve the hateTarget(%s) to a NetworkId.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str()));
|
||||
return;
|
||||
}
|
||||
|
||||
if (networkId == hateTargetNetworkId)
|
||||
{
|
||||
JAVA_THROW_SCRIPT_EXCEPTION(true, ("ScriptMethodsHateList::forceHateTarget() object(%s) hateTarget(%s) The object is trying to add itself to its hate list.", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str()));
|
||||
return;
|
||||
}
|
||||
|
||||
LOGC(AiLogManager::isLogging(networkId), "debug_ai", ("ScriptMethodsHateList::forceHateTarget() object(%s) hateTarget(%s)", networkId.getValueString().c_str(), hateTargetNetworkId.getValueString().c_str()));
|
||||
|
||||
objectTangibleObject->forceHateTarget(hateTargetNetworkId);
|
||||
}
|
||||
|
||||
// ======================================================================
|
||||
Reference in New Issue
Block a user