Einzelnen Beitrag anzeigen
Alt 18.06.2011, 15:26   #1 (permalink)
Drunken Officer
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.109
Standard Türen bewegen

Hallo.

Ich bin ein absoluter Anfänger auf dem Gebiet undhabe mich an Mondkalbs Tut entlang gehangelt, aber stosse auf ein Problem.
Deshalb ergeben sich 2 Fragen
1.
Ich kann die Türen im Buldozer via Mausrad auf und zu machen, jedoch bekomme ich im Editor die Nachricht, dass er keine Animationsquelle in dem Objekt findet.
Ich habe "shop" als Grundmodel ohne Texturen und ohne Tür. Shop1 hat die Tür und die TExturen.

2. Kann mir jemand helfen, wie ich die Model.cfg & Config.cpp umschreiben muss, denn es sind ingesamt mehrere Shops. Alle baugleich.

Hier kommen die 3 Dateien die ich nutze. Ich bin für Hilfe sehr sehr dankbar.

Model.cfg
Code:
//Die Class "CfgSkeletons" definiert alle Beweglichen objekte (Selections) des Modells.
class CfgSkeletons {
//Immer erst Class Default erzeugen, und dann Dein eigentlich verwendetes Skelett davon ableiten.
class Default {
isDiscrete = 1;
skeletonInherit = "";
skeletonBones[] = {};
};
//Die Ableitung Deines Skelettes von der Class "Default".
class door_skeleton : Default {
isDiscrete=1;
skeletonInherit="";
// Die beweglichen objekte sind hier definiert. Wenn zwei Objekte direkt zusammen hängen, können diese selections zusammengehängt werden. 
// Wenn zwei Selections nicht zusammengeören, müssen sie mit einem ,"", voneinander getrennt werden.
skeletonBones[]= {
"Door",""
};
// Der letzte Eintrag bekommt kein Komma hinterhergesetzt.
};
};
// Die Class "CfgModels" definiert die eigentlichen animationen.
class CfgModels {
//Rotationsbewegung ""laden""
class rotation;
class Default {
sectionsInherit="";
sections[]={};
skeleton="";
class Animations {};
};
// Deine eigene Basisdefinition für ein beliebiges Objekt
class door {
sectionsInherit="";
sections[]= {};
// Der Skelettname aus der CFGSkeletons.
skeletonName="door_skeleton";
};
// Die eigentliche Anweisung für das Türmodell. das, was hier hinter dem "Class" steht, MUSS dem exakten Namen des .p3d Objektes entsprechen. (ohne den .p3d zusatz)
class shop1 : door {
sectionsInherit="door";
sections[]={};
// Die Drehanimation
class Animations {
// Der name, mit der die Animation angesprochen wird, wird mit dem "class XXX" parameter definiert.
class Open_door : Rotation {
// Bewegungsart: Drehung
type="rotation";
// Wann wir diese Animation ausfegührt? Durch den Benutzer.
source="user";
// Was soll sich drehen? Die Selection "Door"
selection="Door";
//Um welche Achse soll sie sich drehen?
axis="Door_Achse";
// Ist diese Achse in der Memory-LOD zu finden?
memory = 1;
// Winkel (In Radianten) des Objekts zu beginn des Spiels?
angle0=-1,8;
// Winkel des Objekts nach dem ausführen der Animation?
angle1=-0;
};
};
};
};
Config.cpp
Code:
class CfgPatches         {
        /* "Hallo ArmA2, das hier ist ein Addon, und es heißt "TUT_Wand"*/
        /* Der Name sollte identisch mit dem Ordnernamen sein, um bei fehlermeldungen*/
        /* Wie z.B. "Fehlendes Addon XYZ_Mausefalle" gleich die passende PBO zu finden*/
    class buildings    {
        units[] = {};
        weapons[] = {};
        requiredVersion = 0.1;
        requiredAddons[] = {};
    };
};

    /* Die Auswahlklasse im editor wie z.B. "Objekte" oder "Autos".*/
class CfgVehicleClasses {

    class buildings_VehicleClass {
        displayName = "rp-mods Buildings";
    };
};



class CfgVehicles {
        /* Alles zwischen hier und der"Class Land_ ..." ist wichtig, damit die Animation reibungslos und ohne Stocken funktioniert */
        /* Basisklasse "All" aus dem ""Speicher"" holen. */
    class All;
        /* Basisklasse "HouseBase" aus dem ""Speicher"" holen. */
    class HouseBase;                                                                    //Unötig ??? Vielleicht/wahrscheinlich nicht!
        /* Basisklasse "ruins" aus dem ""Speicher"" holen. */
    class Ruins: HouseBase {};                                                            //Unötig ???   Sicher!!
        /* Eine Eigene Basisklasse für Objekte erstellen*/
    class buildings_base_Object : All {
        scope = 0;
        side = 3;
        icon = "iconStaticObject";
        nameSound = "object";
        simulation = "house";
        picture = "pictureStaticObject";
        model="";
        sound = "Building";
        placement = "vertical";
        ladders[] = {};
        vehicleClass =  "";
        displayName = "";
        coefInside = 1;
        coefInsideHeur = 0.25;
        mapSize = 7.5;
        animated = true;
        armor = 200;
        destrType = "DestructNo";
        damageResistance = 0.004;
    };

        /* Eine Eigene Basisklasse für Gebäude erstellen*/
    class buildings_Housebase : buildings_base_Object {
        scope = 1;
        model = "";
        icon = "";
        displayName = "";
        animated = true;
        vehicleClass = "buildings_VehicleClass";                            //Aus Zeile 41
        nameSound = "house";
        accuracy = 0.2;
        typicalCargo[] = {};
        transportAmmo = 0;
        transportRepair = 0;
        transportFuel = 0;
        mapSize = 11;
        cost = 0;
        armor = 800;
        /*extern*/ class DestructionEffects;
    };
        /* Alles zwischen hier und der"Class All" ( Oben)  ist wichtig, damit die Animation reibungslos und ohne Stocken funktioniert */
        /* Das "Land_" vor jedem Objekt_Classname ist hochwichtig, damit die Zerstörungseffekte Funktionieren! Nach dem "Land_" MUSS der name des Objektes als .p3d ohne die Endung .p3d folgen!*/
        /* Hier wird unser Wandsegment (3x3m) Deinem ArmA2 verständlich erklärt */
    
    //grundmodel
    class Land_shop: buildings_Housebase {
        model = "\shop\shop.p3d";    /* Pfad zum Modell */
        displayName =  "$STR_rpmods_shop";     /* Verbingung zur Stringtable.csv */
                                            /* Wichtig ist das $ und das Großgeschriebene STR am Anfang */
        nameSound = "";                        /*  Name, beim Durchsagen des Objektes: Z.b. "2, goto that Bush" */
        mapSize = 8;                        /* Größe des icons */
        icon = "iconStaticObject";            /* Iconbild. Wenn ein eigenes vrwednet wird, muss hier der pfad zu diesem Bild stehen. Der Pfad ist wie bei "Model =" anzugeben */
        accuracy = 1000;   
        armor = 450;                        /* Hitpoints, wenn man so will */
        destrType = "DestructNo";            /* Art der Zerstörung, wenn Armor = 0 Ändern ??? */
        scope = 1;                            /* Soll es im Editor angezeigt werden? 1 = Nein, 2 = Ja */
    
    };
        
    //Hooker
    class Land_hookershop: buildings_Housebase {
        model = "\shop\hookershop.p3d";    /* Pfad zum Modell */
        displayName =  "$STR_rpmods_hooker";     /* Verbingung zur Stringtable.csv */
                                            /* Wichtig ist das $ und das Großgeschriebene STR am Anfang */
        nameSound = "";                        /*  Name, beim Durchsagen des Objektes: Z.b. "2, goto that Bush" */
        mapSize = 8;                        /* Größe des icons */
        icon = "iconStaticObject";            /* Iconbild. Wenn ein eigenes vrwednet wird, muss hier der pfad zu diesem Bild stehen. Der Pfad ist wie bei "Model =" anzugeben */
        accuracy = 1000;   
        armor = 450;                        /* Hitpoints, wenn man so will */
        destrType = "DestructNo";            /* Art der Zerstörung, wenn Armor = 0 Ändern ??? */
        scope = 2;                            /* Soll es im Editor angezeigt werden? 1 = Nein, 2 = Ja */
    

    };
    
    //shop 1
    class Land_shop1: buildings_Housebase {
        model = "\shop\shop1.p3d";    /* Pfad zum Modell */
        displayName =  "$STR_rpmods_shop1";     /* Verbingung zur Stringtable.csv */
                                            /* Wichtig ist das $ und das Großgeschriebene STR am Anfang */
        nameSound = "";                        /*  Name, beim Durchsagen des Objektes: Z.b. "2, goto that Bush" */
        mapSize = 8;                        /* Größe des icons */
        icon = "iconStaticObject";            /* Iconbild. Wenn ein eigenes vrwednet wird, muss hier der pfad zu diesem Bild stehen. Der Pfad ist wie bei "Model =" anzugeben */
        accuracy = 1000;   
        armor = 450;                        /* Hitpoints, wenn man so will */
        destrType = "DestructNo";            /* Art der Zerstörung, wenn Armor = 0 Ändern ??? */
        scope = 2;                            /* Soll es im Editor angezeigt werden? 1 = Nein, 2 = Ja */
    
    };
        
    //shop 2
    class Land_shop2: buildings_Housebase {
        model = "\shop\shop2.p3d";    /* Pfad zum Modell */
        displayName =  "$STR_rpmods_shop2";     /* Verbingung zur Stringtable.csv */
                                            /* Wichtig ist das $ und das Großgeschriebene STR am Anfang */
        nameSound = "";                        /*  Name, beim Durchsagen des Objektes: Z.b. "2, goto that Bush" */
        mapSize = 8;                        /* Größe des icons */
        icon = "iconStaticObject";            /* Iconbild. Wenn ein eigenes vrwednet wird, muss hier der pfad zu diesem Bild stehen. Der Pfad ist wie bei "Model =" anzugeben */
        accuracy = 1000;   
        armor = 450;                        /* Hitpoints, wenn man so will */
        destrType = "DestructNo";            /* Art der Zerstörung, wenn Armor = 0 Ändern ??? */
        scope = 2;                            /* Soll es im Editor angezeigt werden? 1 = Nein, 2 = Ja */
    
    };
    
        //shop 3
    class Land_shop3: buildings_Housebase {
        model = "\shop\shop3.p3d";    /* Pfad zum Modell */
        displayName =  "$STR_rpmods_shop3";     /* Verbingung zur Stringtable.csv */
                                            /* Wichtig ist das $ und das Großgeschriebene STR am Anfang */
        nameSound = "";                        /*  Name, beim Durchsagen des Objektes: Z.b. "2, goto that Bush" */
        mapSize = 8;                        /* Größe des icons */
        icon = "iconStaticObject";            /* Iconbild. Wenn ein eigenes vrwednet wird, muss hier der pfad zu diesem Bild stehen. Der Pfad ist wie bei "Model =" anzugeben */
        accuracy = 1000;   
        armor = 450;                        /* Hitpoints, wenn man so will */
        destrType = "DestructNo";            /* Art der Zerstörung, wenn Armor = 0 Ändern ??? */
        scope = 2;                            /* Soll es im Editor angezeigt werden? 1 = Nein, 2 = Ja */
    
    };
    
    //cuteguns
    class Land_cuteguns: buildings_Housebase {
        model = "\shop\cuteguns.p3d";    /* Pfad zum Modell */
        displayName =  "$STR_rpmods_cute";     /* Verbingung zur Stringtable.csv */
                                            /* Wichtig ist das $ und das Großgeschriebene STR am Anfang */
        nameSound = "";                        /*  Name, beim Durchsagen des Objektes: Z.b. "2, goto that Bush" */
        mapSize = 8;                        /* Größe des icons */
        icon = "iconStaticObject";            /* Iconbild. Wenn ein eigenes vrwednet wird, muss hier der pfad zu diesem Bild stehen. Der Pfad ist wie bei "Model =" anzugeben */
        accuracy = 1000;   
        armor = 450;                        /* Hitpoints, wenn man so will */
        destrType = "DestructNo";            /* Art der Zerstörung, wenn Armor = 0 Ändern ??? */
        scope = 2;                            /* Soll es im Editor angezeigt werden? 1 = Nein, 2 = Ja */
    
    };

    /* Hier wird unser Türsegment auf der Basis von deinem Wandsegment  ohne Tür Deinem ArmA2 verständlich erklärt */
class Land_shop1: Land_shop {
model = "\shop\shop1.p3d";
displayName = "$STR_rpmods_shop1";
/* Hier muss ArmA2 wissen, dass eine Quelle, um eine Animation auszulösen, vom Spieler (user) ausgeht */
class AnimationSources {
/* Diese Quelle heißt "Open_Door" */
/* Der Name muss Identisch mit der in der Model.cfg unter "CfgModels" definierten Animation sein. ("Open_Door")" */
class Open_door {
source = "user";
animPeriod = 4; /* Dauer der Animation in Sekunden */
initPhase = 0; /* Startpositon der Animation: "0" Entspricht dem Winkel von "Angle0" in der Model.cfg; "1" dem Angle1 */
};
};
/* Hier werden die Actionmenüeinträge definiert */
class UserActions
{
class Open_Door
{
displayName="$STR_OpenDoor";
onlyforplayer = true;
position="Door_knopf";
radius=1; /* 1 meter um die Vertice-punkte der Selection "Door_knopf" ist der Actionmenüeintrag sichtbar */
condition="this animationPhase ""Open_door"" < 0.5";
statement="this animate [""Open_door"", 1]";
};
class Close_Door : Open_Door
{
displayName="$STR_CloseDoor";
condition="this animationPhase ""Open_door"" >= 0.5";
statement="this animate [""Open_door"", 0]";
};
};
};
};
Stingtable.csv
Code:
LANGUAGE,English,German

STR_rpmods_shop,"shop,"shop"
STR_rpmods_hooker,"hookershop","hookershop"
STR_rpmods_shop1,"shop1","shop1"
STR_rpmods_shop2,"shop2","shop2"
STR_rpmods_shop3,"shop3","shop3"
STR_rpmods_cute,"cuteguns","cuteguns"
STR_OpenDoor,"Open Door","Tür öffnen"
STR_CloseDoor,"Close Door","Tür schließen"

Geändert von Drunken Officer (18.06.2011 um 15:28 Uhr).
Drunken Officer ist offline