Blogia

Rol

Reactivando

Saludos.

Bueno, hora de reactivar todo esto, en breve habrá novedades.

Txibi.

Modififacion Script Lobo Blanco

//Txibi.
//21:45, luce el sol... olvidalo, se esta ocultando...
//Viernes, 28 de Mayo del 2004.
//script: mis_loboblanco01

void main()
{
//Inicializamos quien entra en el desencadenante.
object oLoboBlanco = GetEnteringObject();
//comprobamos si es druida o explorador... en caso afirmativo...
if (GetLevelByClass(CLASS_TYPE_DRUID,oLoboBlanco) >= 1
GetLevelByClass(CLASS_TYPE_RANGER) >= 1)
{
//Preparamos los efectos visuales.
effect eVisualSana = EffectVisualEffect(VFX_FNF_NATURES_BALANCE);
effect eVisualDisipa = EffectVisualEffect(VFX_IMP_MAGBLUE);
effect eJugadorJodido = GetFirstEffect(oLoboBlanco);
//Miramos y disipamos efectos perjudiciales.
while (GetIsEffectValid(eJugadorJodido))
{
if (GetEffectType(eJugadorJodido) == EFFECT_TYPE_ABILITY_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_AC_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_ATTACK_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_BLINDNESS
GetEffectType(eJugadorJodido) == EFFECT_TYPE_CURSE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_DAMAGE_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_NEGATIVELEVEL
GetEffectType(eJugadorJodido) == EFFECT_TYPE_PARALYZE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_PETRIFY
GetEffectType(eJugadorJodido) == EFFECT_TYPE_POISON
GetEffectType(eJugadorJodido) == EFFECT_TYPE_POLYMORPH)
{
//Remover efectos negativos.
RemoveEffect(oLoboBlanco,eJugadorJodido);
}//fin if de remover efectos negativos.
eJugadorJodido = GetNextEffect(oLoboBlanco);
}//fin while de remover efectos jodidos.

//Aplicando efectos visuales.
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualSana, oLoboBlanco);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualDisipa, oLoboBlanco);
//Aplicando sanar.
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oLoboBlanco)), oLoboBlanco);
}//fin bloque del druida explorador.

else //En caso de que no sean ni druida ni explorador, lanzar un disipar magia nivel 40.
{
effect eVisualDisipa = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualDisipa, oLoboBlanco);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDispelMagicAll(40),oLoboBlanco);
}//fin en caso contrario.

}//fin del cuerpo principal del programa ( void main() ).

Txibi este era si te acuerdas el script del circulo druidido Lobo Blanco que sanaba a druidas y exploradores y maldecia a los demas. Me gustaria añadir que solo sane a druidas y exploradores NO MALIGNOS. Supongo que sera solo añadir una sola linea, peo ya sabes ue yo de scripts na de ná
Tambien a ser posible que en vez un script de area, fuera puesto en una roca runica del circulo...asi que supongo tambien que habria que modificar esta linea

Cita:
//Inicializamos quien entra en el desencadenante.
object oLoboBlanco = GetEnteringObject();

_________________

------------------------------

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Mar Ago 31, 2004 6:47 pm Asunto:

--------------------------------------------------------------------------------

te kontesto en dos post por problemas tecnicos.

cuestion A:

Código:
object oLoboBlanco = GetEnteringObject();

para ponerlo en un objeto lo cambiamos por

Código:
object jugador = GetLastUsedBy();

_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Mar Ago 31, 2004 6:56 pm Asunto:

--------------------------------------------------------------------------------

Cuestion b:

modificar esto:

