forge et bd

Répondre
Partager Rechercher
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...
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés