Spoiler
[codebox]
[anyone|plyr,"supported_pretender_talk", [],
"What do you think about our progress so far?", "pretender_progress",[]],
[anyone,"pretender_progress", [
(assign, reg11, 0),(assign, reg13, 0),(assign, reg14, 0),(assign, reg15, 0),
(assign, reg21, 0),(assign, reg23, 0),(assign, reg24, 0),(assign, reg25, 0),
(try_for_range, ":troop_no", active_npcs_begin, active_npcs_end),
(troop_slot_eq, ":troop_no", slot_troop_occupation, slto_kingdom_hero),
(store_troop_faction, ":troop_faction", ":troop_no"),
(try_begin),
(eq, ":troop_faction", "fac_player_supporters_faction"),
(neq, ":troop_no", "trp_player"),
(neq, ":troop_no", "$supported_pretender"),
(val_add, reg11, 1),
(else_try),
(eq, ":troop_faction", "$supported_pretender_old_faction"),
(neg|faction_slot_eq, "$supported_pretender_old_faction", slot_faction_leader, ":troop_no"),
(val_add, reg21, 1),
(try_end),
(try_end),
(try_for_range, ":center_no", centers_begin, centers_end),
(store_faction_of_party, ":center_faction", ":center_no"),
(try_begin),
(eq, ":center_faction", "fac_player_supporters_faction"),
(try_begin),
(party_slot_eq, ":center_no", slot_party_type, spt_town),
(val_add, reg13, 1),
(else_try),
(party_slot_eq, ":center_no", slot_party_type, spt_castle),
(val_add, reg14, 1),
(else_try),
(party_slot_eq, ":center_no", slot_party_type, spt_village),
(val_add, reg15, 1),
(try_end),
(else_try),
(eq, ":center_faction", "$supported_pretender_old_faction"),
(try_begin),
(party_slot_eq, ":center_no", slot_party_type, spt_town),
(val_add, reg23, 1),
(else_try),
(party_slot_eq, ":center_no", slot_party_type, spt_castle),
(val_add, reg24, 1),
(else_try),
(party_slot_eq, ":center_no", slot_party_type, spt_village),
(val_add, reg25, 1),
(try_end),
(try_end),
(try_end),
(store_add, reg19, reg13, reg14),
(val_add, reg19, reg15),
(store_add, reg29, reg23, reg24),
(val_add, reg29, reg25),
(store_add, ":our_score", reg13, reg14),
(val_add, ":our_score", reg11),
(store_add, ":their_score", reg23, reg24),
(val_add, ":their_score", reg21),
(store_add, ":total_score", ":our_score", ":their_score"),
(val_mul, ":our_score", 100),
(store_div, ":our_ratio", ":our_score", ":total_score"),
(try_begin),
(lt, ":our_ratio", 10),
(str_store_string, s30, "@we have made very little progress so far"),
(else_try),
(lt, ":our_ratio", 30),
(str_store_string, s30, "@we have suceeded in gaining some ground, but we still have a long way to go"),
(else_try),
(lt, ":our_ratio", 50),
(str_store_string, s30, "@we have become a significant force, and we have an even chance of victory"),
(else_try),
(lt, ":our_ratio", 75),
(str_store_string, s30, "@we are winning the war, but our enemies are still holding on."),
(else_try),
(str_store_string, s30, "@we are on the verge of victory. The remaining enemies pose no threat, but we still need to hunt them down."),
(try_end),
(faction_get_slot, ":enemy_king", "$supported_pretender_old_faction", slot_faction_leader),
(str_store_troop_name, s9, ":enemy_king"),
],
"{reg11?We have {reg11} lords on our side:We have no lord with us yet},\
whereas {reg21?{s9} still has {reg21} lords supporting him:{s9} has no loyal lords left}.\
{reg19?We control {reg13?{reg13} towns:} {reg14?{reg14} castles:} {reg15?and {reg15} villages:}:We don#msg135201t control any settlements},\
while {reg29?they have {reg23?{reg23} towns:} {reg24?{reg24} castles:} {reg25?and {reg25} villages:}:they have no remaining settlements}.\
Overall, {s30}.", "pretender_progress_2",[]],
[/codebox]
Spoiler
[codebox]
INSTANCE Info_Diego_JoinAnalyze(C_INFO)
{
npc = PC_Thief;
nr = 800;
condition = Info_Diego_JoinAnalyze_Condition;
information = Info_Diego_JoinAnalyze_Info;
permanent = 1;
description = "Jak tam z moją opinią w Obozie?";
};
FUNC INT Info_Diego_JoinAnalyze_Condition()
{
if Npc_KnowsInfo(hero,Info_Diego_Rules)
&& (Npc_GetTrueGuild(hero) == GIL_NONE)
&& (oldHeroGuild == 0)
{
return 1;
};
};
FUNC VOID Info_Diego_JoinAnalyze_Info()
{
AI_Output(hero, self,"Info_Diego_JoinAnalyze_15_00"); //Jak tam z moją opinią w Obozie?
AI_Output(self, hero,"Info_Diego_JoinAnalyze_11_01"); //Rozmawiałem z kilkoma ludźmi...
AI_Output(hero, self,"Info_Diego_JoinAnalyze_15_02"); //I?
// -----------------------------------------------------------
Points_OC = 0;
// -----------------------------------------------------------
if (Scatty_ChargeKirgo == LOG_SUCCESS)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Scatty_11_01"); //Scatty powiedział mi, że pokonałeś Kirgo.
Points_OC = Points_OC + 2;
}
else if (Scatty_ChargeKirgo == LOG_FAILED)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Scatty_11_02"); //Scatty powiedział mi, że pozwoliłeś Kirgo spuścić sobie baty. Chyba nie jest tobą zachwycony.
Points_OC = Points_OC - 1;
}
else if (Scatty_ChargeKirgo == LOG_RUNNING)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Scatty_11_03"); //Scatty powiedział mi, że nie może się doczekać na twoją walkę z Kirgo.
};
if (Scatty_ChargeKharim == LOG_FAILED)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Scatty_11_04"); //Ale był pod wrażeniem twojej śmiałości. Nie każdy miałby odwagę, żeby wyzwać Kharima. Choćby nawet z nim przegrał.
Points_OC = Points_OC + 2;
}
else if (Scatty_ChargeKharim == LOG_SUCCESS)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Scatty_11_05"); //Ale był pod wielkim wrażeniem twojej walki z Kharimem. Bez przerwy opowiada jaki to z ciebie wojownik.
Points_OC = Points_OC + 5;
}
else if (Scatty_ChargeKharim == LOG_RUNNING)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Scatty_11_06"); //I nie może się doczekać, kiedy staniesz do walki z Kharimem.
};
// -----------------------------------------------------------
if (Whistler_BuyMySword == LOG_SUCCESS)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Whistler_11_01"); //Świstak opowiedział mi o tej historii z Fiskiem... Cóż, na twoim miejscu wziąłbym tę rudę i dał nogę, ale tak, czy inaczej - Świstak chyba bardzo cię polubił.
Points_OC = Points_OC + 3;
}
else if ( (Whistler_BuyMySword == LOG_FAILED) || ( (Whistler_BuyMySword==LOG_RUNNING)&&(Whistler_BuyMySword_Day<=(Wld_GetDay()-2)) ) )
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Whistler_11_02"); //Rozmawiałem ze Świstakiem. Zwiałeś z jego rudą, cwaniaku! Muszę przyznać, że śmiałości ci nie brakuje!
Points_OC = Points_OC + 2;
}
else if (Whistler_BuyMySword == LOG_RUNNING)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Whistler_11_03"); //Świstak czeka na swój miecz. Zdecyduj się wreszcie czy zamierzasz mu go dać, czy nie. W przeciwnym wypadku może pomyśleć, że zwiałeś z jego rudą!
};
// -----------------------------------------------------------
if (Sly_LostNek == LOG_SUCCESS)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Sly_11_01"); //Zły powiedział mi, że znalazłeś Neka. Wydawał się być bardzo zadowolony.
Points_OC = Points_OC + 4;
}
else if (Sly_LostNek == LOG_RUNNING)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Sly_11_02"); //Moim zdaniem Zły myli się co do Neka. Był uciążliwy, to fakt, ale nie wierzę, żeby zdezerterował do Nowego Obozu.
};
// -----------------------------------------------------------
if (Fingers_Learnt == LOG_RUNNING)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Fingers_11_01"); //Mówiłem ci już o Rączce! On może cię wiele nauczyć!
}
else if (Fingers_Learnt == LOG_SUCCESS)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Fingers_11_02"); //Rączka powiedział mi, że trochę się już nauczyłeś, ale uważa, że mógłbyś być jeszcze lepszy.
Points_OC = Points_OC + 3;
};
// -----------------------------------------------------------
if (Dexter_GetKalomsRecipe == LOG_RUNNING)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Dexter_11_01"); //Muszę poważnie porozmawiać z Dexterem. Wykorzystuje cię do załatwiania własnych porachunków.
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Dexter_11_02"); //Ale jeśli chodzi o nasz test - nie ma żadnych przepisów. Jeśli uda ci się dokonać czegoś TAKIEGO, to będzie wielki krok do przodu.
}
else if (Dexter_GetKalomsRecipe == LOG_SUCCESS)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Dexter_11_03"); //Naprawdę udało ci się zdobyć przepis Kaloma. Dexter jest pod wrażeniem. Ja zresztą też!
Points_OC = Points_OC + 5;
};
// -----------------------------------------------------------
if (Thorus_MordragKo == LOG_RUNNING)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Thorus_11_01"); //Ta sprawa z Mordragiem to nie lada wyzwanie. Niezły z niego wojownik. Musisz porządnie poćwiczyć, jeśli chcesz go pokonać.
}
else if (Thorus_MordragKo == LOG_SUCCESS)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Thorus_11_02"); //Thorus uważa, że przyda się nam ktoś taki jak ty - to dla ciebie niezwykle korzystne.
Points_OC = Points_OC + 5;
}
else if (Thorus_MordragKo == LOG_FAILED)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Thorus_11_03"); //Thorus dostał ataku apopleksji. Zresztą wcale mu się nie dziwię. Jak można AŻ TAK schrzanić robotę?
Points_OC = Points_OC - 5;
}
// ----WEITER-------------------------------------------------------
if (Fisk_GetNewHehler == LOG_SUCCESS)
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Fisk_11_01"); //Fisk powiedział mi, ze go zaskoczyłeś. W każdym razie będzie po twojej stronie.
Points_OC = Points_OC + 5;
}
else if ( (MordragKO_HauAb==TRUE) || (MordragKO_StayAtNC==TRUE) )
{
AI_Output(self,hero,"Info_Diego_JoinAnalyze_Fisk_11_02"); //Fisk bardzo się na ciebie wkurzył. Na twoim miejscu znalazłbym kogoś na miejsce Mordraga.
};
// -----------------------------------------------------------
if (points_oc > 15)// runtergesetzt!! // Bei 20 + BringList = Aufnahme
{
AI_Output (self, hero,"Info_Diego_Points_11_00"); //Udało ci się zjednać wystarczająco wiele osób.
if hero.level >= 5
{
if (Diego_BringList == LOG_SUCCESS)
{
AI_Output (self, hero,"Info_Diego_Points_11_01"); //Przeszedłeś również test zaufania. Idź do Thorusa. Już go o wszystkim powiadomiłem. Pozwoli ci się spotkać z Gomezem.
Diego_GomezAudience = TRUE;
Log_SetTopicStatus(CH1_JoinOC, LOG_SUCCESS);
B_LogEntry(CH1_JoinOC, "Diego załatwił mi audiencję u Gomeza. Teraz muszę jeszcze zamienić słowo z Thorusem. Wkrótce będę jednym z ludzi Gomeza!");
}
else
{
AI_Output (self, hero,"Info_Diego_Points_11_02"); //Ale musisz jeszcze przejść test zaufania.
};
}
else
{
B_PrintGuildCondition(5);
};
}
else if (points_oc > 10)
{
AI_Output (self, hero,"Info_Diego_Points_11_10"); //W sumie - całkiem nieźle jak na żółtodzioba.
}
else if points_oc >= 0
{
AI_Output (self, hero,"Info_Diego_Points_11_20"); //Bierz się do roboty. Przed tobą jeszcze daleka droga, jeśli chcesz do czegoś dojść w tym obozie.
};
/*else
{
AI_Output (self, hero,"Info_Diego_Points_11_30"); //Machst du Witze, Kleiner? Kein Schwein kennt dich hier!
};*/
};
[/codebox]
Trochę podobne skrypty z M&B i Gothica. Wydaje mi się, że skrypt z Gothica jest do zrozumienia nawet dla kogoś, kto nie miał styczności z programowaniem, natomiast skrypt z M&B jest dziwaczny dla wszystkich. Zwróć jeszcze uwagę na fakt, że wszystkie misje są w jednym pliku.