本文整理汇总了C++中CreatureObject::getMentalStateToward方法的典型用法代码示例。如果您正苦于以下问题:C++ CreatureObject::getMentalStateToward方法的具体用法?C++ CreatureObject::getMentalStateToward怎么用?C++ CreatureObject::getMentalStateToward使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CreatureObject
的用法示例。
在下文中一共展示了CreatureObject::getMentalStateToward方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addToMentalStatesToward
/**
* Adds values to the mental states for a creature.
*
* @param env Java environment
* @param self class calling this function
* @param mob id of creature to access
* @param values mental state/value pairs to add
*
* @return true on success, false on fail
*/
jboolean JNICALL ScriptMethodsMentalStatesNamespace::addToMentalStatesToward(JNIEnv *env, jobject self, jlong mob, jlong target, jobjectArray values)
{
UNREF(self);
if (target == 0)
return JNI_FALSE;
CreatureObject * creature = 0;
if (!JavaLibrary::getObject(mob, creature))
return JNI_FALSE;
NetworkId targetId(target);
if (!targetId)
return JNI_FALSE;
int count = env->GetArrayLength(values);
for (int i = 0; i < count; ++i)
{
LocalRefPtr mentalState = getObjectArrayElement(LocalObjectArrayRefParam(values), i);
if (mentalState == LocalRef::cms_nullPtr)
return JNI_FALSE;
int type = getIntField(*mentalState, JavaLibrary::getFidMentalStateType());
float delta = getFloatField(*mentalState, JavaLibrary::getFidMentalStateValue());
if (type < 0 || type >= MentalStates::NumberOfMentalStates)
return JNI_FALSE;
MentalStates::Value value = creature->getMentalStateToward(targetId, static_cast<MentalStates::Enumerator>(type));
creature->setMentalStateToward(targetId, static_cast<MentalStates::Enumerator>(type),
static_cast<MentalStates::Value>(value+delta));
}
return JNI_TRUE;
} // JavaLibrary::addToMentalStates
示例2: addToMentalStateTowardClampBehavior
/**
* Adds a value to a creature's mental state.
*
* @param env Java environment
* @param self class calling this function
* @param mob id of creature to access
* @param mentalState mental state we are interested in
* @param value value to add to the mental state
*
* @return true on success, false on fail
*/
jboolean JNICALL ScriptMethodsMentalStatesNamespace::addToMentalStateTowardClampBehavior(JNIEnv *env, jobject self, jlong mob, jlong target, jint mentalState, jfloat value, jint behavior)
{
UNREF(self);
if (target == 0 || mentalState < 0 || mentalState >= MentalStates::NumberOfMentalStates)
return JNI_FALSE;
CreatureObject * creature = 0;
if (!JavaLibrary::getObject(mob, creature))
return JNI_FALSE;
NetworkId targetId(target);
if (!targetId)
return JNI_FALSE;
MentalStates::Value current = creature->getMentalStateToward(targetId, static_cast<MentalStates::Enumerator>(mentalState));
LOGC(ConfigServerGame::isAiLoggingEnabled(), "debug_ai", ("ScriptMethodsMentalStates::addToMentalStateTowardClampBehavior() %s->%s state(%s) value(%.0f+%.0f) behavior(%s)", creature->getNetworkId().getValueString().c_str(), targetId.getValueString().c_str(), CreatureObject::getMentalStateString(mentalState), current, value, CreatureObject::getBehaviorString(behavior)));
creature->setMentalStateTowardClampBehavior(targetId,
static_cast<MentalStates::Enumerator>(mentalState),
static_cast<MentalStates::Value>(current + value),
static_cast<Behaviors::Enumerator>(behavior));
return JNI_TRUE;
} // JavaLibrary::addToMentalState
示例3: getMentalStateToward
/**
* Returns a creature's mental state.
*
* @param env Java environment
* @param self class calling this function
* @param mob id of creature to access
* @param mental state mental state we are interested in
*
* @return the mental state value, or MENTAL_STATE_ERROR on error
*/
jfloat JNICALL ScriptMethodsMentalStatesNamespace::getMentalStateToward(JNIEnv *env, jobject self, jlong mob, jlong target, jint mentalState)
{
UNREF(self);
if (target == 0 || mentalState < 0 || mentalState >= MentalStates::NumberOfMentalStates)
return MENTAL_STATE_ERROR;
CreatureObject * creature = 0;
if (!JavaLibrary::getObject(mob, creature))
return MENTAL_STATE_ERROR;
NetworkId targetId(target);
if (!targetId)
return MENTAL_STATE_ERROR;
return creature->getMentalStateToward(targetId, static_cast<MentalStates::Enumerator>(mentalState));
} // JavaLibrary::getMentalState
示例4: addToMentalStatesTowardArray
/**
* Adds values to the mental states for a creature.
*
* @param env Java environment
* @param self class calling this function
* @param mob id of creature to access
* @param values mental state/value pairs to add
*
* @return true on success, false on fail
*/
jboolean JNICALL ScriptMethodsMentalStatesNamespace::addToMentalStatesTowardArray(JNIEnv *env, jobject self, jlong mob, jlongArray target, jobjectArray values)
{
UNREF(self);
CreatureObject * creature = 0;
if (!JavaLibrary::getObject(mob, creature))
return JNI_FALSE;
std::vector<NetworkId> targetIds;
if (!ScriptConversion::convert(target, targetIds))
return JNI_FALSE;
jboolean result = JNI_TRUE;
std::vector<NetworkId>::iterator iTarget;
int count = env->GetArrayLength(values);
for (int i = 0; i < count; ++i)
{
LocalRefPtr mentalState = getObjectArrayElement(LocalObjectArrayRefParam(values), i);
if (mentalState != LocalRef::cms_nullPtr)
{
int type = getIntField(*mentalState, JavaLibrary::getFidMentalStateType());
float delta = getFloatField(*mentalState, JavaLibrary::getFidMentalStateValue());
if (type >= 0 && type < MentalStates::NumberOfMentalStates)
{
for (iTarget=targetIds.begin(); iTarget!=targetIds.end(); ++iTarget)
{
MentalStates::Value value = creature->getMentalStateToward(*iTarget, static_cast<MentalStates::Enumerator>(type));
value += delta;
creature->setMentalStateToward(*iTarget, static_cast<MentalStates::Enumerator>(type),
static_cast<MentalStates::Value>(value));
}
}
else
result = JNI_FALSE;
}
else
result = JNI_FALSE;
}
return result;
} // JavaLibrary::addToMentalStates
示例5: getMentalStatesToward
/**
* Returns all the mental states for a creature.
*
* @param env Java environment
* @param self class calling this function
* @param mob id of creature to access
*
* @return the mental states for the creature
*/
jobjectArray JNICALL ScriptMethodsMentalStatesNamespace::getMentalStatesToward(JNIEnv *env, jobject self, jlong mob, jlong target)
{
UNREF(self);
if (target == 0)
return 0;
CreatureObject * creature = 0;
if (!JavaLibrary::getObject(mob, creature))
return 0;
NetworkId targetId(target);
if (!targetId)
return 0;
// create the array of mental states
LocalObjectArrayRefPtr attribs = createNewObjectArray(
MentalStates::NumberOfMentalStates, JavaLibrary::getClsMentalState());
if (env->ExceptionCheck())
{
env->ExceptionDescribe();
return 0;
}
// set the array elements
for (int i = 0; i < MentalStates::NumberOfMentalStates; ++i)
{
LocalRefPtr mentalState = createNewObject(JavaLibrary::getClsMentalState(), JavaLibrary::getMidMentalState(),
i, creature->getMentalStateToward(targetId, static_cast<MentalStates::Enumerator>(i)));
if (env->ExceptionCheck())
{
env->ExceptionDescribe();
return 0;
}
setObjectArrayElement(*attribs, i, *mentalState);
}
return attribs->getReturnValue();
} // JavaLibrary::getMentalStates
示例6: addToMentalStateTowardArray
/**
* Adds a value to a creature's mental state.
*
* @param env Java environment
* @param self class calling this function
* @param mob id of creature to access
* @param mentalState mental state we are interested in
* @param value value to add to the mental state
*
* @return true on success, false on fail
*/
jboolean JNICALL ScriptMethodsMentalStatesNamespace::addToMentalStateTowardArray(JNIEnv *env, jobject self, jlong mob, jlongArray target, jint mentalState, jfloat value)
{
UNREF(self);
if (mentalState < 0 || mentalState >= MentalStates::NumberOfMentalStates)
return JNI_FALSE;
CreatureObject * creature = 0;
if (!JavaLibrary::getObject(mob, creature))
return JNI_FALSE;
std::vector<NetworkId> targetIds;
if (!ScriptConversion::convert(target, targetIds))
return JNI_FALSE;
std::vector<NetworkId>::iterator i;
for (i=targetIds.begin(); i!=targetIds.end(); ++i)
{
MentalStates::Value current = creature->getMentalStateToward(*i, static_cast<MentalStates::Enumerator>(mentalState));
creature->setMentalStateToward(*i, static_cast<MentalStates::Enumerator>(mentalState), static_cast<MentalStates::Value>(current + value));
}
return JNI_TRUE;
} // JavaLibrary::addToMentalState