Código:
//Inicializamos quien entra en el desencadenante.
object oLoboBlanco = GetEnteringObject();
//comprobamos si es druida o explorador... en caso afirmativo...
if (GetLevelByClass(CLASS_TYPE_DRUID,oLoboBlanco) >= 1
GetLevelByClass(CLASS_TYPE_RANGER) >= 1)
{
//Preparamos los efectos visuales.

por esto:

Código:
//comprobamos si es druida o explorador... en caso afirmativo...
if ((GetLevelByClass(CLASS_TYPE_DRUID,oLoboBlanco) >= 1 GetLevelByClass(CLASS_TYPE_RANGER) >= 1) && GetAlignmentGoodEvil(oLoboBlanco) != ALIGNMENT_EVIL ) {
//Preparamos los efectos visuales.

_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Mar Ago 31, 2004 6:59 pm Asunto:

--------------------------------------------------------------------------------

El codigo fallo un testeo debido a un error. Este es el codigo corregido y ke debes sustituir igual que el post de arriba.

//comprobamos si es druida o explorador... en caso afirmativo...
if ((GetLevelByClass(CLASS_TYPE_DRUID,oLoboBlanco) >= 1 GetLevelByClass(CLASS_TYPE_RANGER,oLoboBlanco) >= 1) && GetAlignmentGoodEvil(oLoboBlanco) != ALIGNMENT_EVIL ) {
//Preparamos los efectos visuales.

Espero haberte ayudado. Un saludo.
_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


Misi
DM

Registrado: 24 Ene 2004
Mensajes: 2690
Ubicación:
Publicado: Mar Ago 31, 2004 7:24 pm Asunto:

--------------------------------------------------------------------------------

Okis Reox gracias, luego lo pruebo y te digo
_________________

------------------------------

Volver arriba


Misi
DM

Registrado: 24 Ene 2004
Mensajes: 2690
Ubicación:
Publicado: Jue Sep 02, 2004 8:08 am Asunto:

--------------------------------------------------------------------------------

Cita:
//Txibi.
//21:45, luce el sol... olvidalo, se esta ocultando...
//Viernes, 28 de Mayo del 2004.
//script: mis_loboblanco01

void main()
{
//Inicializamos quien entra en el desencadenante.
object jugador = GetLastUsedBy();;
//comprobamos si es druida o explorador... en caso afirmativo...
if ((GetLevelByClass(CLASS_TYPE_DRUID,oLoboBlanco) >= 1
GetLevelByClass(CLASS_TYPE_RANGER,oLoboBlanco) >= 1)
&& GetAlignmentGoodEvil(oLoboBlanco) != ALIGNMENT_EVIL ) {
//Preparamos los efectos visuales.
//Preparamos los efectos visuales.
effect eVisualSana = EffectVisualEffect(VFX_FNF_NATURES_BALANCE);
effect eVisualDisipa = EffectVisualEffect(VFX_IMP_MAGBLUE);
effect eJugadorJodido = GetFirstEffect(oLoboBlanco);
//Miramos y disipamos efectos perjudiciales.
while (GetIsEffectValid(eJugadorJodido))
{
if (GetEffectType(eJugadorJodido) == EFFECT_TYPE_ABILITY_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_AC_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_ATTACK_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_BLINDNESS
GetEffectType(eJugadorJodido) == EFFECT_TYPE_CURSE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_DAMAGE_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_NEGATIVELEVEL
GetEffectType(eJugadorJodido) == EFFECT_TYPE_PARALYZE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_PETRIFY
GetEffectType(eJugadorJodido) == EFFECT_TYPE_POISON
GetEffectType(eJugadorJodido) == EFFECT_TYPE_POLYMORPH)
{
//Remover efectos negativos.
RemoveEffect(oLoboBlanco,eJugadorJodido);
}//fin if de remover efectos negativos.
eJugadorJodido = GetNextEffect(oLoboBlanco);
}//fin while de remover efectos jodidos.

//Aplicando efectos visuales.
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualSana, oLoboBlanco);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualDisipa, oLoboBlanco);
//Aplicando sanar.
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oLoboBlanco)), oLoboBlanco);
}//fin bloque del druida explorador.

else //En caso de que no sean ni druida ni explorador, lanzar un disipar magia nivel 40.
{
effect eVisualDisipa = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualDisipa, oLoboBlanco);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDispelMagicAll(40),oLoboBlanco);
}//fin en caso contrario.

}//fin del cuerpo principal del programa ( void main() ).

Este es el script final que me has puesto y da este error:

02/09/2004 9:12:15: Error. 'curadruidaexplor' no se ha compilado.
curadruidaexplor.nss(11): ERROR: VARIABLE DEFINIDA SIN TIPO

_________________

------------------------------

Volver arriba


Txibi
Administrador

Registrado: 25 Ene 2004
Mensajes: 1415
Ubicación: Andoain, Gipuzkoa, Euzkadi, España, Europa, Gaia.
Publicado: Jue Sep 02, 2004 8:40 am Asunto: Saludos

--------------------------------------------------------------------------------

Saludos.

Un paréntesis, te falta un paréntesis derecho más.... )

Txibi.

Volver arriba


Misi
DM

Registrado: 24 Ene 2004
Mensajes: 2690
Ubicación:
Publicado: Jue Sep 02, 2004 9:52 am Asunto:

--------------------------------------------------------------------------------

Cita:
//Txibi.
//21:45, luce el sol... olvidalo, se esta ocultando...
//Viernes, 28 de Mayo del 2004.
//script: mis_loboblanco01

void main()
{
//Inicializamos quien entra en el desencadenante.
object jugador = GetLastUsedBy();;
//comprobamos si es druida o explorador... en caso afirmativo...
if ((GetLevelByClass(CLASS_TYPE_DRUID,oLoboBlanco)) >= 1
GetLevelByClass(CLASS_TYPE_RANGER,oLoboBlanco) >= 1)
&& GetAlignmentGoodEvil(oLoboBlanco) != ALIGNMENT_EVIL ) {//AKI DA ERROR
//Preparamos los efectos visuales.
//Preparamos los efectos visuales.
effect eVisualSana = EffectVisualEffect(VFX_FNF_NATURES_BALANCE);
effect eVisualDisipa = EffectVisualEffect(VFX_IMP_MAGBLUE);
effect eJugadorJodido = GetFirstEffect(oLoboBlanco);
//Miramos y disipamos efectos perjudiciales.
while (GetIsEffectValid(eJugadorJodido))
{
if (GetEffectType(eJugadorJodido) == EFFECT_TYPE_ABILITY_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_AC_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_ATTACK_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_BLINDNESS
GetEffectType(eJugadorJodido) == EFFECT_TYPE_CURSE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_DAMAGE_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_NEGATIVELEVEL
GetEffectType(eJugadorJodido) == EFFECT_TYPE_PARALYZE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_PETRIFY
GetEffectType(eJugadorJodido) == EFFECT_TYPE_POISON
GetEffectType(eJugadorJodido) == EFFECT_TYPE_POLYMORPH)
{
//Remover efectos negativos.
RemoveEffect(oLoboBlanco,eJugadorJodido);
}//fin if de remover efectos negativos.
eJugadorJodido = GetNextEffect(oLoboBlanco);
}//fin while de remover efectos jodidos.

//Aplicando efectos visuales.
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualSana, oLoboBlanco);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualDisipa, oLoboBlanco);
//Aplicando sanar.
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oLoboBlanco)), oLoboBlanco);
}//fin bloque del druida explorador.

else //En caso de que no sean ni druida ni explorador, lanzar un disipar magia nivel 40.
{
effect eVisualDisipa = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualDisipa, oLoboBlanco);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDispelMagicAll(40),oLoboBlanco);
}//fin en caso contrario.

}//fin del cuerpo principal del programa ( void main() ).

Me sigue dando otro error

02/09/2004 10:55:50: Error. 'curadruidaexplor' no se ha compilado.
curadruidaexplor.nss(13): ERROR: ESTADO DESCONOCIDO EN COMPILADOR
_________________

------------------------------

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Jue Sep 02, 2004 12:50 pm Asunto:

--------------------------------------------------------------------------------

Te lo miro en unas horas.
_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Jue Sep 02, 2004 2:05 pm Asunto:

--------------------------------------------------------------------------------

Compilado con exito...

Código:

//Txibi.
//21:45, luce el sol... olvidalo, se esta ocultando...
//Viernes, 28 de Mayo del 2004.

//TutuXD (Modificacion posterior)
//15:00, esta empezando a llover... las nubes leen el corazon?
//Jueves, 2 de Septiembre del 2004.

//script: mis_loboblanco01

void main()
{
//Inicializamos quien entra en el desencadenante.
object oLoboBlanco = GetLastUsedBy();
//comprobamos si es druida o explorador... en caso afirmativo...

if ((GetLevelByClass(CLASS_TYPE_DRUID,oLoboBlanco) >= 1
GetLevelByClass(CLASS_TYPE_RANGER,oLoboBlanco) >= 1)
&& GetAlignmentGoodEvil(oLoboBlanco) != ALIGNMENT_EVIL ) {

//Preparamos los efectos visuales.
//Preparamos los efectos visuales.
effect eVisualSana = EffectVisualEffect(VFX_FNF_NATURES_BALANCE);
effect eVisualDisipa = EffectVisualEffect(VFX_IMP_MAGBLUE);
effect eJugadorJodido = GetFirstEffect(oLoboBlanco);
//Miramos y disipamos efectos perjudiciales.
while (GetIsEffectValid(eJugadorJodido))
{
if (GetEffectType(eJugadorJodido) == EFFECT_TYPE_ABILITY_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_AC_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_ATTACK_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_BLINDNESS
GetEffectType(eJugadorJodido) == EFFECT_TYPE_CURSE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_DAMAGE_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_NEGATIVELEVEL
GetEffectType(eJugadorJodido) == EFFECT_TYPE_PARALYZE
GetEffectType(eJugadorJodido) == EFFECT_TYPE_PETRIFY
GetEffectType(eJugadorJodido) == EFFECT_TYPE_POISON
GetEffectType(eJugadorJodido) == EFFECT_TYPE_POLYMORPH)
{
//Remover efectos negativos.
RemoveEffect(oLoboBlanco,eJugadorJodido);
}//fin if de remover efectos negativos.
eJugadorJodido = GetNextEffect(oLoboBlanco);
}//fin while de remover efectos jodidos.

//Aplicando efectos visuales.
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualSana, oLoboBlanco);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualDisipa, oLoboBlanco);
//Aplicando sanar.
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oLoboBlanco)), oLoboBlanco);
}//fin bloque del druida explorador.

else //En caso de que no sean ni druida ni explorador, lanzar un disipar magia nivel 40.
{
effect eVisualDisipa = EffectVisualEffect(VFX_IMP_REDUCE_ABILITY_SCORE);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisualDisipa, oLoboBlanco);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDispelMagicAll(40),oLoboBlanco);
}//fin en caso contrario.

}//fin del cuerpo principal del programa ( void main() ).


_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Ositos cambia alineamientos

Bueno veamos como ya le dije a txibi hace mucho tiempo ¬¬ tengo una quest casi hecha de los druidas del lobo blanco.

