Pulse Control+D para no olvidar este enlace. |
|
| Necesito un Script sobre exp | |
| | Autor | Mensaje |
---|
SonXaueN Patos@
Edad : 34 Localización : La silla frente el ordenador ¿Que me Gusta? : La luna llena Puntos de Actividad : 5959
Cantidad de envíos : 13 Fecha de inscripción : 19/10/2008
Nº. de Miembro : 15 Respeto por el Foro :
| Tema: Necesito un Script sobre exp Dom 19 Oct 2008, 2:01 am | |
| Bueno, mi idea brillante, era conseguir que cuando un personaje llegara a nivel 10, no pudiera ganar exp a traves de matar hostiles, sino que la recibiese dada por el DM o haciendo quest, pero en esto de los scripts no estoy yo muy sembrado (soy como un barbaro tratando de utilizar una varita magica) asi que si me pudiesen hacer un favor y darme alguna idea, daria mi alma y parte de mi consciencia a quien me ayudase, muchisimas gracias.
Otra alternativa seria la de que recibieran un objeto que les permitiese subir al nivel siguiente, pero ustedes son los expertos, ya me diran, gracias.
ZArtist
Última edición por SonXaueN el Dom 19 Oct 2008, 4:40 pm, editado 1 vez | |
| | | Xiulito Administrador/a
Edad : 44 Localización : Vivo aqui Puntos de Actividad : 6815
Cantidad de envíos : 101 Fecha de inscripción : 22/03/2008
Nº. de Miembro : 1 Respeto por el Foro :
| Tema: Re: Necesito un Script sobre exp Dom 19 Oct 2008, 2:54 am | |
| Bueno así a simple vista seme ocurre algo... En propiedades de Módulo/Avanzado encontraras una barrita de escala de PX que si la pones a 0 los PJ no ganaran PX cuando maten a un bicho ni a nadie, hecho esto te quedaría hacer algo un poco engorroso en lo que respecta al tiempo ya que tendrías que personalizar un script y añadirlo a todos los bichos que vayas a meter en tu módulo, el script iría en el OnDeath del bicho y seria lo que decide los PX que se llevaría el PJ, este script tendría una restricción que cuando detecte que el PJ tiene mas de nivel 10 pues deja de abastecerlo con PX y no le da nada, entonces seria ai donde ya podrías decidir cuando darle PX al PJ, todo esto seria prácticamente un sistema y de momento no tengo mucho tiempo para realizarlo entero, si quieres puedes iniciarlo y preguntar las dudas que te surjan, Saludos. | |
| | | SonXaueN Patos@
Edad : 34 Localización : La silla frente el ordenador ¿Que me Gusta? : La luna llena Puntos de Actividad : 5959
Cantidad de envíos : 13 Fecha de inscripción : 19/10/2008
Nº. de Miembro : 15 Respeto por el Foro :
| Tema: Re: Necesito un Script sobre exp Dom 19 Oct 2008, 2:30 pm | |
| Me seria de gran ayuda, todo a tu tiempo y sin prisas, creo que podre aguantarlos hasta que alcanzen mas el nivel 10. (me parece buena idea esta, no me importa que me tenga horas y horas y mas horas y unas horas mas añadidas modificando encuentros y bichos.) | |
| | | Xiulito Administrador/a
Edad : 44 Localización : Vivo aqui Puntos de Actividad : 6815
Cantidad de envíos : 101 Fecha de inscripción : 22/03/2008
Nº. de Miembro : 1 Respeto por el Foro :
| Tema: Re: Necesito un Script sobre exp Dom 19 Oct 2008, 8:19 pm | |
| Bueno aquí tienes el script que tendrías que poner en el OnDeath de cada hostil de tu módulo, recuerda que si bajas la barra de escala de PX a 0 y un bicho no llevara este script el Jugador no recibiría nada de PX, este script tiene lo que el original de NWN mas un retoque mío que es lo que decide la cantidad de PX que dará por su muerte, esto es totalmente retocable a tu gusto, yo lo he puesto que cogiera el valor de desafío del bicho y diera ese número por 10 y además si el nivel del PJ que lo mato es menor que dicho valor pues le da un bono extra y si no pues le resta unos pocos de PX de la recompensa, bueno pruébalo y moldéalo al gusto, yo creo que tampoco será mucho trabajo si personalizas unos 10 o 15 bichos básicos (zombis, esqueletos, etc...) tendrás suficiente, metes los desencadenantes con los bichos personalizados y todo irá bien, lo que será un buen trabajo es configurar cuantos, cuando y como dar PX a partir de nivel 10, eso necesitara un control muy exhaustivo por parte de los DMs, pero bueno me parece una idea muy buena ya que conseguirás que a partir del nivel 10 comience el buen rol para repelar algunos PX , si tienes alguna duda ya sabes, saludos. - Código:
-
//Script Original del NWN "nw_c2_default7"\\
void RewardPartyXP(int XP, object oTarget,int bAllParty=TRUE) { if (bAllParty == TRUE) { object oPartyMember = GetFirstFactionMember(oTarget, TRUE); while (GetIsObjectValid(oPartyMember) == TRUE) { GiveXPToCreature(oPartyMember, XP); oPartyMember = GetNextFactionMember(oTarget, TRUE); } } else {GiveXPToCreature(oTarget, XP);} }
#include "x2_inc_compon" #include "x0_i0_spawncond"
void main() { int nClass = GetLevelByClass(CLASS_TYPE_COMMONER); int nAlign = GetAlignmentGoodEvil(OBJECT_SELF); object oKiller = GetLastKiller();
// If we're a good/neutral commoner, // adjust the killer's alignment evil if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL)) { AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5); }
// Call to allies to let them know we're dead SpeakString("NW_I_AM_DEAD", TALKVOLUME_SILENT_TALK);
//Shout Attack my target, only works with the On Spawn In setup SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK);
// NOTE: the OnDeath user-defined event does not // trigger reliably and should probably be removed if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(1007)); } craft_drop_items(oKiller);
//Añadido Por Xiulito\\
object oHostil = OBJECT_SELF; object oPC = GetLastHostileActor();
float fValorDesafio = GetChallengeRating(oHostil);
int iPXaDar; int iValorDesafio = FloatToInt(fValorDesafio); int iNivel = GetHitDice(oPC);
if (iNivel>=10)return;
if (iValorDesafio>iNivel) {iPXaDar=iValorDesafio*10+iNivel*5;} else {iPXaDar=iValorDesafio*10-iNivel;}
RewardPartyXP(iPXaDar, oPC); }
| |
| | | SonXaueN Patos@
Edad : 34 Localización : La silla frente el ordenador ¿Que me Gusta? : La luna llena Puntos de Actividad : 5959
Cantidad de envíos : 13 Fecha de inscripción : 19/10/2008
Nº. de Miembro : 15 Respeto por el Foro :
| Tema: Re: Necesito un Script sobre exp Dom 19 Oct 2008, 11:24 pm | |
| Lo estube probando y no me funciona, tan solo tengo que ponerlo en el OnDeath de un bicho? o tengo que cambiar algo mas? al poner la barra de exp del modulo a 0, no me da exp a los pj ni de nivel 1 ni nivel por encima de 10
ZArtist | |
| | | Xiulito Administrador/a
Edad : 44 Localización : Vivo aqui Puntos de Actividad : 6815
Cantidad de envíos : 101 Fecha de inscripción : 22/03/2008
Nº. de Miembro : 1 Respeto por el Foro :
| Tema: Re: Necesito un Script sobre exp Lun 20 Oct 2008, 2:24 am | |
| OK ya vi el fallo, lo siento es que yo lo probé con un bicho que tenía valor de desafío 10 contra mi PJ de nivel 40 (sin la restricción), lo he estado probando y resulta que no da PX si tu bicho tiene un valor de desafío menor a 1 es decir 1/4 o similar, puedes hacer dos cosas, una poner todos los bichitos con valor desafío a 1 y ya te funcionara bien o añadir este trozo de script al que te he puesto mas arriba. Debajo de esta linea: - Código:
-
if (iNivel>=10)return; Añade este trozo: - Código:
-
if (iValorDesafio<1) { iPXaDar=10-iNivel; RewardPartyXP(iPXaDar, oPC); return; }
| |
| | | SonXaueN Patos@
Edad : 34 Localización : La silla frente el ordenador ¿Que me Gusta? : La luna llena Puntos de Actividad : 5959
Cantidad de envíos : 13 Fecha de inscripción : 19/10/2008
Nº. de Miembro : 15 Respeto por el Foro :
| Tema: Re: Necesito un Script sobre exp Lun 20 Oct 2008, 3:26 pm | |
| Bueno, lo probe al principio y no se porque no me funcionaba, pero entonces se me ocurrio la idea de cambiarlo y me funciono asi: ---------------------------------------------------------------------------- //script final, despues de mi retoque\\ void RewardPartyXP(int XP, object oTarget,int bAllParty=TRUE) { if (bAllParty == TRUE) { object oPartyMember = GetFirstFactionMember(oTarget, TRUE); while (GetIsObjectValid(oPartyMember) == TRUE) { GiveXPToCreature(oPartyMember, XP); oPartyMember = GetNextFactionMember(oTarget, TRUE); } } else {GiveXPToCreature(oTarget, XP);} } #include "x2_inc_compon" #include "x0_i0_spawncond" void main() { { //Añadido Por Xiulito\\ object oHostil = OBJECT_SELF; object oPC = GetLastHostileActor(); float fValorDesafio = GetChallengeRating(oHostil); int iPXaDar; int iValorDesafio = FloatToInt(fValorDesafio); int iNivel = GetHitDice(oPC); if (iNivel>=10)return; if (iValorDesafio<1) { iPXaDar=10-iNivel; RewardPartyXP(iPXaDar, oPC); return; } if (iValorDesafio>iNivel) {iPXaDar=iValorDesafio*10+iNivel*5;} else {iPXaDar=iValorDesafio*10-iNivel;} RewardPartyXP(iPXaDar, oPC); } int nClass = GetLevelByClass(CLASS_TYPE_COMMONER); int nAlign = GetAlignmentGoodEvil(OBJECT_SELF); object oKiller = GetLastKiller();
// If we're a good/neutral commoner, // adjust the killer's alignment evil if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL)) { AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5);
// NOTE: the OnDeath user-defined event does not // trigger reliably and should probably be removed if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(1007)); } craft_drop_items(oKiller); } } ----------------------------------------------------------------- Bueno, en realidad lo unico que hice fue cambiar las cosas un poco de sitio e incluir el ultimo trozo que me pusiste en el script, muchas gracias por la ayuda. (Un script muy bien pensado para los que quieran un servidor rolero)
ZArtist | |
| | | Xiulito Administrador/a
Edad : 44 Localización : Vivo aqui Puntos de Actividad : 6815
Cantidad de envíos : 101 Fecha de inscripción : 22/03/2008
Nº. de Miembro : 1 Respeto por el Foro :
| Tema: Re: Necesito un Script sobre exp Vie 24 Oct 2008, 2:01 am | |
| Bien hecho, se ve que en el script original del NWN corta el script en alguna parte, así que mejor que actúe primero el trozo que añadí y luego que se corte donde quiera , no me di cuenta , si tienes mas dudas ya sabes, saludos. | |
| | | Contenido patrocinado
| Tema: Re: Necesito un Script sobre exp | |
| |
| | | | Necesito un Script sobre exp | |
|
Temas similares | |
|
| Permisos de este foro: | No puedes responder a temas en este foro.
| |
| |
| |
|