本文整理汇总了C++中DISABLE_PHRASE函数的典型用法代码示例。如果您正苦于以下问题:C++ DISABLE_PHRASE函数的具体用法?C++ DISABLE_PHRASE怎么用?C++ DISABLE_PHRASE使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了DISABLE_PHRASE函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Trade
static void
Trade (RESPONSE_REF R)
{
if (!PLAYER_SAID (R, whats_the_sphere_again))
{
NPCPhrase (TRADE_FOR_SPHERE);
LastResponse = R;
}
else
{
NPCPhrase (SPHERE_IS);
DISABLE_PHRASE (whats_the_sphere_again);
}
Response (no_way, Sell);
Response (way, Sell);
if (PHRASE_ENABLED (whats_the_sphere_again))
{
Response (whats_the_sphere_again, Trade);
}
}
示例2: ConsoleShofixti
static void
ConsoleShofixti (RESPONSE_REF R)
{
if (PLAYER_SAID (R, dont_do_it))
{
NPCPhrase (YES_I_DO_IT);
DISABLE_PHRASE (dont_do_it);
}
else
NPCPhrase (VERY_SAD_KILL_SELF);
if (GET_GAME_STATE (MAIDENS_ON_SHIP))
{
Response (important_duty, GiveMaidens);
}
if (PHRASE_ENABLED (dont_do_it))
{
Response (dont_do_it, ConsoleShofixti);
}
Response (need_you_for_duty, ExitConversation);
Response (go_ahead, ExitConversation);
}
示例3: SpathiInfo
static void
SpathiInfo (RESPONSE_REF R)
{
BYTE InfoLeft;
InfoLeft = FALSE;
if (PLAYER_SAID (R, like_some_info))
NPCPhrase (WHAT_ABOUT);
else if (PLAYER_SAID (R, what_about_hierarchy))
{
NPCPhrase (ABOUT_HIERARCHY);
DISABLE_PHRASE (what_about_hierarchy);
}
else if (PLAYER_SAID (R, what_about_history))
{
NPCPhrase (ABOUT_HISTORY);
DISABLE_PHRASE (what_about_history);
}
else if (PLAYER_SAID (R, what_about_alliance))
{
NPCPhrase (ABOUT_ALLIANCE);
DISABLE_PHRASE (what_about_alliance);
}
else if (PLAYER_SAID (R, what_about_other))
{
NPCPhrase (ABOUT_OTHER);
DISABLE_PHRASE (what_about_other);
}
else if (PLAYER_SAID (R, what_about_precursors))
{
NPCPhrase (ABOUT_PRECURSORS);
DISABLE_PHRASE (what_about_precursors);
}
if (PHRASE_ENABLED (what_about_hierarchy))
{
InfoLeft = TRUE;
Response (what_about_hierarchy, SpathiInfo);
}
if (PHRASE_ENABLED (what_about_history))
{
InfoLeft = TRUE;
Response (what_about_history, SpathiInfo);
}
if (PHRASE_ENABLED (what_about_alliance))
{
InfoLeft = TRUE;
Response (what_about_alliance, SpathiInfo);
}
if (PHRASE_ENABLED (what_about_other))
{
InfoLeft = TRUE;
Response (what_about_other, SpathiInfo);
}
if (PHRASE_ENABLED (what_about_precursors))
{
InfoLeft = TRUE;
Response (what_about_precursors, SpathiInfo);
}
Response (enough_info, SpathiAllies);
if (!InfoLeft)
{
DISABLE_PHRASE (like_some_info);
}
}
示例4: ZoqFotIntro
static void
ZoqFotIntro (RESPONSE_REF R)
{
if (PLAYER_SAID (R, we_are_vindicator0))
{
NPCPhrase_cb (WE_GLAD0, &SelectAlienZOQ);
NPCPhrase_cb (WE_GLAD1, &SelectAlienPIK);
NPCPhrase_cb (WE_GLAD2, &SelectAlienZOQ);
NPCPhrase_cb (WE_GLAD3, &SelectAlienPIK);
NPCPhrase_cb (WE_GLAD4, &SelectAlienZOQ);
NPCPhrase_cb (WE_GLAD5, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
DISABLE_PHRASE (we_are_vindicator0);
}
else if (PLAYER_SAID (R, your_race))
{
NPCPhrase_cb (YEARS_AGO0, &SelectAlienZOQ);
NPCPhrase_cb (YEARS_AGO1, &SelectAlienPIK);
NPCPhrase_cb (YEARS_AGO2, &SelectAlienZOQ);
NPCPhrase_cb (YEARS_AGO3, &SelectAlienPIK);
NPCPhrase_cb (YEARS_AGO4, &SelectAlienZOQ);
NPCPhrase_cb (YEARS_AGO5, &SelectAlienPIK);
NPCPhrase_cb (YEARS_AGO6, &SelectAlienZOQ);
NPCPhrase_cb (YEARS_AGO7, &SelectAlienPIK);
NPCPhrase_cb (YEARS_AGO8, &SelectAlienZOQ);
NPCPhrase_cb (YEARS_AGO9, &SelectAlienPIK);
NPCPhrase_cb (YEARS_AGO10, &SelectAlienZOQ);
NPCPhrase_cb (YEARS_AGO11, &SelectAlienPIK);
NPCPhrase_cb (YEARS_AGO12, &SelectAlienZOQ);
NPCPhrase_cb (YEARS_AGO13, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
DISABLE_PHRASE (your_race);
}
else if (PLAYER_SAID (R, where_from))
{
NPCPhrase_cb (TRAVELED_FAR0, &SelectAlienZOQ);
NPCPhrase_cb (TRAVELED_FAR1, &SelectAlienPIK);
NPCPhrase_cb (TRAVELED_FAR2, &SelectAlienZOQ);
NPCPhrase_cb (TRAVELED_FAR3, &SelectAlienPIK);
NPCPhrase_cb (TRAVELED_FAR4, &SelectAlienZOQ);
NPCPhrase_cb (TRAVELED_FAR5, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
DISABLE_PHRASE (where_from);
}
else if (PLAYER_SAID (R, what_emergency))
{
NPCPhrase_cb (UNDER_ATTACK0, &SelectAlienZOQ);
NPCPhrase_cb (UNDER_ATTACK1, &SelectAlienPIK);
NPCPhrase_cb (UNDER_ATTACK2, &SelectAlienZOQ);
NPCPhrase_cb (UNDER_ATTACK3, &SelectAlienPIK);
NPCPhrase_cb (UNDER_ATTACK4, &SelectAlienZOQ);
NPCPhrase_cb (UNDER_ATTACK5, &SelectAlienPIK);
NPCPhrase_cb (UNDER_ATTACK6, &SelectAlienZOQ);
NPCPhrase_cb (UNDER_ATTACK7, &SelectAlienPIK);
NPCPhrase_cb (UNDER_ATTACK8, &SelectAlienZOQ);
NPCPhrase_cb (UNDER_ATTACK9, &SelectAlienPIK);
NPCPhrase_cb (UNDER_ATTACK10, &SelectAlienZOQ);
NPCPhrase_cb (UNDER_ATTACK11, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
DISABLE_PHRASE (what_emergency);
}
else if (PLAYER_SAID (R, tough_luck))
{
NPCPhrase_cb (NOT_HELPFUL0, &SelectAlienZOQ);
NPCPhrase_cb (NOT_HELPFUL1, &SelectAlienPIK);
NPCPhrase_cb (NOT_HELPFUL2, &SelectAlienZOQ);
NPCPhrase_cb (NOT_HELPFUL3, &SelectAlienPIK);
NPCPhrase_cb (NOT_HELPFUL4, &SelectAlienZOQ);
NPCPhrase_cb (NOT_HELPFUL5, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
DISABLE_PHRASE (tough_luck);
}
else if (PLAYER_SAID (R, what_look_like))
{
NPCPhrase_cb (LOOK_LIKE0, &SelectAlienZOQ);
NPCPhrase_cb (LOOK_LIKE1, &SelectAlienPIK);
NPCPhrase_cb (LOOK_LIKE2, &SelectAlienZOQ);
NPCPhrase_cb (LOOK_LIKE3, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
DISABLE_PHRASE (what_look_like);
}
if (PHRASE_ENABLED (your_race)
|| PHRASE_ENABLED (where_from)
|| PHRASE_ENABLED (what_emergency))
{
if (PHRASE_ENABLED (your_race))
Response (your_race, ZoqFotIntro);
if (PHRASE_ENABLED (where_from))
Response (where_from, ZoqFotIntro);
if (PHRASE_ENABLED (what_emergency))
Response (what_emergency, ZoqFotIntro);
}
else
//.........这里部分代码省略.........
示例5: FriendlySpaceArilou
static void
FriendlySpaceArilou (RESPONSE_REF R)
{
BYTE NumVisits;
if (PLAYER_SAID (R, confused_by_hello))
NPCPhrase (CONFUSED_RESPONSE);
else if (PLAYER_SAID (R, happy_by_hello))
NPCPhrase (HAPPY_RESPONSE);
else if (PLAYER_SAID (R, miffed_by_hello))
NPCPhrase (MIFFED_RESPONSE);
else if (PLAYER_SAID (R, whats_up_1)
|| PLAYER_SAID (R, whats_up_2))
{
NumVisits = GET_GAME_STATE (ARILOU_INFO);
switch (NumVisits++)
{
case 0:
NPCPhrase (GENERAL_INFO_1);
break;
case 1:
NPCPhrase (GENERAL_INFO_2);
break;
case 2:
NPCPhrase (GENERAL_INFO_3);
break;
case 3:
NPCPhrase (GENERAL_INFO_4);
--NumVisits;
break;
}
SET_GAME_STATE (ARILOU_INFO, NumVisits);
DISABLE_PHRASE (whats_up_2);
}
else if (PLAYER_SAID (R, why_you_here))
{
NPCPhrase (LEARN_THINGS);
SET_GAME_STATE (ARILOU_STACK_5, 1);
}
else if (PLAYER_SAID (R, what_things))
{
NPCPhrase (THESE_THINGS);
SET_GAME_STATE (ARILOU_STACK_5, 2);
}
else if (PLAYER_SAID (R, why_do_it))
{
NPCPhrase (DO_IT_BECAUSE);
SET_GAME_STATE (ARILOU_STACK_5, 3);
}
else if (PLAYER_SAID (R, give_me_info_1)
|| PLAYER_SAID (R, give_me_info_2))
{
NumVisits = GET_GAME_STATE (ARILOU_HINTS);
switch (NumVisits++)
{
case 0:
NPCPhrase (ARILOU_HINTS_1);
break;
case 1:
NPCPhrase (ARILOU_HINTS_2);
if (GET_GAME_STATE (KNOW_ABOUT_SHATTERED) < 2)
{
SET_GAME_STATE (KNOW_ABOUT_SHATTERED, 2);
}
break;
case 2:
NPCPhrase (ARILOU_HINTS_3);
SET_GAME_STATE (KNOW_URQUAN_STORY, 1);
SET_GAME_STATE (KNOW_KOHR_AH_STORY, 1);
break;
case 3:
NPCPhrase (ARILOU_HINTS_4);
--NumVisits;
break;
}
SET_GAME_STATE (ARILOU_HINTS, NumVisits);
DISABLE_PHRASE (give_me_info_2);
}
switch (GET_GAME_STATE (ARILOU_STACK_5))
{
case 0:
Response (why_you_here, FriendlySpaceArilou);
break;
case 1:
Response (what_things, FriendlySpaceArilou);
break;
case 2:
Response (why_do_it, FriendlySpaceArilou);
break;
}
if (PHRASE_ENABLED (whats_up_2))
{
if (GET_GAME_STATE (ARILOU_INFO) == 0)
Response (whats_up_1, FriendlySpaceArilou);
//.........这里部分代码省略.........
示例6: SlylandroInfo
static void
SlylandroInfo (RESPONSE_REF R)
{
BYTE InfoLeft;
if (PLAYER_SAID (R, like_more_about_you))
{
NPCPhrase (SURE_KNOW_WHAT);
}
else if (PLAYER_SAID (R, what_about_home))
{
NPCPhrase (ABOUT_HOME);
DISABLE_PHRASE (what_about_home);
}
else if (PLAYER_SAID (R, what_about_culture))
{
NPCPhrase (ABOUT_CULTURE);
DISABLE_PHRASE (what_about_culture);
}
else if (PLAYER_SAID (R, what_about_history))
{
NPCPhrase (ABOUT_HISTORY);
DISABLE_PHRASE (what_about_history);
}
else if (PLAYER_SAID (R, what_about_biology))
{
NPCPhrase (ABOUT_BIOLOGY);
DISABLE_PHRASE (what_about_biology);
}
InfoLeft = FALSE;
if (PHRASE_ENABLED (what_about_home))
{
InfoLeft = TRUE;
Response (what_about_home, SlylandroInfo);
}
if (PHRASE_ENABLED (what_about_culture))
{
InfoLeft = TRUE;
Response (what_about_culture, SlylandroInfo);
}
if (PHRASE_ENABLED (what_about_history))
{
InfoLeft = TRUE;
Response (what_about_history, SlylandroInfo);
}
if (PHRASE_ENABLED (what_about_biology))
{
InfoLeft = TRUE;
Response (what_about_biology, SlylandroInfo);
}
Response (enough_info, HomeWorld);
if (!InfoLeft)
{
DISABLE_PHRASE (like_more_about_you);
}
}
示例7: ProbeInfo
//.........这里部分代码省略.........
SET_GAME_STATE (SLYLANDRO_STACK6, 1);
}
else if (PLAYER_SAID (R, talk_more_probe_attack))
{
ProbeFunction (R);
return;
}
else if (PLAYER_SAID (R, where_probes_from))
{
NPCPhrase (PROBES_FROM_MELNORME);
LastStack = 1;
SET_GAME_STATE (SLYLANDRO_STACK7, 1);
}
else if (PLAYER_SAID (R, why_sell))
{
NPCPhrase (SELL_FOR_INFO);
LastStack = 1;
SET_GAME_STATE (SLYLANDRO_STACK7, 2);
}
else if (PLAYER_SAID (R, how_long_ago))
{
NPCPhrase (FIFTY_THOUSAND_ROTATIONS);
SET_GAME_STATE (SLYLANDRO_STACK7, 3);
}
else if (PLAYER_SAID (R, whats_probes_mission))
{
NPCPhrase (SEEK_OUT_NEW_LIFE);
LastStack = 2;
SET_GAME_STATE (SLYLANDRO_STACK8, 1);
}
else if (PLAYER_SAID (R, if_only_one))
{
NPCPhrase (THEY_REPLICATE);
SET_GAME_STATE (SLYLANDRO_STACK8, 2);
}
else if (PLAYER_SAID (R, enough_problem))
NPCPhrase (OK_ENOUGH_PROBLEM);
if (!GET_GAME_STATE (SLYLANDRO_KNOW_BROKEN)
&& GET_GAME_STATE (PROBE_EXHIBITED_BUG))
{
switch (GET_GAME_STATE (SLYLANDRO_STACK6))
{
case 0:
pStr[0] = why_probe_always_attack;
break;
case 1:
pStr[0] = talk_more_probe_attack;
break;
}
}
switch (GET_GAME_STATE (SLYLANDRO_STACK7))
{
case 0:
pStr[1] = where_probes_from;
break;
case 1:
pStr[1] = why_sell;
break;
case 2:
pStr[1] = how_long_ago;
break;
}
switch (GET_GAME_STATE (SLYLANDRO_STACK8))
{
case 0:
pStr[2] = whats_probes_mission;
break;
case 1:
pStr[2] = if_only_one;
break;
}
InfoLeft = FALSE;
if (pStr[LastStack])
{
InfoLeft = TRUE;
Response (pStr[LastStack], ProbeInfo);
}
for (i = 0; i < 3; ++i)
{
if (i != LastStack && pStr[i])
{
InfoLeft = TRUE;
Response (pStr[i], ProbeInfo);
}
}
Response (enough_probe, HomeWorld);
if (!InfoLeft)
{
DISABLE_PHRASE (know_more_probe);
}
}
示例8: AllianceOffer
static void
AllianceOffer (RESPONSE_REF R)
{
if (PLAYER_SAID (R, misunderstanding))
{
NPCPhrase (JUST_MISUNDERSTANDING);
XFormColorMap (GetColorMapAddress (
SetAbsColorMapIndex (CommData.AlienColorMap, 1)
), ONE_SECOND / 4);
SET_GAME_STATE (SPATHI_MANNER, 3);
SET_GAME_STATE (SPATHI_VISITS, 0);
}
else if (PLAYER_SAID (R, we_come_in_peace))
NPCPhrase (OF_COURSE);
else if (PLAYER_SAID (R, hand_in_friendship))
{
NPCPhrase (TOO_AFRAID);
DISABLE_PHRASE (hand_in_friendship);
}
else if (PLAYER_SAID (R, stronger))
{
NPCPhrase (YOURE_NOT);
DISABLE_PHRASE (stronger);
}
else if (PLAYER_SAID (R, yes_we_are))
{
NPCPhrase (NO_YOURE_NOT);
DISABLE_PHRASE (yes_we_are);
}
else if (PLAYER_SAID (R, share_info))
{
NPCPhrase (NO_INFO);
DISABLE_PHRASE (share_info);
}
else if (PLAYER_SAID (R, give_us_resources))
{
NPCPhrase (NO_RESOURCES);
DISABLE_PHRASE (give_us_resources);
}
if (PHRASE_ENABLED (hand_in_friendship))
Response (hand_in_friendship, AllianceOffer);
else if (PHRASE_ENABLED (stronger))
Response (stronger, AllianceOffer);
else if (PHRASE_ENABLED (yes_we_are))
Response (yes_we_are, AllianceOffer);
else
{
Response (how_prove, LearnQuest);
}
if (PHRASE_ENABLED (share_info))
Response (share_info, AllianceOffer);
if (PHRASE_ENABLED (give_us_resources))
Response (give_us_resources, AllianceOffer);
}
示例9: ZoqFotHome
static void
ZoqFotHome (RESPONSE_REF R)
{
BYTE NumVisits;
if (PLAYER_SAID (R, whats_up_homeworld))
{
NumVisits = GET_GAME_STATE (ZOQFOT_INFO);
switch (NumVisits++)
{
case 0:
NPCPhrase_cb (GENERAL_INFO_10, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_11, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_12, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_13, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
break;
case 1:
NPCPhrase_cb (GENERAL_INFO_20, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_21, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_22, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_23, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_24, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_25, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_26, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_27, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
break;
case 2:
NPCPhrase_cb (GENERAL_INFO_30, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_31, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_32, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_33, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_34, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_35, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
break;
case 3:
NPCPhrase_cb (GENERAL_INFO_40, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_41, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_42, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_43, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_44, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_45, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_46, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_47, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_48, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_49, &SelectAlienPIK);
NPCPhrase_cb (GENERAL_INFO_410, &SelectAlienZOQ);
NPCPhrase_cb (GENERAL_INFO_411, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
--NumVisits;
break;
}
SET_GAME_STATE (ZOQFOT_INFO, NumVisits);
DISABLE_PHRASE (whats_up_homeworld);
}
else if (PLAYER_SAID (R, any_war_news))
{
#define UTWIG_BUY_TIME (1 << 0)
#define KOHR_AH_WIN (1 << 1)
#define URQUAN_LOSE (1 << 2)
#define KOHR_AH_KILL (1 << 3)
#define KNOW_ALL (UTWIG_BUY_TIME | KOHR_AH_WIN | URQUAN_LOSE | KOHR_AH_KILL)
BYTE KnowMask;
NumVisits = GET_GAME_STATE (UTWIG_SUPOX_MISSION);
KnowMask = GET_GAME_STATE (ZOQFOT_KNOW_MASK);
if (!(KnowMask & KOHR_AH_KILL) && GET_GAME_STATE (KOHR_AH_FRENZY))
{
NPCPhrase_cb (KOHRAH_FRENZY0, &SelectAlienZOQ);
NPCPhrase_cb (KOHRAH_FRENZY1, &SelectAlienPIK);
NPCPhrase_cb (KOHRAH_FRENZY2, &SelectAlienZOQ);
NPCPhrase_cb (KOHRAH_FRENZY3, &SelectAlienPIK);
NPCPhrase_cb (KOHRAH_FRENZY4, &SelectAlienZOQ);
NPCPhrase_cb (KOHRAH_FRENZY5, &SelectAlienPIK);
NPCPhrase_cb (KOHRAH_FRENZY6, &SelectAlienZOQ);
NPCPhrase_cb (KOHRAH_FRENZY7, &SelectAlienPIK);
NPCPhrase_cb (KOHRAH_FRENZY8, &SelectAlienZOQ);
NPCPhrase_cb (KOHRAH_FRENZY9, &SelectAlienPIK);
NPCPhrase_cb (KOHRAH_FRENZY10, &SelectAlienZOQ);
NPCPhrase_cb (KOHRAH_FRENZY11, &SelectAlienPIK);
ZFPTalkSegue ((COUNT)~0);
KnowMask = KNOW_ALL;
}
else if (!(KnowMask & UTWIG_BUY_TIME)
&& NumVisits > 0 && NumVisits < 5)
{
NPCPhrase_cb (UTWIG_DELAY0, &SelectAlienZOQ);
NPCPhrase_cb (UTWIG_DELAY1, &SelectAlienPIK);
NPCPhrase_cb (UTWIG_DELAY2, &SelectAlienZOQ);
NPCPhrase_cb (UTWIG_DELAY3, &SelectAlienPIK);
NPCPhrase_cb (UTWIG_DELAY4, &SelectAlienZOQ);
NPCPhrase_cb (UTWIG_DELAY5, &SelectAlienPIK);
NPCPhrase_cb (UTWIG_DELAY6, &SelectAlienZOQ);
NPCPhrase_cb (UTWIG_DELAY7, &SelectAlienPIK);
NPCPhrase_cb (UTWIG_DELAY8, &SelectAlienZOQ);
NPCPhrase_cb (UTWIG_DELAY9, &SelectAlienPIK);
//.........这里部分代码省略.........
示例10: UmgahReward
static void
UmgahReward (RESPONSE_REF R)
{
if (PLAYER_SAID (R, what_before_tpet))
{
NPCPhrase (TRKD_SPATHI_AND_ILWRATH);
DISABLE_PHRASE (what_before_tpet);
}
else if (PLAYER_SAID (R, where_caster))
{
NPCPhrase (SPATHI_TOOK_THEM);
DISABLE_PHRASE (where_caster);
}
else if (PLAYER_SAID (R, owe_me_big_time))
{
NPCPhrase (THANKS);
GLOBAL_SIS (TotalBioMass) += 1000 / BIO_CREDIT_VALUE;
DISABLE_PHRASE (owe_me_big_time);
DISABLE_PHRASE (our_largesse);
}
else if (PLAYER_SAID (R, our_largesse))
{
NPCPhrase (GIVE_LIFEDATA);
GLOBAL_SIS (TotalBioMass) += 1000 / BIO_CREDIT_VALUE;
DISABLE_PHRASE (our_largesse);
DISABLE_PHRASE (owe_me_big_time);
}
else if (PLAYER_SAID (R, what_do_with_tpet))
{
NPCPhrase (TRICK_URQUAN);
DISABLE_PHRASE (what_do_with_tpet);
}
else if (PLAYER_SAID (R, any_jokes))
{
NPCPhrase (SURE);
DISABLE_PHRASE (any_jokes);
}
else if (PLAYER_SAID (R, so_what_for_now))
{
NPCPhrase (DO_THIS_NOW);
DISABLE_PHRASE (so_what_for_now);
}
if (!GET_GAME_STATE (MET_NORMAL_UMGAH))
{
if (PHRASE_ENABLED (what_before_tpet))
Response (what_before_tpet, UmgahReward);
else if (PHRASE_ENABLED (where_caster))
Response (where_caster, UmgahReward);
}
if (PHRASE_ENABLED (owe_me_big_time))
{
Response (owe_me_big_time, UmgahReward);
Response (our_largesse, UmgahReward);
}
if (PHRASE_ENABLED (what_do_with_tpet))
Response (what_do_with_tpet, UmgahReward);
else if (PHRASE_ENABLED (any_jokes) && GET_GAME_STATE (UMGAH_MENTIONED_TRICKS) < 2)
Response (any_jokes, UmgahReward);
if (PHRASE_ENABLED (so_what_for_now))
Response (so_what_for_now, UmgahReward);
Response (bye_post_zombie, CombatIsInevitable);
}
示例11: UrquanHypno
static void
UrquanHypno (RESPONSE_REF R)
{
if (GET_GAME_STATE (URQUAN_HYPNO_VISITS) == 0)
{
if (R == 0)
NPCPhrase (INIT_URQUAN_WAKE_UP);
else if (PLAYER_SAID (R, where_am_i))
{
NPCPhrase (YOU_ARE_HERE);
DISABLE_PHRASE (where_am_i);
}
else if (PLAYER_SAID (R, why_does_my_head_hurt))
{
NPCPhrase (HURTS_BECAUSE);
DISABLE_PHRASE (why_does_my_head_hurt);
}
else if (PLAYER_SAID (R, what_about_2_weeks))
{
NPCPhrase (ABOUT_2_WEEKS);
DISABLE_PHRASE (what_about_2_weeks);
}
if (PHRASE_ENABLED (where_am_i))
Response (where_am_i, UrquanHypno);
if (PHRASE_ENABLED (why_does_my_head_hurt))
Response (why_does_my_head_hurt, UrquanHypno);
if (PHRASE_ENABLED (what_about_2_weeks))
Response (what_about_2_weeks, UrquanHypno);
Response (compulsion, MentionCompulsion);
Response (bye_init_hypno, CombatIsInevitable);
}
else
{
if (R == 0)
NPCPhrase (SUBSEQUENT_URQUAN_WAKE_UP);
else if (PLAYER_SAID (R, uh_oh))
{
NPCPhrase (NO_UH_OH);
DISABLE_PHRASE (uh_oh);
}
else if (PLAYER_SAID (R, stop_meeting))
{
NPCPhrase (NO_STOP_MEETING);
DISABLE_PHRASE (stop_meeting);
}
if (PHRASE_ENABLED (uh_oh))
Response (uh_oh, UrquanHypno);
if (PHRASE_ENABLED (stop_meeting))
Response (stop_meeting, UrquanHypno);
if (!GET_GAME_STATE (MENTIONED_PET_COMPULSION))
{
Response (compulsion, MentionCompulsion);
}
Response (bye_sub_hypno, CombatIsInevitable);
}
}
示例12: BombWorld
static void
BombWorld (RESPONSE_REF R)
{
BYTE LastStack;
RESPONSE_REF pStr[2];
LastStack = 0;
pStr[0] = pStr[1] = 0;
if (PLAYER_SAID (R, why_you_here))
{
NPCPhrase (WE_GUARD_BOMB);
SET_GAME_STATE (BOMB_STACK1, 1);
}
else if (PLAYER_SAID (R, what_about_bomb))
{
NPCPhrase (ABOUT_BOMB);
SET_GAME_STATE (BOMB_STACK1, 2);
}
else if (PLAYER_SAID (R, give_us_bomb_or_die))
{
NPCPhrase (GUARDS_WARN);
SET_GAME_STATE (BOMB_STACK1, 3);
}
else if (PLAYER_SAID (R, demand_bomb))
{
NPCPhrase (GUARDS_FIGHT);
setSegue (Segue_hostile);
SET_GAME_STATE (UTWIG_HOSTILE, 1);
SET_GAME_STATE (UTWIG_INFO, 0);
SET_GAME_STATE (UTWIG_HOME_VISITS, 0);
SET_GAME_STATE (UTWIG_VISITS, 0);
SET_GAME_STATE (BOMB_VISITS, 0);
return;
}
else if (PLAYER_SAID (R, may_we_have_bomb))
{
NPCPhrase (NO_BOMB);
LastStack = 1;
SET_GAME_STATE (BOMB_STACK2, 1);
}
else if (PLAYER_SAID (R, please))
{
NPCPhrase (SORRY_NO_BOMB);
SET_GAME_STATE (BOMB_STACK2, 2);
}
else if (PLAYER_SAID (R, whats_up_bomb))
{
if (GET_GAME_STATE (BOMB_INFO))
NPCPhrase (GENERAL_INFO_BOMB_2);
else
{
NPCPhrase (GENERAL_INFO_BOMB_1);
SET_GAME_STATE (BOMB_INFO, 1);
}
DISABLE_PHRASE (whats_up_bomb);
}
switch (GET_GAME_STATE (BOMB_STACK2))
{
case 0:
pStr[1] = may_we_have_bomb;
break;
case 1:
pStr[1] = please;
break;
}
switch (GET_GAME_STATE (BOMB_STACK1))
{
case 0:
pStr[0] = why_you_here;
pStr[1] = 0;
break;
case 1:
pStr[0] = what_about_bomb;
pStr[1] = 0;
break;
case 2:
pStr[0] = give_us_bomb_or_die;
break;
case 3:
pStr[0] = demand_bomb;
break;
}
if (pStr[LastStack])
Response (pStr[LastStack], BombWorld);
LastStack ^= 1;
if (pStr[LastStack])
Response (pStr[LastStack], BombWorld);
if (PHRASE_ENABLED (whats_up_bomb) && (GET_GAME_STATE (BOMB_STACK1) > 1))
Response (whats_up_bomb, BombWorld);
//.........这里部分代码省略.........
示例13: Zombies
static void
Zombies (RESPONSE_REF R)
{
if (GET_GAME_STATE (MET_NORMAL_UMGAH))
{
if (PLAYER_SAID (R, whats_up_zombies))
{
NPCPhrase (GENERAL_INFO_ZOMBIE);
DISABLE_PHRASE (whats_up_zombies);
}
else if (PLAYER_SAID (R, how_goes_tpet))
{
NPCPhrase (WHAT_TPET);
DISABLE_PHRASE (how_goes_tpet);
}
else if (PLAYER_SAID (R, you_told_us))
{
NPCPhrase (SADLY_IT_DIED);
DISABLE_PHRASE (you_told_us);
}
if (PHRASE_ENABLED (whats_up_zombies) && PHRASE_ENABLED (how_goes_tpet))
Response (whats_up_zombies, Zombies);
if (PHRASE_ENABLED (how_goes_tpet))
Response (how_goes_tpet, Zombies);
else if (PHRASE_ENABLED (you_told_us))
Response (you_told_us, Zombies);
else
{
Response (dont_believe, CombatIsInevitable);
}
if (PHRASE_ENABLED (whats_up_zombies) && !PHRASE_ENABLED (how_goes_tpet))
Response (whats_up_zombies, Zombies);
Response (threat, CombatIsInevitable);
Response (bye_unknown, CombatIsInevitable);
}
else
{
BYTE i, LastStack;
RESPONSE_REF pStr[4];
LastStack = 0;
pStr[0] = pStr[1] = pStr[2] = pStr[3] = 0;
if (PLAYER_SAID (R, evil_blobbies))
{
NPCPhrase (YES_VERY_EVIL);
DISABLE_PHRASE (evil_blobbies);
LastStack = 0;
}
else if (PLAYER_SAID (R, we_vindicator0))
{
NPCPhrase (GOOD_FOR_YOU_1);
DISABLE_PHRASE (we_vindicator0);
LastStack = 1;
}
else if (PLAYER_SAID (R, come_in_peace))
{
NPCPhrase (GOOD_FOR_YOU_2);
DISABLE_PHRASE (come_in_peace);
LastStack = 1;
}
else if (PLAYER_SAID (R, know_any_jokes))
{
NPCPhrase (JOKE_1);
DISABLE_PHRASE (know_any_jokes);
LastStack = 2;
}
else if (PLAYER_SAID (R, better_joke))
{
NPCPhrase (JOKE_2);
DISABLE_PHRASE (better_joke);
LastStack = 2;
}
else if (PLAYER_SAID (R, not_very_funny))
{
NPCPhrase (YES_WE_ARE);
DISABLE_PHRASE (not_very_funny);
LastStack = 2;
}
else if (PLAYER_SAID (R, what_about_tpet))
{
NPCPhrase (WHAT_TPET);
DISABLE_PHRASE (what_about_tpet);
LastStack = 3;
}
else if (PLAYER_SAID (R, give_up_or_die))
{
NPCPhrase (NOT_GIVE_UP);
SET_GAME_STATE (BATTLE_SEGUE, 1);
//.........这里部分代码省略.........
示例14: AlliedHome
static void
AlliedHome (RESPONSE_REF R)
{
BYTE NumVisits, News;
News = GET_GAME_STATE (UTWIG_WAR_NEWS);
NumVisits = GET_GAME_STATE (UTWIG_SUPOX_MISSION);
if (PLAYER_SAID (R, how_went_war))
{
NPCPhrase (ABOUT_BATTLE);
News |= (1 << 0);
}
else if (PLAYER_SAID (R, how_goes_war))
{
if (NumVisits == 1)
{
NPCPhrase (FLEET_ON_WAY);
SET_GAME_STATE (UTWIG_WAR_NEWS, 1);
}
else switch (GET_GAME_STATE (UTWIG_WAR_NEWS))
{
case 0:
NPCPhrase (BATTLE_HAPPENS_1);
News = 1;
break;
case 1:
NPCPhrase (BATTLE_HAPPENS_2);
News = 2;
break;
}
DISABLE_PHRASE (how_goes_war);
}
else if (PLAYER_SAID (R, learn_new_info))
{
if (NumVisits < 5)
NPCPhrase (NO_NEW_INFO);
else
{
NPCPhrase (SAMATRA);
News |= (1 << 1);
}
DISABLE_PHRASE (learn_new_info);
}
else if (PLAYER_SAID (R, what_now_homeworld))
{
if (NumVisits < 5)
NPCPhrase (UP_TO_YOU);
else
NPCPhrase (HOPE_KILL_EACH_OTHER);
DISABLE_PHRASE (what_now_homeworld);
}
else if (PLAYER_SAID (R, how_is_ultron))
{
NPCPhrase (ULTRON_IS_GREAT);
DISABLE_PHRASE (how_is_ultron);
}
SET_GAME_STATE (UTWIG_WAR_NEWS, News);
if (NumVisits >= 5)
{
if (!(News & (1 << 0)))
Response (how_went_war, AlliedHome);
}
else if (PHRASE_ENABLED (how_goes_war)
&& ((NumVisits == 1 && News == 0)
|| (NumVisits && News < 2)))
Response (how_goes_war, AlliedHome);
if (PHRASE_ENABLED (learn_new_info))
Response (learn_new_info, AlliedHome);
if (PHRASE_ENABLED (what_now_homeworld))
Response (what_now_homeworld, AlliedHome);
if (PHRASE_ENABLED (how_is_ultron))
Response (how_is_ultron, AlliedHome);
if (NumVisits == 0 && EscortFeasibilityStudy (UTWIG_SHIP) != 0)
Response (can_you_help, ExitConversation);
Response (bye_allied_homeworld, ExitConversation);
}
示例15: GodsSpeak
static void
GodsSpeak (RESPONSE_REF R)
{
BYTE NumVisits;
if (R == 0)
{
if (GET_GAME_STATE (ILWRATH_FIGHT_THRADDASH))
NPCPhrase (GLORIOUS_WORSHIP);
else if (GET_GAME_STATE (ILWRATH_DECEIVED))
NPCPhrase (ON_WAY);
else
{
NumVisits = GET_GAME_STATE (ILWRATH_GODS_SPOKEN);
switch (NumVisits++)
{
case 0:
NPCPhrase (ILWRATH_BELIEVE);
break;
case 1:
NPCPhrase (GODS_RETURN_1);
break;
case 2:
NPCPhrase (GODS_RETURN_2);
break;
case 3:
NPCPhrase (GODS_RETURN_3);
--NumVisits;
break;
}
SET_GAME_STATE (ILWRATH_GODS_SPOKEN, NumVisits);
}
}
else if (PLAYER_SAID (R, go_kill_thraddash))
{
NPCPhrase (OK_KILL_THRADDASH);
SET_GAME_STATE (ILWRATH_DECEIVED, 1);
AddEvent (RELATIVE_EVENT, 0, 0, 0, ADVANCE_ILWRATH_MISSION);
}
else if (PLAYER_SAID (R, worship_us))
{
NumVisits = GET_GAME_STATE (ILWRATH_WORSHIP);
switch (NumVisits++)
{
case 0:
NPCPhrase (WE_WORSHIP_1);
break;
case 1:
NPCPhrase (WE_WORSHIP_2);
break;
case 2:
NPCPhrase (WE_WORSHIP_3);
--NumVisits;
break;
}
SET_GAME_STATE (ILWRATH_WORSHIP, NumVisits);
DISABLE_PHRASE (worship_us);
}
else if (PLAYER_SAID (R, enough_orders))
NPCPhrase (NEVER_ENOUGH);
if (!GET_GAME_STATE (ILWRATH_DECEIVED))
Response (go_kill_thraddash, GodsSpeak);
if (PHRASE_ENABLED (worship_us))
Response (worship_us, GodsSpeak);
if (PHRASE_ENABLED (other_divine_orders))
{
Response (other_divine_orders, GodsOrder);
}
Response (bye_gods, CombatIsInevitable);
}