La idea es que un niño de la ribu ha enfermado por tocar una planta venenosa y la unica planta que puede contrarrestar el efecto esta en una osera, al ser druidas cuando aceptas la mision, juras no matar o hacer daños a ninguno oso.

Entonces, quisiera que los osos tuvieran un script que cuando algun pj lo matara, marcara a dicho pj con algo, para que el druida que te da la recompensa, sepa que has matado a un oso (por ejemplo ve sangre en tus botas) y le cambiara el alineamiento 5 puntos a maligno al entregar la planta

¿Como lo veis?
_________________

------------------------------

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Mie Jul 28, 2004 5:18 pm Asunto:

--------------------------------------------------------------------------------

Sencillo, un sistema como el de las quest. Mañana por la tarde te lo hago que hoy salgo muy muy muy tarde de trabajar.
_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


Landtheater
Administrador

Registrado: 25 Ene 2004
Mensajes: 696
Ubicación: *Estudiando y midiendo el ojo de un animal que perdió la vida*
Publicado: Mie Jul 28, 2004 7:50 pm Asunto:

--------------------------------------------------------------------------------

A maligno... no... No hay anda maligno en defenserse de un oso hostil, a nos er qu el oso sea neutral hacia los psj y estos lo maten por mero placer entonces puntos hacia maligno...

Si quieres dar puntos de alineamiento en esa Quest mejor que sean hacía caótico por incumplir la palabra que le has dado al druida, matando a los osos. De todas formas... si se pudiera creo que lo ideal sería dar esos puntos a caótico si matas más de uno o más de dos (pero no uno), a lo mejor tu intención no era matarlo pero un crítico poco afortunado en ese momento... pues... hizo que te cobrases una victima.
_________________
Díscipulo-) Maestro, caí en el abismo. Las aguas son hondas y oscuras.
Maestro-) Recuerda esto: lo que ahoga a alguien no es la inmersión, sino el hecho de permanecer bajo el agua.

Volver arriba


Txibi
Administrador

Registrado: 25 Ene 2004
Mensajes: 1415
Ubicación: Andoain, Gipuzkoa, Euzkadi, España, Europa, Gaia.
Publicado: Mie Jul 28, 2004 10:00 pm Asunto: Saludos.

--------------------------------------------------------------------------------

Saludos.

mmm veamos, en el script de muerte del oso, que tome como referencia al asesino eso era... GetLastHostil o algo así....

Luego crear una variable local con un nombre + nombrepjasesino.

Finalmente en la charla de quest comprobar como anda esa variable si es igual o mayor que 2 puntos a caóticos...

A ver si mañana me animo a hacerla...

Txibi.

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Vie Jul 30, 2004 10:11 am Asunto:

--------------------------------------------------------------------------------

Siento decir que no podre hacer el script debido a que me veo obligado a tomar unas vacaciones forzadas. Mis disculpas. Nos vemos en un mes si Dios quiere.
_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Lun Ago 23, 2004 11:12 pm Asunto:

--------------------------------------------------------------------------------

Necesitaria que se me facilitase un script de una busqueda (la de los trasgos mismo) para saber ke sistema implanto Txibi para poder terminar el codigo de los osos no vaya a ser que por asignar las variables ke a mi de la gana pegue un petardazo. Gracias.
_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


CeLSuM
DM

Registrado: 25 Ene 2004
Mensajes: 227
Ubicación: Lejos de Free Haven
Publicado: Mar Ago 24, 2004 10:33 am Asunto:

--------------------------------------------------------------------------------

TRASGOS

Código:

//::///////////////////////////////////////////////
//:: FileName berent06
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Celsum
//:: Modified By: Txibi
//:: Created On: 20,Febrero, 2003
//:://////////////////////////////////////////////
#include "nw_i0_tool"

int PartyHaHechoQuest(object oPC)
{
object oPartyMember = GetFirstFactionMember(oPC, TRUE);
while (GetIsObjectValid(oPartyMember) == TRUE)
{
// Comprobamos que no haya hecho la quest
if (GetLocalInt(GetModule(),"quest_documento_de_baa_completada_" + GetName(oPartyMember) + GetPCPlayerName(oPartyMember) ) == 1)
{
//Ya ha hecho la quest
return TRUE;
}
oPartyMember = GetNextFactionMember(oPartyMember, TRUE);
}//fin while
return FALSE;
}//fin int PartyHaHechoQuest(object oPC)

void MarcarGrupo(object oPC)
{
object oPartyMember = GetFirstFactionMember(oPC, TRUE);
while (GetIsObjectValid(oPartyMember) == TRUE)
{
// Comprobamos que no haya hecho la quest
SetLocalInt(GetModule(),"quest_documento_de_baa_completada_" + GetName(oPartyMember) + GetPCPlayerName(oPartyMember), 1);
oPartyMember = GetNextFactionMember(oPartyMember, TRUE);
}// fin while
}//fin MarcarGrupo(object oPC)

