JeuxOnLineForumsPlusConnectés : 286 (sites) | 407 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Répondre
Partager Outils Rechercher
Florynth
Roi
 

forge et bd

Bonsoir à tous,

en utilisant un peu les fonctions bd et regardant leurs fonctionnement (désolé si je suis en retard...) j'ai eu une idée... On peu faire une bd contenant tout (ou de moins beaucoup) des éléments nécessaire pour créé un objet magique au moyen d'une forge... voici le code nécessaire pour initialiser le contenu de la bd... j'ai mis 4 entré dans la bd, on exécute une fois ce script et après on récupère les fichier de bd dans le dossier datebase pour le partager avec d'autre... ou le réutiliser dans nos module... Pour l'instant le sort lancé et l'élément principale donc le même sort ne peux pas créé deux objet différent et chacun des objet créé nécessite deux composantes...

Code PHP:
void addForgeableItem(int spellstring component1string component2string result);

void main()
{
    
addForgeableItem(SPELL_CURE_MINOR_WOUNDS,"NW_IT_THNMISC001","NW_IT_THNMISC001","nw_it_mpotion001");
    
addForgeableItem(SPELL_HASTE,"NW_IT_MSMLMISC19","nw_it_mboots010","nw_it_mboots005");
    
addForgeableItem(SPELL_LIGHT,"NW_IT_GEM015","NW_IT_MRING023","nw_it_mring010");
    
addForgeableItem(SPELL_RAY_OF_FROST,"NW_WSWMLS002","NW_IT_GEM005","nw_wswmls007");
}

void addForgeableItem(int spellstring component1string component2string result)
{
    
int forgeableItem GetCampaignInt("FORGE_PRINCIPALE","NBR_FORGEABLE_ITEM");
    
forgeableItem ++;
    
SetCampaignInt("FORGE_PRINCIPALE","SPELL_ITEM_" IntToString(forgeableItem),spell);
    
SetCampaignString("FORGE_PRINCIPALE","COMPONENT1_ITEM_" IntToString(forgeableItem),component1);
    
SetCampaignString("FORGE_PRINCIPALE","COMPONENT2_ITEM_" IntToString(forgeableItem),component2);
    
SetCampaignString("FORGE_PRINCIPALE","RESULT_ITEM_" IntToString(forgeableItem),result);
    
SetCampaignInt("FORGE_PRINCIPALE","NBR_FORGEABLE_ITEM",forgeableItem);
    
SendMessageToPC(GetFirstPC(),"NBR : " IntToString(forgeableItem));

En suite dans l'objet que l'on veux se servir comme forge on utilise cette fonction :

Code PHP:
void main()
{
    
int forgeableItem GetCampaignInt("FORGE_PRINCIPALE","NBR_FORGEABLE_ITEM");

    
object component1 GetFirstItemInInventory();
    
object component2 GetNextItemInInventory();
    
int trouver;

    if(
GetNextItemInInventory() != OBJECT_INVALID)
        return;

    
int i;
    for(
<= forgeableItem i++)
    {
         
SendMessageToPC(GetFirstPC(),IntToString(i));
         if(
GetLastSpell() == GetCampaignInt("FORGE_PRINCIPALE","SPELL_ITEM_" IntToString(i)))
         {
            if(
GetTag(component1) !=  GetCampaignString("FORGE_PRINCIPALE","COMPONENT1_ITEM_" IntToString(i)))
            {
                if(
GetTag(component2) !=  GetCampaignString("FORGE_PRINCIPALE","COMPONENT1_ITEM_" IntToString(i)))
                    return;
                else if(
GetTag(component1) ==  GetCampaignString("FORGE_PRINCIPALE","COMPONENT2_ITEM_" IntToString(i)))
                {
trouver iforgeableItem+1;}

            }else if(
GetTag(component2) ==  GetCampaignString("FORGE_PRINCIPALE","COMPONENT2_ITEM_" IntToString(i)))
                {
trouver iforgeableItem+1;}

        }
    }
    if( 
trouver forgeableItem)
        return;
    
DestroyObject(component1);
    
DestroyObject(component2);
    
CreateItemOnObject(GetCampaignString("FORGE_PRINCIPALE","RESULT_ITEM_" IntToString(trouver)));

Je sais qu'il y a déjà des script de forge... mais je trouve le miens simple à utiliser...

De plus si vous voulez vous créé des forges spécials (exemple la forge de telle clan de nain ne créé pas les mêmes objet) vous faites juste remplacé FORGE_PRINCIPALE par FORGE_DES_NAINS
vous refête une initialisation dans un module et vous vous resservé du main sur la forge. Faite attention au script d'initialisation a utilisé une seule fois car il ajoutera les entrées a chaque exécution...

J'espère que tout est clair...

En passant je vous donne un autre script que vous pouvez placé par exemple dans une fontaine qui remplirait des bouteilles vides de sont liquides pour en faire une potion... danc cette exemple elle transforme les bouteilles vide en potion de soins légers. À mettre dans le on close ou dans le on open

Code PHP:
void main()
{
    
object oInInven GetFirstItemInInventory();

    while(
oInInven != OBJECT_INVALID)
    {
        if(
GetTag(oInInven) == "NW_IT_THNMISC001")
        {
            
DestroyObject(oInInven);
            
CreateItemOnObject("nw_it_mpotion001");
            return;
        }
        
oInInven GetNextItemInInventory();
    }

Si vous avez des questions ne vous géner pas... si c'est pour me dire que je fait beacoup de faute de français, c'est pas nécessaire de me le dire... je le sais, l'important pour l'instant c'est que mon code marche
__________________
Florynth ... bientôt un monde sera miens...
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > forge et bd
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 05h52.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite