/* Script: 3_tx_roblefora_1 0:20 del 15 de Noviembre del 2004. Scripts de Mision (las misiones empezaran por 3_tx_) de los forajidos del Bosque del Roble. */ int StartingConditional() { if(!(GetLocalInt(GetPCSpeaker(),"mis_1_for_roble")<1)) return FALSE; return TRUE; } |
/* Script: tx_no_paladin Restriccion de clases. mira si NO se es paladin. Txibi. */ int StartingConditional() { //Restriccion basada en la clase de personaje. int iPassed = 0; if (GetLevelByClass(CLASS_TYPE_PALADIN, GetPCSpeaker()) >= 1) iPassed = 1; if (iPassed == 0) return TRUE; return FALSE; } |
/* Script: 3_tx_roblefora_8 0:20 del 15 de Noviembre del 2004. Scripts de Mision (las misiones empezaran por 3_tx_) de los forajidos del Bosque del Roble. */ void main() { //Establecer Variables. //Consigue 450 monedas en total por un gran exito en persuadir. SetLocalInt(GetPCSpeaker(), "regForaRoble", 1); SetLocalInt(GetPCSpeaker(), "mis_1_for_roble", 1); AddJournalQuestEntry("mis_1_for_roble", 1, GetPCSpeaker()); }//fin Cuerpo principal. |
/* Script: 3_tx_roblefora_7 0:20 del 15 de Noviembre del 2004. Scripts de Mision (las misiones empezaran por 3_tx_) de los forajidos del Bosque del Roble. */ void main() { //Establecer Variables. //Consigue 60 monedas extra por exito en persuadir. SetLocalInt(GetPCSpeaker(), "regForaRoble", 2); SetLocalInt(GetPCSpeaker(), "mis_1_for_roble", 1); AddJournalQuestEntry("mis_1_for_roble", 1, GetPCSpeaker()); }//fin Cuerpo principal. |
/* Script: 3_tx_roblefora_6 0:20 del 15 de Noviembre del 2004. Scripts de Mision (las misiones empezaran por 3_tx_) de los forajidos del Bosque del Roble. */ void main() { //Establecer Variables. SetLocalInt(GetPCSpeaker(), "mis_1_for_roble", 1); AddJournalQuestEntry("mis_1_for_roble", 1, GetPCSpeaker()); }//fin Cuerpo principal. |
/* Script: tx_paladin Restriccion de clases. mira si se es paladin. Txibi. */ int StartingConditional() { //Restriccion basada en la clase de personaje. int iPassed = 0; if (GetLevelByClass(CLASS_TYPE_PALADIN, GetPCSpeaker()) >= 1) iPassed = 1; if (iPassed == 0) return FALSE; return TRUE; } |
/* Script: 3_tx_roblefora_5 0:20 del 15 de Noviembre del 2004. Scripts de Mision (las misiones empezaran por 3_tx_) de los forajidos del Bosque del Roble. */ void main() { //Establecer Variables. //Al ser Paladin especifica en 3 el regateo, no tomara oro, salvo unas pocas monedas. SetLocalInt(GetPCSpeaker(), "regForaRoble", 3); SetLocalInt(GetPCSpeaker(), "mis_1_for_roble", 1); AddJournalQuestEntry("mis_1_for_roble", 1, GetPCSpeaker()); }//fin Cuerpo principal. |
/* Script: 3_tx_roblefora_2 0:20 del 15 de Noviembre del 2004. Scripts de Mision (las misiones empezaran por 3_tx_) de los forajidos del Bosque del Roble. */ int StartingConditional() { if(!(GetLocalInt(GetPCSpeaker(),"mis_1_for_roble")==1)) return FALSE; return TRUE; } |
/* Script: 3_tx_roblefora_4 0:20 del 15 de Noviembre del 2004. Scripts de Mision (las misiones empezaran por 3_tx_) de los forajidos del Bosque del Roble. */ #include "nw_i0_tool" int StartingConditional() { if(!CheckPartyForItem(GetPCSpeaker(),"mis_1_arma")) return FALSE; return TRUE; } |
/* Script: 3_tx_roblefora_3 0:20 del 15 de Noviembre del 2004. Scripts de Mision (las misiones empezaran por 3_tx_) de los forajidos del Bosque del Roble. */ int StartingConditional() { if(!(GetLocalInt(GetPCSpeaker(),"mis_1_for_roble")==2)) return FALSE; return TRUE; } |
/* Script: 3_tx_roblefora_f 0:20 del 15 de Noviembre del 2004. Scripts de Mision (las misiones empezaran por 3_tx_) de los forajidos del Bosque del Roble. */ #include "nw_i0_tool" |
//Subprograma
PartyHaHechoQuest. int PartyHaHechoQuest(object oPC) { object oPartyMember = GetFirstFactionMember(oPC, TRUE); while (GetIsObjectValid(oPartyMember) == TRUE) { // Comprobamos que no haya hecho la quest if (GetLocalInt(GetModule(),"mis_bandidosroble_hecha_" + GetName(oPartyMember) + GetPCPlayerName(oPartyMember) ) == 1) { //Ya ha hecho la quest return TRUE; } oPartyMember = GetNextFactionMember(oPartyMember, TRUE); } return FALSE; }//fin subprograma PartyHaHechoQuest |
//Subprograma
MarcarGrupo. void MarcarGrupo(object oPC) { object oPartyMember = GetFirstFactionMember(oPC, TRUE); while (GetIsObjectValid(oPartyMember) == TRUE) { // Comprobamos que no haya hecho la quest SetLocalInt(GetModule(),"mis_bandidosroble_hecha_" + GetName(oPartyMember) + GetPCPlayerName(oPartyMember), 1); oPartyMember = GetNextFactionMember(oPartyMember, TRUE); } }//fin subprogrma MarcarGrupo. |
//Cuerpo
principal del programa. void main() { object oJugador = GetLastSpeaker(); object oItemToTake=GetItemPossessedBy(oJugador,"mis_1_arma"); //If principal. if(GetIsObjectValid(oItemToTake)!=0) { DestroyObject(oItemToTake); //Comprobamos si los jugadores han hecho la quest if (!PartyHaHechoQuest(oJugador)) { //Damos puntos de xp a todo el grupo y oro al poseedor del arma. MarcarGrupo(oJugador); //Dar un poco de oro al jugador que habla con el patrón. int iOroCarisma = GetAbilityModifier(ABILITY_CHARISMA, GetPCSpeaker()); //Cogemos el bono del carisma y lo multiplicamos * 10 iOroCarisma = iOroCarisma * 10; //Luego le sumamos la cantida prometida. iOroCarisma = iOroCarisma + 300; if(GetLocalInt(GetPCSpeaker(), "regForaRoble") == 1) { //Un buen exito en persuadir. iOroCarisma = iOroCarisma + 150; GiveGoldToCreature(GetPCSpeaker(), iOroCarisma); } else if(GetLocalInt(GetPCSpeaker(), "regForaRoble") == 2) { //Un exito normal en persuadir. iOroCarisma = iOroCarisma + 60; GiveGoldToCreature(GetPCSpeaker(), iOroCarisma); } else if(GetLocalInt(GetPCSpeaker(), "regForaRoble") == 3) { //Es Paladin, de modo que toma el oro justo para pagarse la comida. GiveGoldToCreature(GetPCSpeaker(), 10); GiveXPToCreature(GetPCSpeaker(), 40); } else //el pago normal { GiveGoldToCreature(GetPCSpeaker(), iOroCarisma); } //Dar un poco de XP object oPC=GetLastSpeaker(); object oPartyMember = GetFirstFactionMember(oPC, TRUE); int nNivelPJ = GetHitDice(oPartyMember); while (GetIsObjectValid(oPartyMember) == TRUE) { //Reparto de XP. //Comprobamos su inteligencia para dar bono/malus de xp. int iEsaINT = GetAbilityModifier(ABILITY_INTELLIGENCE, oPartyMember); //Comprobamos su sabidura para dar un bonus o malus de xp. int iEsaSAB = GetAbilityModifier(ABILITY_WISDOM, oPartyMember); //Se hace la media... de ambas bonus/malus. int iBonoXP = ((iEsaINT + iEsaSAB) * 5 ); //Damos la xp segun nivel y bono/malus int iTotal = 0; if (nNivelPJ<=4) { //Antes comprobamos que no de xp negativa... que algunos... iTotal = 200 + iBonoXP; if (iTotal<0) { iTotal = 0;} GiveXPToCreature(oPartyMember, iTotal); } else if ((nNivelPJ>=5) && (nNivelPJ<=8)) { iTotal = 500 + iBonoXP; if (iTotal<0) { iTotal = 0;} GiveXPToCreature(oPartyMember, iTotal); } else if ((nNivelPJ>8) && (nNivelPJ<11)) { iTotal = 650 + iBonoXP; if (iTotal<0) { iTotal = 0;} GiveXPToCreature(oPartyMember, iTotal); } else if (nNivelPJ>=11) { iTotal = 100 + iBonoXP; if (iTotal<0) { iTotal = 0;} GiveXPToCreature(oPartyMember, iTotal); } oPartyMember = GetNextFactionMember(oPartyMember, TRUE); nNivelPJ = GetHitDice(oPartyMember); } //fin while //Añadir al diario AddJournalQuestEntry("mis_1_for_roble",2,oJugador); SetLocalInt(oJugador,"mis_1_for_roble",2); }//fin del if de dar cobro de misión. else { SendMessageToPC(oJugador, "DM: No habeis recibido recompensa porque hay jugadores en el grupo que completaron la quest anteriormente"); }//fin else de aviso DM. }//fin del if principal que testea el objeto del inventario y activa la recompensa. }//fin Cuerpo Principal. |