void main()
{
object oJugador = GetLastSpeaker ();
object oItemToTake=GetItemPossessedBy(oJugador,"Documento_de_Baa");
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 documento.
MarcarGrupo(oJugador);

//Dar un poco de oro al jugador que habla con el montaraz.
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 + 200;
//Damos ese oro al hablante.
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

Hacer aparecer objetos

No entiendo porque no me funciona algo tan simple como esto:

Código:
void main(){
location lLoc=GetLocation(GetWaypointByTag("puntoHistoriador"));
CreateObject(OBJECT_TYPE_PLACEABLE,"Muecodepracticas",lLoc);
}

Haber si alguien me lo puede mirar, el objetivo es hacer aparecer un muñeco de esos para entrenar. Gracias.
_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


Txibi
Administrador

Registrado: 25 Ene 2004
Mensajes: 1415
Ubicación: Andoain, Gipuzkoa, Euzkadi, España, Europa, Gaia.
Publicado: Mar Ago 31, 2004 9:56 pm Asunto: Saludos...

--------------------------------------------------------------------------------

Saludos... a ojo ... no se puede crear directamente, ahora te lo pongo.

Volver arriba


Txibi
Administrador

Registrado: 25 Ene 2004
Mensajes: 1415
Ubicación: Andoain, Gipuzkoa, Euzkadi, España, Europa, Gaia.
Publicado: Mar Ago 31, 2004 10:25 pm Asunto: Saludos.

--------------------------------------------------------------------------------

Saludos.

Hecho y testado... el script es:

Código:
/*
Txibi.
Pruebas de generacion espontanea de cofres al caminar.
23:17 del 31 de Agosto del 2004.
Script: tx_aparece
*/

//Subprograma Crear Cofre.
void CrearCofre(location locCofreDelTesoro)
{
CreateObject(OBJECT_TYPE_PLACEABLE, "tx_cofreoro", locCofreDelTesoro);
}//fin subprograma CrearCofre

void main()
{
location locCofreDelTesoro = GetLocation(GetWaypointByTag("tx_aqui"));
effect eVisual = EffectVisualEffect(VFX_IMP_POLYMORPH);
ActionDoCommand(ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVisual, locCofreDelTesoro, 3.0));
ActionDoCommand(CrearCofre(locCofreDelTesoro));
}//fin del cuerpo principal del programa.

Aparentemente segun lei de los bioware y de un tutorial de un programador llamado Richard Conner, traducido por NightShade de nwnhispania. CreateObject devuelve un objeto y no se puede usar directamente conjunta la acción ActionDoCommand.

Luego primero debes de hacer un subprograma void CrearCofre que cree el cofre en si, para llamarlo en el void main, o meterlo en un script aparte y llamarlo con un #include.

Personalmente prefiero la opción subprograma para no liarse mucho, pero cualquiera de los dos sirve.

Espero que te sirva, yo lo he probado en un desencadenante generico, en el OnEnter, cuando entran en el desencadenante se dispara el "efecto".

Útil para hacer trampas y revelar objetos secretos tambien

Txibi.

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Mar Ago 31, 2004 10:41 pm Asunto:

--------------------------------------------------------------------------------

Gracias, el problema era que no pense que habia que dar un rodeo dado que las criaturas las puedo generar directamente.

Lo que estoy construyendo es un generador de blancos de entrenamiento para un modulo personal que construyo para desarrollar algunas ideas de scripts que se me ocurren.
_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


Paus Tanner
Gigante de fuego de Izhar

Registrado: 02 May 2004
Mensajes: 510
Ubicación: Vagando por los senderos de mi destino
Publicado: Mar Ago 31, 2004 10:50 pm Asunto:

--------------------------------------------------------------------------------

Txibi... me podias decir donde ver o bajar ese tutorial? pk el k yo mire... esta bien... pero es bastante superficial... asi que me gustaria mirarme ese si puede ser...

Gracias

Luis
_________________
Las fiestas, cuantos más mejor!


Volver arriba


Txibi
Administrador

Registrado: 25 Ene 2004
Mensajes: 1415
Ubicación: Andoain, Gipuzkoa, Euzkadi, España, Europa, Gaia.
Publicado: Mar Ago 31, 2004 10:57 pm Asunto: Saludos.

--------------------------------------------------------------------------------

Saludos.

Ya en ninguna parte, Paus, NWNHispania se fue al garete, quedo tocada de muerte cuando el servidor que los alojaba dejo de ofrecer servicios a la subcontrata española y se quedaron sin copias de seguridad, hiciero un amago de recuperación pero no funciono.

Pero como era un nulo y cansa leer de pantalla, imprimí todo lo que llego a mis manos referente a scripts, de hecho una cosa que hago muy a menudo es imprimir los scripts de la campaña del neverwinter para tenerlos en papel y poder mirarlos con calma.

Txibi.

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Mar Ago 31, 2004 11:06 pm Asunto:

--------------------------------------------------------------------------------

Nota aclaratoria: Usando la impresora de su casa, en ningun caso la de la empresa. Ningun español seria capaz de semejante acción.
_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


Paus Tanner
Gigante de fuego de Izhar

