本文整理汇总了C++中CreatureObject::setMentalStateToward方法的典型用法代码示例。如果您正苦于以下问题:C++ CreatureObject::setMentalStateToward方法的具体用法?C++ CreatureObject::setMentalStateToward怎么用?C++ CreatureObject::setMentalStateToward使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CreatureObject
的用法示例。
在下文中一共展示了CreatureObject::setMentalStateToward方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: addToMentalStateToward
/**
* 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::addToMentalStateToward(JNIEnv *env, jobject self, jlong mob, jlong target, jint mentalState, jfloat value)
{
UNREF(self);
if (target == 0 || mentalState < 0 || mentalState >= MentalStates::NumberOfMentalStates)
{
LOGC(ConfigServerGame::isAiLoggingEnabled(), "debug_ai", ("ScriptMethodsMentalStates::addToMentalStateToward() error 1"));
return JNI_FALSE;
}
CreatureObject * creature = 0;
if (!JavaLibrary::getObject(mob, creature))
{
LOGC(ConfigServerGame::isAiLoggingEnabled(), "debug_ai", ("ScriptMethodsMentalStates::addToMentalStateToward() error 2"));
return JNI_FALSE;
}
NetworkId targetId(target);
if (!targetId)
{
LOGC(ConfigServerGame::isAiLoggingEnabled(), "debug_ai", ("ScriptMethodsMentalStates::addToMentalStateToward() error 3"));
return JNI_FALSE;
}
MentalStates::Value current = creature->getMentalStateToward(targetId, static_cast<MentalStates::Enumerator>(mentalState));
LOGC(ConfigServerGame::isAiLoggingEnabled(), "debug_ai", ("ScriptMethodsMentalStates::addToMentalStateToward() %s->%s state(%s) value(%.0f+%.0f)", creature->getNetworkId().getValueString().c_str(), targetId.getValueString().c_str(), CreatureObject::getMentalStateString(mentalState), current, value));
creature->setMentalStateToward(targetId, static_cast<MentalStates::Enumerator>(mentalState), static_cast<MentalStates::Value>(current + value));
return JNI_TRUE;
} // JavaLibrary::addToMentalState
示例3: 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
示例4: setMentalStateToward
/**
* Sets a creatue's mental state.
*
* @param env Java environment
* @param self class calling this function
* @param target id of creature to access
* @param mentalState mental state we are interested in
* @param value value to set the mental state to
*
* @return true on success, false on fail
*/
jboolean JNICALL ScriptMethodsMentalStatesNamespace::setMentalStateToward(JNIEnv *env, jobject self, jlong mob, jlong target, jint mentalState, jfloat value)
{
PROFILER_AUTO_BLOCK_DEFINE("setMentalStateToward");
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;
creature->setMentalStateToward(targetId,
static_cast<MentalStates::Enumerator>(mentalState),
static_cast<MentalStates::Value>(value));
return JNI_TRUE;
} // JavaLibrary::setAttrib
示例5: 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