La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 18:00:56


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Raudgers
Ecuyer
Inscrit le: 08 Aoû 2005
Messages: 46
Localisation: En furtif à coter de toi...
Répondre en citant
Posté le : 30/08/2005 04:10:16 Sujet du message : Le Désarmement ? Hum hum hum ...

Voila alors ce dont j'ai besoin est assez simple et mit en place sur pas mal de server, mais je n'en trouve aucune trace sur ce forum.Sad

Un script contre le désarmement, si un joueur est désarmer, l'arme au lieu de tomber par terre, retourne directement dans l'inventaire du joueur qui c'est fait désarmer.Cool

Merci a ceux qui me fileront un coup de pouce la dedans, d'auttent plus que pas mal de monde cherche ce scrypt.Very Happy
_________________
I need your help.Give light to me please.
J'ai besoin de votre aide. Donnez-moi la lumière s'il vous plaît.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 30/08/2005 13:08:00 Sujet du message :

Il faudrait trouver le script de désarmement dans la liste... J'ai regardé vite fait en cherchant "disarm" mais je n'ai pas trouvé. Si qqun sait lequel c'est, ce sera normalement très simple de le modifier pour que l'arme ne tombe plus mais reste dans l'inventaire du joueur désarmé.
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Raudgers
Ecuyer
Inscrit le: 08 Aoû 2005
Messages: 46
Localisation: En furtif à coter de toi...
Répondre en citant
Posté le : 31/08/2005 08:55:48 Sujet du message :

Voila, alors j'ai trouver le script d'un de mes ami tres doué mais en vacance, il la poster sur le vault mais je ne suis pas sur de bien le comprendre :

NWScript :
#include "nw_i0_generic"
#include "x2_inc_switches"


//Script to create and re-equip the weapon
void CreateEquip(object oItem, object oTarget)
{
    oItem = CreateItemOnObject(GetResRef(oItem), oTarget);
    if(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oTarget) == OBJECT_INVALID)
        AssignCommand(oTarget, ActionEquipItem(oItem, INVENTORY_SLOT_RIGHTHAND));
    else
        AssignCommand(oTarget, ActionEquipItem(oItem, INVENTORY_SLOT_LEFTHAND));
}