Registrado: 02 May 2004
Mensajes: 510
Ubicación: Vagando por los senderos de mi destino
Publicado: Mie Sep 01, 2004 12:08 am Asunto:

--------------------------------------------------------------------------------

Cita:
Nota aclaratoria: Usando la impresora de su casa, en ningun caso la de la empresa. Ningun español seria capaz de semejante acción.

Tienes razon... "NINGUN2 español lo haria...(menos mal que no les digo que imprimi un pezao manual de java en la impresora de la oficina... como solo trabajaba en verano... ah... y el de c++ y el de visual... y creo k unas hojas de linux... pero nada mas... una impresora que saca hoja tras hoja y hace 13000 impresiones por cartucho... pues creo k no se notaran 1000 paginillas de nada ^^ ) Jejeje es broma... la empresa es de mi padre e imprimi 2000 paginas jajajaajajja

Pues una pena... si alguien los tuviese guardados (las paginas... jejeje)

Por cierto... os mirasteis eel tutorial en videos que os di? son muy divertidos auque estan en ingles jejejeje : )
_________________
Las fiestas, cuantos más mejor!


Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Mie Sep 01, 2004 10:02 am Asunto:

--------------------------------------------------------------------------------

Pues no, ayer volvi de mis malditas vacaciones y desde el trabajo como que no es plan de ponerse a verlos... ningun español lo haria. XDD.
_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Libro parlanchin

Hola,
Escribo aqui, para ver si me podeis explicar como hacer que un objeto al usarlo, te salga un texto, es decir, algo asi como el libro de acciones(o emociones o ese verde ^^) que hay en enroth... que cuando lo utilizas, te sale un cuadro de dialogo... su utilidad, podria ser algun libro largo de varias paginas de texto que quiero que aparezca como si fuese lo del libro de emociones pero con mi texto

Muchas gracias por todo

Un saludo

Luis
_________________
Las fiestas, cuantos más mejor!


Volver arriba


Devil
DM

Registrado: 22 Ene 2004
Mensajes: 891
Ubicación: El Claustro
Publicado: Sab Ago 28, 2004 12:56 pm Asunto:

--------------------------------------------------------------------------------

Wolas; no estoy muy seguro si el siguiente guion hace que aparezca ese texto, o bien hace k aparezca solamente un texto flotante en la pantalla:

Cita:

void main()
{
object oPc = GetEnteringObject();
SendMessageToPC(oPc,"En este espacio entre las comillas escribes el texto que quieras que aparezca");
}

De todas formas ese guion actua al entrar en un desencadenante; supongo que para la opcion que buscas habria que midificar lo de GetEnteringObject() por otra funcion diferente.

No tengo a penas idea de esto de los scripts, pero espero k te pueda servir de algo si sabes de esto un pokillo mas k yo

Un saludete!
_________________
No consiguo entender por qué la gente lucha y mata por la religión, pues además, ni siqueira soy capaz de certificar que Dios no existe.



____________________

Volver arriba


Txibi
Administrador

Registrado: 25 Ene 2004
Mensajes: 1415
Ubicación: Andoain, Gipuzkoa, Euzkadi, España, Europa, Gaia.
Publicado: Sab Ago 28, 2004 2:25 pm Asunto: Saludos....jejeje tela...

--------------------------------------------------------------------------------

Saludos....

jeje, una buena noticia y una mala.

La buena es que sí, que ahora te lo contamos.

La mala es que no es "un script" sino un conjunto de parte de script general de modulo, un objeto específico y una conversación asociada. Como mínimo.

Por partes.

Primero tienes por ahí en propiedades del módulo una pestaña que es:

OnActivatedItem.

Si, ahí es, adentro. Si no has estado nunca estará vacía, si has estado debes aclopar el siguiente código ahí.

En ese código se meten TODOS los objetos del módulo activables, así que tendrás que ser ordenado y separarlos, pongamos un ejemplo de dos libros, el libro de sendero y el libro de habilidades.

Código:

//Ejemplo simple de codigo en el guion OnActivatedItem de propiedades del modulo.

void main()
{
object oActivador=GetItemActivator(); //Pillamos quien activa el objeto.
object oArtefacto = GetItemActivated(); //Pillamos el objeto que se activa.

//Libro Magico del Sendero Rojo. Inicio.
if(GetTag(oArtefacto)=="tx_lib_aprendiz")
{
//Si la etiqueta del objeto que se activa es == tx_lib_aprendiz
//Activar la conversacion: tx_lib_aprendiz
AssignCommand(oActivador, ActionStartConversation(oActivador, "tx_libroaprendiz", TRUE));
return;
}//Fin Libro Magico del Sendero Rojo.

//-------------------------------------------------------->>

//Libro de Emociones.
if(GetTag(oArtefacto) == "tx_librohab_1")
{
//Si la etiqueta del objeto que se activa es == tx_librohab_1
//Activar la conversacion: tx_librohab_1
AssignCommand(oActivador, ActionStartConversation (oActivador, "tx_librohab_1", TRUE));
return;
}//fin de Libro de Emociones

//-------------------------------------------------------->>

//Y otro bloque...

//-------------------------------------------------------->>

// Etc...

}//fin cuerpo principal.


