Neverwinter Nights
Menú
Gamersmafia es ahora un archivo de solo lectura.

me necesitar ayuda!!!!

necesito un par de scripts (no quiero que los hagan sino demen las funciones que voy a tratar de hacerlo y si son muy complicados para mi digamne si necesito algo mas ok?): uno que sea para que un pnj se mueva por cualquier lado que supongo que va en onspanw y se usa la funcion force to move el problema es que nose si necesito waypomits o no y el otro que al verte con las armas desenfundadas los guardia te digan “enfunda el arma” y como hago para poner las hcr y las sub rasas? de esto no tengo idea gracias desde lla

jejeje chabon, recuerda que los scripts los tenes que hacer vos y no los demas

ahi te dejo el script que usamos en CO para que enfundan el arma, y si no lo hacen les zurren, a usar en el heartbeat de la criatura

PD: eeh, los dialogos son mios, asi que modificarlos algo al menos

[quote:2103a51227]
#include “NW_I0_GENERIC”

string WARNING1 = “Por favor, guarde sus armas”;
string WARNING2 = “Le he dicho que guarde el arma!”;
string WARNING3 = “No se lo dire otra vez! Guarde sus armas!”;//Move to Player
string ATTACK_MSG = “Se lo adverti!!! Ataquen!!”;//Attack here
string COMPLY_REPLY = “Gracias, este es un pueblo pacifico”;
float WARN_DISTANCE = 20.0;//Distance in which to spot player
float ANGER_DUR = 120.0; //Length of time (sec) that will remain angry at the pc

void main()
{
if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
{
if(TalentAdvancedBuff(40.0))
{
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
return;
}
}

if(GetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING))
{
    int nDay = FALSE;
    if(GetIsDay() || GetIsDawn())
    {
        nDay = TRUE;
    }
    if(GetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT") != nDay)
    {
        if(nDay == TRUE)
        {
            SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", TRUE);
        }
        else
        {
            SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", FALSE);
        }
        WalkWayPoints();
    }
}

if(!GetHasEffect(EFFECT_TYPE_SLEEP))
{
    if(!GetIsPostOrWalking())
    {
        if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
        {
            if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
            {
                if(!GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) && !IsInConversation(OBJECT_SELF))
                {
                    if(GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN))
                    {
                        PlayMobileAmbientAnimations();
                    }
                    else if(GetIsEncounterCreature() &&
                    !GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
                    {
                        PlayMobileAmbientAnimations();
                    }
                    else if(GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
                       !GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
                    {
                        PlayImmobileAmbientAnimations();
                    }
                }
                else
                {
                    DetermineSpecialBehavior();
                }
            }
            else
            {
                //DetermineCombatRound();
            }
        }
    }
}
else
{
    if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
    {
        effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
        if(d10() > 6)

eso era loq ue dije! que noq ueira que los isieran pero veo que es muy complicadoe esto! asiq ue lo voy a copiar y cambiar dialogos y despues a analizar para ver que es cada parte

No hace falta hacerlo tan complicado lo unico que tendrias que hacer seria usar el evento onPerception y si el evento es perteption seen pues usas GetItemInSlot() en la mano derecha si es distinto de object invalid manda el mensaje y si a los X segundos le ataca.

Otro comentario: el script posteado tiene un fallo si no se usa la debida faccion o se cambia el script onDMG ya que aunque sea SetTemporaryEnemy() al dañar a esta criatura se aplicara una reputacion de -100 lo cual lleva a que todo PNJ de la misma faction que el se declare como enemigo, asi que estas cosas hay que tratarlas con verdadero cuidado.

Los más activos en Scripting