void main()
{

    int nEvent = GetUserDefinedItemEventNumber();
    if (nEvent == X2_ITEM_EVENT_ACTIVATE) // OnActivateItem Only!!...silly me.
    {

    //Basic Variables
    object oItem = GetItemActivated();
    object oPC = GetItemActivator();
    object oTarget = GetItemActivatedTarget();
    object oNewItem;
    float fDistance = GetDistanceBetween( oPC, oTarget );
    int nBaseAtt = GetBaseAttackBonus(oPC);
    int nPenalty;
    int bHit;
    effect eVisualThrow = EffectBeam(VFX_BEAM_CHAIN, oPC, BODY_NODE_HAND); // Firing effect

    //Stats for the weapon
    float fIncrement = FeetToMeters(20.0); //increment in meters for each range area (Close, short, med, long)
    float fMaxRange = 5 * fIncrement; //Max Range
    int iReturn = TRUE; //Will the weapon return
    int iKeen = FALSE; //Is the weapon Keen
    int nCritMin = 20; //Minimum roll for crit
    int nCritMod = 2; //Critical Hit Multiplier
    int nDamage = d8() +nBaseAtt; //Damage roll, This should match the weapons normal dmg
          nDamage += GetAbilityModifier(ABILITY_STRENGTH, oPC); //Plus Strength Mod
    effect eDamage = EffectDamage(nDamage, DAMAGE_TYPE_BLUDGEONING);//Damage Type

    if (GetHasFeat(FEAT_WEAPON_SPECIALIZATION_WAR_HAMMER,oPC)) //Check for Weapon Spec
          nDamage = nDamage + 2;
    if (GetHasFeat(FEAT_WEAPON_FOCUS_WAR_HAMMER,oPC)) //Check for Weapon Focus
          nPenalty--;
    if (GetHasFeat(FEAT_IMPROVED_CRITICAL_WAR_HAMMER,oPC)) //Check for Improved Crit
          nCritMin--;
    //Make sure they dont hurt themselves...silly dwarves.
    if( oTarget == oPC )
        {
            SendMessageToPC(oPC,"You can't THROW a hammer at yourself!!");
            return;
        }
    //Make sure the weapon is equipped
    if( GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC)!= oItem && GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC) != oItem)
        {
            SendMessageToPC(oPC,"You must equip your weapon!");
            return;
        }
    //Make sure the target exist
    if( oTarget == OBJECT_INVALID )
        {
            SendMessageToPC(oPC,"You must target a valid object!");
            return;
        }

    //Make sure target is in range
    if (fDistance > fMaxRange)
        {
            SendMessageToPC(oPC,"Your Target is Out of Range");
            return;
        }
    //Determine penalty via distance to target / increment
    nPenalty = nPenalty + (FloatToInt(fDistance / fIncrement) - 1);

    //modify penalty to reflect dex modifier
    nPenalty = nPenalty - GetAbilityModifier(ABILITY_DEXTERITY, oPC);

    int nRoll = d20();
    //roll to see if it hit.
    AssignCommand(oPC, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVisualThrow, oTarget, 0.15));
    if (nRoll - nPenalty + nBaseAtt >= GetAC(oTarget))
        bHit = TRUE;

    //On hit:
    if (bHit == TRUE)
        {
            switch(Random(3)+1)
            {
                case 1:
                    PlayVoiceChat(VOICE_CHAT_PAIN1,oTarget);
                    break;
                case 2:
                    PlayVoiceChat(VOICE_CHAT_PAIN2,oTarget);
                    break;
                case 3:
                    PlayVoiceChat(VOICE_CHAT_PAIN3,oTarget); break;
            }
            oNewItem = CreateObject(OBJECT_TYPE_ITEM, GetResRef(oItem), GetLocation(oTarget));
            DestroyObject(oItem);
            if (iKeen == TRUE) //Is Weapon Keen?  (left this incase we ever want to use it)
            {
                nCritMin = 20 - ( (20 - nCritMin) * 2);
            }
            if (iReturn == TRUE) //Does Weapon Return?
            {
                AssignCommand(oPC, SendMessageToPC(oPC, "Your " + GetName(oNewItem) + " returns to your hand."));
                AssignCommand(oPC, CreateEquip(oNewItem, oPC));
                DelayCommand(0.5, DestroyObject(oNewItem));
            }
            SendMessageToPC(oPC, "Attack Roll: " + IntToString(nRoll) + " Range Penalty: " + IntToString(nPenalty) +" = "+IntToString(nRoll-nPenalty)+ "): Hit");
            if (nRoll >= nCritMin) //above threat range?
            {
                if ( d20()-nPenalty > GetAC(oTarget)) //is it a real crit?
                {
                    SendMessageToPC(oPC, "Critical Hit!");
                    nDamage = nDamage * (nCritMod);
                    SendMessageToPC(oPC, "Hit " + GetName(oTarget) + " for " + IntToString(nDamage) + " damage.");
                    eDamage = EffectLinkEffects(EffectDamage(nDamage),eDamage);
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget);
                }
            }
            else //not a crit
            {

                SendMessageToPC(oPC, "Hit " + GetName(oTarget) + " for " + IntToString(nDamage) + " damage.");
                ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget);
            }
        }
    //On Miss:
    else
        {
            oNewItem = CreateObject(OBJECT_TYPE_ITEM, GetResRef(oItem), GetLocation(oTarget));
            DestroyObject(oItem);
            SendMessageToPC(oPC, "Attack Roll: " + IntToString(nRoll) + " Range Penalty: " + IntToString(nPenalty) +"="+IntToString(nRoll-nPenalty)+": Miss");
            if (iReturn == TRUE) //Does Weapon Return?
            {
                SendMessageToPC(oPC, "The " + GetName(oItem) + " skitters across the ground after missing its mark.");
                AssignCommand(oPC, DelayCommand(1.0, SendMessageToPC(oPC, "Your " + GetName(oNewItem) + " begins to return to you.")));
                AssignCommand(oPC, DelayCommand(1.0, CreateEquip(oNewItem, oPC)));
                DelayCommand(1.5, DestroyObject(oNewItem));
            }
            else
            {
                SendMessageToPC(oPC, "The " + GetName(oItem) + " skitters across the ground after missing its mark.");
            }
        }
    if(oTarget!=OBJECT_INVALID)
        {
            if (!GetIsFighting(oTarget))
                {
                    AssignCommand( oTarget, ActionAttack(oPC));
                    AssignCommand( oTarget, SetSummonHelpIfAttacked());
                    AssignCommand( oTarget, SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK));
                    AssignCommand( oTarget, SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK));

                }

        }
        return;

}
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

_________________
I need your help.Give light to me please.
J'ai besoin de votre aide. Donnez-moi la lumière s'il vous plaît.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 31/08/2005 11:35:07 Sujet du message :

Ce n'est pas le script de désarmement ça
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Raudgers
Ecuyer
Inscrit le: 08 Aoû 2005
Messages: 46
Localisation: En furtif à coter de toi...
Répondre en citant
Posté le : 31/08/2005 12:45:09 Sujet du message :

Oui, en relisant je m'en suiis rendu compte, et j'ai aussi remarquer qu'il ny as aucun script qui gere le désarmement, je continu mes recherches.
_________________
I need your help.Give light to me please.
J'ai besoin de votre aide. Donnez-moi la lumière s'il vous plaît.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 62.654ms