
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 30/04/2025 18:27:14
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
dadoune Novice Messages: 19 Localisation: 74 |
![]() Mai que les arme et armure hak,pas tout! c'est pour que les haké ne bute pas les légite dans mon arene Car sinon sa fai sa: ![]() ![]() fin bon je pensse que vous avez comprit Bon ba a+ ![]() _________________ Censuré par les admins |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
lalilo Acolyte ![]() Messages: 35 Localisation: quelques par en france |
Salut à toi Dadoune voila se que j'ai dans ma petite réserve :
Script à mettre dans "OnClientEnter" du module... Je n'est pas tester si ça marchais pour une zone défini mais essaye toujours,Tu le place dans "OnEnter" de la zone... NWScript :
void ItempropCheck(object oInv, int nPCLvl);
Le code a colorer syntaxiquement est trop long (plus de 10240 caractères) et risque de ne pas s'afficher du tout. Vous pouvez le voir en version colorée ici.int FindItemLevel(object oItem); int ArmourProperties(object oItem); int AmmoProperties(object oItem); int WeaponProperties(object oItem); int ThrowingProperties(object oItem); int GloveProperties(object oItem); int ArmourType(object oItem); int AmmoType(object oItem); int ThrowingType(object oItem); int GloveType(object oItem); int MiscType(object oItem); int CreatureType(object oItem); int ItemProperties(object oItem); //added by Thaelson - converter for item level int FindItemLevel(object oItem) { int iGoldValue; int nIDd = GetIdentified(oItem); if(nIDd == FALSE) { SetIdentified(oItem, TRUE); iGoldValue = GetGoldPieceValue(oItem); SetIdentified(oItem, FALSE); } else { iGoldValue = GetGoldPieceValue(oItem); } if(iGoldValue <= 1000) return 1; if(iGoldValue > 1000 && iGoldValue <= 1500) return 2; if(iGoldValue > 1500 && iGoldValue <= 2500) return 3; if(iGoldValue > 2500 && iGoldValue <= 3500) return 4; if(iGoldValue > 3500 && iGoldValue <= 5000) return 5; if(iGoldValue > 5000 && iGoldValue <= 6500) return 6; if(iGoldValue > 6500 && iGoldValue <= 9000) return 7; if(iGoldValue > 9000 && iGoldValue <= 12000) return 8; if(iGoldValue > 12000 && iGoldValue <= 15000) return 9; if(iGoldValue > 15000 && iGoldValue <= 19500) return 10; if(iGoldValue > 19500 && iGoldValue <= 25000) return 11; if(iGoldValue > 25000 && iGoldValue <= 30000) return 12; if(iGoldValue > 30000 && iGoldValue <= 35000) return 13; if(iGoldValue > 35000 && iGoldValue <= 40000) return 14; if(iGoldValue > 40000 && iGoldValue <= 50000) return 15; if(iGoldValue > 50000 && iGoldValue <= 65000) return 16; if(iGoldValue > 60000 && iGoldValue <= 75000) return 17; if(iGoldValue > 75000 && iGoldValue <= 90000) return 18; if(iGoldValue > 90000 && iGoldValue <= 110000) return 19; if(iGoldValue > 110000 && iGoldValue <= 130000) return 20; if(iGoldValue > 250000) return 21; return 0; } void NukeBadItem(object oItem) { object oPlayer=GetEnteringObject(); string sName=GetName(oItem); string sReason=GetLocalString(oItem,"ITEMPROP"); string sMessage="Player " + GetName(oPlayer) + "(" + GetPCPlayerName(oPlayer) + ") ItemProp filter destruction of " + sName + ":" + sReason; WriteTimestampedLogEntry(sMessage); DelayCommand(10.0,FloatingTextStringOnCreature("Item " + sName + "destroyed due to " + sReason + "!",oPlayer)); DestroyObject(oItem); } void ItempropCheck(object oInv, int nPCLvl) { if (CreatureType(oInv)) NukeBadItem(oInv); else if(ArmourType(oInv) && ArmourProperties(oInv)) NukeBadItem(oInv); else if(AmmoType(oInv) && AmmoProperties(oInv)) NukeBadItem(oInv); else if(GloveType(oInv) && GloveProperties(oInv)) NukeBadItem(oInv); else if (ThrowingType(oInv) && ThrowingProperties(oInv)) NukeBadItem(oInv); //added by Thaelson - nuke item if adjusted lvl > PC lvl else if (FindItemLevel(oInv) > nPCLvl) NukeBadItem(oInv); } int ArmourProperties(object oItem) { int iAPro = FALSE; iAPro = GetItemHasItemProperty(oItem, ITEM_PROPERTY_ATTACK_BONUS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ATTACK_BONUS_VS_ALIGNMENT_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ATTACK_BONUS_VS_RACIAL_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ATTACK_BONUS_VS_SPECIFIC_ALIGNMENT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_BOOMERANG)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DANCING )+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS_VS_ALIGNMENT_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DAMAGE_BONUS_VS_SPECIFIC_ALIGNMENT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DOUBLE_STACK)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_ALIGNMENT_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_SPECIFIC_ALIGNEMENT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_EXTRA_RANGED_DAMAGE_TYPE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_HOLY_AVENGER)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_KEEN)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MASSIVE_CRITICALS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MIGHTY)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ON_HIT_PROPERTIES)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ON_MONSTER_HIT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MONSTER_DAMAGE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_POISON)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_REGENERATION_VAMPIRIC)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_TURN_RESISTANCE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_VORPAL)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_WOUNDING); if (iAPro > 0) { iAPro = TRUE; SetLocalString(oItem,"ITEMPROP","Armor Property Violation"); } return iAPro; } int ThrowingProperties(object oItem) { int iThrow = FALSE; iThrow =GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS_VS_ALIGNMENT_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS_VS_DAMAGE_TYPE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS_VS_RACIAL_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS_VS_SPECIFIC_ALIGNMENT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_BOOMERANG)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DAMAGE_RESISTANCE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DAMAGE_REDUCTION)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DANCING)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_KEEN)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DOUBLE_STACK)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_FREEDOM_OF_MOVEMENT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_IMPROVED_EVASION)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MIND_BLANK)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MONSTER_DAMAGE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ON_MONSTER_HIT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_SAVING_THROW_BONUS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_REGENERATION)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_SAVING_THROW_BONUS_SPECIFIC)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_TRUE_SEEING)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_TURN_RESISTANCE); if(iThrow > 0) { iThrow = TRUE; SetLocalString(oItem,"ITEMPROP","Throwing Weapon Property Violation"); } return iThrow; } int AmmoProperties(object oItem) { int iWPro = FALSE; iWPro = GetItemHasItemProperty(oItem, ITEM_PROPERTY_ABILITY_BONUS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS_VS_ALIGNMENT_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS_VS_DAMAGE_TYPE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS_VS_RACIAL_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_AC_BONUS_VS_SPECIFIC_ALIGNMENT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ATTACK_BONUS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ATTACK_BONUS_VS_ALIGNMENT_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ATTACK_BONUS_VS_RACIAL_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ATTACK_BONUS_VS_SPECIFIC_ALIGNMENT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_BOOMERANG)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DAMAGE_RESISTANCE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DAMAGE_REDUCTION)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DANCING)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_KEEN)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DOUBLE_STACK)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_FREEDOM_OF_MOVEMENT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_IMPROVED_EVASION)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MIND_BLANK)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MONSTER_DAMAGE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ON_MONSTER_HIT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_REGENERATION)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_SAVING_THROW_BONUS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_SAVING_THROW_BONUS_SPECIFIC)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_SPELL_RESISTANCE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_TRUE_SEEING)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_TURN_RESISTANCE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_BONUS_FEAT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N); if(iWPro > 0) { iWPro = TRUE; SetLocalString(oItem,"ITEMPROP","Ammo Property Violation"); } return iWPro; } int GloveProperties(object oItem) { int iGPro = FALSE; iGPro = GetItemHasItemProperty(oItem, ITEM_PROPERTY_BOOMERANG)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DANCING)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_DOUBLE_STACK)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_ALIGNMENT_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_SPECIFIC_ALIGNEMENT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_EXTRA_RANGED_DAMAGE_TYPE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_HOLY_AVENGER)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_KEEN)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MASSIVE_CRITICALS)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MIGHTY)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MIND_BLANK)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_MONSTER_DAMAGE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_ON_MONSTER_HIT)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_TURN_RESISTANCE)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_REGENERATION_VAMPIRIC)+ GetItemHasItemProperty(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION); if(iGPro > 0) { iGPro = TRUE; SetLocalString(oItem,"ITEMPROP","Glove Property Violation"); } return iGPro; } int ArmourType(object oItem) { int iIBA=GetBaseItemType(oItem); if (iIBA == BASE_ITEM_AMULET || iIBA == BASE_ITEM_ARMOR || iIBA == BASE_ITEM_BELT || iIBA == BASE_ITEM_BOOTS || iIBA == BASE_ITEM_CLOAK || iIBA == BASE_ITEM_HELMET || iIBA == BASE_ITEM_BRACER || iIBA == BASE_ITEM_SMALLSHIELD || iIBA == BASE_ITEM_TOWERSHIELD || iIBA == BASE_ITEM_LARGESHIELD || iIBA == BASE_ITEM_TORCH || iIBA == BASE_ITEM_BELT || iIBA == BASE_ITEM_BOOTS || iIBA == BASE_ITEM_RING) return TRUE; else return FALSE; } int AmmoType(object oItem) { int iIBW=GetBaseItemType(oItem); if (iIBW == BASE_ITEM_ARROW || iIBW == BASE_ITEM_BOLT || iIBW == BASE_ITEM_BULLET || iIBW == BASE_ITEM_TORCH) return TRUE; else return FALSE; } int ThrowingType(object oItem) { int iIBW=GetBaseItemType(oItem); if (iIBW == BASE_ITEM_THROWINGAXE || iIBW == BASE_ITEM_DART || iIBW == BASE_ITEM_SHURIKEN) return TRUE; else return FALSE; } int GloveType(object oItem) { int iIBG=GetBaseItemType(oItem); if (iIBG == BASE_ITEM_GLOVES) return TRUE; else return FALSE; } int CreatureType(object oItem) { int iIBC=GetBaseItemType(oItem); if (iIBC == BASE_ITEM_CBLUDGWEAPON || iIBC == BASE_ITEM_CPIERCWEAPON || iIBC == BASE_ITEM_CSLASHWEAPON || iIBC == BASE_ITEM_CSLSHPRCWEAP || iIBC == BASE_ITEM_CREATUREITEM) { SetLocalString(oItem,"ITEMPROP","Creature Item"); return TRUE; } else return FALSE; } void main() { object oPC = GetEnteringObject(); object oItem = GetFirstItemInInventory(oPC); int iSlot; int nLevel = GetHitDice(oPC); while (GetIsObjectValid(oItem)) { ItempropCheck(oItem, nLevel); oItem = GetNextItemInInventory(oPC); } for (iSlot=0; iSlot<17; iSlot++) { oItem = GetItemInSlot(iSlot, oPC); ItempropCheck(oItem, nLevel); } } Voila c'est tout @++ ![]() |
Revenir en haut | ![]() ![]() ![]() ![]() |
lendraste Grand Maître Chanteur du Conseil ![]() Messages: 1403 Localisation: Quelque part ailleurs |
![]() dadoune a écrit : ![]() Mai que les arme et armure hak,pas tout! c'est pour que les haké ne bute pas les légite dans mon arene Car sinon sa fai sa: ![]() ![]() fin bon je pensse que vous avez comprit Bon ba a+ ![]() - Je voudrais... - Je souhaite... - Je sollicite... - J'aimerais avoir... - J'apprécierais avoir... - J'implore votre assistance sur... - Je vous saurais gré de m'assister à propos de... - Quelqu'un aurait-il l'extrême amabilité de me donner... - Je ne saurais vous remercier assez si vous me donniez l'immense plaisir de bien vouloir ma prêter la main sur... Bref, la formule que tu préfères pourvu qu'on ait l'impression d'avoir le choix de ne pas te répondre poliment. Et puis, ça ne serait pas trop mal de dire "s'il vous plait" ou "merci d'avance" pour accompagner. Les émoticones, tout le monde n'y est pas sensible. Merci de tenir compte de cette remarque. _________________ Lendraste de Loreval Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel. La cité des mensonges - 1 |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |


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