Bien, creas el objeto y le pones como propiedad: Lanzar conjuro: Poder único para sí (sin limite de usos/día).

Se aconseja que la resref y la etiqueta del objeto sean idénticas, te evitará muchos quebraderos de cabeza, el never no pone muy claro cuando te pide la etiqueta o cuando te pide la resref. Normalmente resref para crear y etiqueta para seleccionar.

Vale, ahora atar una conversación, pues creas la conversación como siempre. Eso sí, se aconseja que el nombre de la conversación sea idéntico al de la etiqueta del objeto para que sea todo más claro.

Y ya esta. Lo pones en un acceso rápido y cuando cliquees en el saldrá la conversación.

Esto si sólo quieres que salga una conversación claro, si quieres que haga más cosas mete más conversaciones y scripts encadenados....

Por ejemplo el libro de habilidades son 36 scripts encadenados a una conversación tocha, ya que cada línea de conversación dispara su propio script...

Nos vemos.

Txibi.

Volver arriba


Paus Tanner
Gigante de fuego de Izhar

Registrado: 02 May 2004
Mensajes: 510
Ubicación: Vagando por los senderos de mi destino
Publicado: Sab Ago 28, 2004 9:43 pm Asunto:

--------------------------------------------------------------------------------

Muchisimas gracias a los dos... me pondre ahora mismo a mirarlo con calma ^^ : )
_________________
Las fiestas, cuantos más mejor!

Al fin, pu--*censurado*-- esta listo. Tablon de Anuncios.

Saludos.

Mirando scripts por el modulo de nordock 1.70 ese que anda para descargar por el vault, he aislado, traducido y reescrito el tablon de anuncios.

http://www.txibi.com/Descargas/Tablon.zip

Tiene persistencia de mensajes.

Se crean 3 archivos en la carpeta database los archivos son enroth_mb aunque por supuesto puedes especificar el nombre que te salga de tus partes. las extensiones son las típicas de la persistencia oficial neverwinter. O sea: .CDX .DBF .FPT. Tendrás un ENROTH_DB.CDX, ENROTH_DB.DBF y ENROTH_DB.FPT .

Para reinicializar la base se borran estas 3 variables y punto.

Los que entiendan de bases de datos, podran actualizarlas al gusto supongo. (Se recuerda que mis conocimientos de bases de datos son muy escasos).

Funcionamiento del Tablón:

Hablas al escriba, y te pedira que le digas un título. Escribes el título y le das al enter, tal como si hablaras con un jugador. Una vez hecho le das a Listo.

Luego te pide el mensaje en sí. Más de lo mismo. Escribes el mensaje y enter, como si se lo hablaras a un jugador. Luego selecciona la opción de Terminado.

Te creará un objeto en el inventario que es el mensaje.

Llevalo al tablón de anuncios.

Pulsa en el tablón de anuncios, saldrá una conversación, y te dará la opción de publicar tu mensaje.

Hecho.

Ahora un detalle importante, para poder recoger tu mensaje el script de atencion del escriba esta en el OnHeartBeat, con lo cual cada 6 segundos el ordenador recoge TODO lo que se habla en su área de influencia.

Así que evitar hablar en el área del escriba para no liar los datos que escucha y no sobrecargar de lag.

Mi sugerencia es, ya que escriba y tablón no tienen que estar en el mismo sitio, es que el tablón este en un sitio público, taberna, posada, plaza del pueblo, etc... y el escriba en una área diminuta, (2x2) en plan despacho y en silencio para que ni chupe recursos ni se lien con los gritos de pnjs y pjs que no vienen a dar mensajes.

Si veis errores postearlos...

Txibi.

Volver arriba


Paus Tanner
Gigante de fuego de Izhar

Registrado: 02 May 2004
Mensajes: 510
Ubicación: Vagando por los senderos de mi destino
Publicado: Vie Ago 27, 2004 7:36 pm Asunto:

--------------------------------------------------------------------------------

Porque no meteis al escriba en un sitio continuo a la biblioteca??? suele estar bastante vacia y en una habitacion contigua, de 2x2 lo puedes meter... un sito adecuado y bastante decente... creo yo ^^
_________________
Las fiestas, cuantos más mejor!

SubRazas: SubRaza Trasgo Finiquitada.

Saludos.

Listo proyecto beta de subrazas, creada y testeada raza trasgo.

Primero crear una piel de criatura. Para un trasgo hemos creado.

tx_pieltrasgoide

Visión en la oscuridad.
Bono contra venenos +4.

Requisito: Ser Mediano.

Creamos una estatua, dios trasgo, uno que pasaba por ahí, etc, para atarle la conversación.

En la opción de charla pnj (el saludo del pnj) enganchamos este script en la pestaña "Acciones emprendidas".

Código:
/*
Script: tx_borrapiel
Txibi. 15:08 a 28-08-2004.
Destruye pieles raciales, previo a crear una piel racial.
*/
void main()
{
object oJugador = GetPCSpeaker();
object oPiel = GetItemInSlot(INVENTORY_SLOT_CARMOUR,oJugador);
DestroyObject(oPiel);
SendMessageToPC(oJugador, "Se te ha removido tu piel racial como paso previo.");
}

y en la confirmación por parte del jugador de la elección racial (en este caso trasgo) colocamos este otro script en "Acciones emprendidas".

Código:
/*
Script: tx_razagoblin
Txibi, 13:32 del 28-08-2004
El PJ toma la apariencia de un trasgo.

Tipo de constantes.

APPEARANCE_TYPE_GOBLIN_A -> Goblin normal de pantano.
APPEARANCE_TYPE_GOBLIN_B -> Goblin normal de colina.
APPEARANCE_TYPE_GOBLIN_CHIEF_A -> Cacique goblin de pantano.
APPEARANCE_TYPE_GOBLIN_CHIEF_B -> Cacique goblin de colina.
APPEARANCE_TYPE_GOBLIN_SHAMAN_A -> Shaman goblin de pantano.
APPEARANCE_TYPE_GOBLIN_SHAMAN_B -> Shaman goblin de colina.

Convierte a la subraza trasgo si se es un mediano.

*/
void main()
{
object oJugador = GetPCSpeaker();
int iRazaPrimaria = GetRacialType(oJugador);
if (iRazaPrimaria==RACIAL_TYPE_HALFLING)
{
SetSubRace(oJugador, "Trasgo");
SendMessageToPC(oJugador, "Tu raza ha cambiado, a partir de ahora eres un trasgo");
object oPielTrasgoide = CreateItemOnObject("tx_pieltrasgoide", GetPCSpeaker(),1);
AssignCommand(oJugador, ActionEquipItem(oPielTrasgoide, INVENTORY_SLOT_CARMOUR));
SendMessageToPC(oJugador, "Tu piel toma la apariencia de un trasgo");
SetCreatureAppearanceType(oJugador, APPEARANCE_TYPE_GOBLIN_CHIEF_B);
}
}//fin cuerpo principal.

Y ya hay un goblin jugador dando vueltas por el mundo.

Hasta otra.

Txibi.

UYUYUYUY QUE MIEDO :D

Se me ha ocurrido hacer un desencadenante perfecto para Darkmoor, ya que se supone que es una tierra que deberia acojonar a la gente, salvo a los mas valientes...... (digamos en plan Mordor, esa tierra a la que nunca va nadie, menos dos pequeños Hobbits )

Mi idea es hacer un desencadenante en el cual, al pasar por el un Pj, haga una tirada de voluntad, si la falla, se le aplicara el conjuro Miedo.

No creo que esto sea dificil, pero me encantaria que me lo pudierais hacer (mas aun que la invasion y ataque a Darkmoor es evidente en el final de la edad oscura, y muchos Pj pasaran por alli )

Enga agur y molto grace
_________________

------------------------------

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Vie Ago 27, 2004 12:46 pm Asunto:

--------------------------------------------------------------------------------

Debes especificar que dado se debe usar y a partir de que resultado no es afectado por el conjuro. Resumiendo... ¿como debe ser el calculo?

Ejemplo:

1D20 + voluntad si es menos que 15 pasas miedo
_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."

Volver arriba


Misi
DM

Registrado: 24 Ene 2004
Mensajes: 2690
Ubicación:
Publicado: Vie Ago 27, 2004 1:42 pm Asunto:

--------------------------------------------------------------------------------

Los dados y caractetisircas se me dan muy mal, no se una tirada que no sea facil de superar....el numero eligelo tu si quieres
_________________

------------------------------

Volver arriba


Reox Harpell
Gigante de fuego de Izhar

Registrado: 30 Ene 2004
Mensajes: 528
Ubicación: La Luna Roja
Publicado: Vie Ago 27, 2004 3:47 pm Asunto:

--------------------------------------------------------------------------------

Código:

void main(){

// Si la voluntad y un d20 suman mas de nivel entonces no hay miedo
int nivel = 15;
//Mensaje que se muestra en el log en caso de ser afectado
string mensajeAfectado = "*El mal es tan intenso que sientes miedo*";
//Mensaje que se muestra en el log en caso de no ser afectado
string mensajeNoAfectado = "*El mal es intenso pero aguantas el miedo*";
//efecto visual
effect efecto = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR);
//efecto real
effect causa = EffectFrightened();

//No tocar
object jugador = GetEnteringObject();
int voluntad = GetWillSavingThrow(jugador);
int dados = d20();

if(voluntad + dados < nivel){
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, efecto, jugador, 30.0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, causa, jugador, 30.0);
SendMessageToPC(jugador, mensajeAfectado);
}
else{
SendMessageToPC(jugador, mensajeNoAfectado);
}

}


_________________
“...Y es que al abrir los ojos todo es de otro color, ahora pienso que cualquier tiempo pasado fué mejor."