-
Lehrling
Eigene Gilde erstellen
Hallo, ich bin neu im modding. habe gestern angefangen und einen funktionierenden NPC erstellt, der mir dinge beibringen und einen dialog einwandfrei mit mir führen kann.
Nun wollte ich nach diesem erfolg eine neue Gilde in Gothic 2 integrieren, habe schon suchfunktion benutzt aber finde keine lösung. Wie kann ich eine neue gilde erstellen, der mein spielchar auch beitreten kann? hab eine guilds script gefunden, aber da sind nur die beziehungen der gilden festgelegt, muss ich da eine neue einfügen? bitte um hilfe
Frostfel
-
Eine neue Gilde einfügen geht nicht so richtig, du müsstest eine alte Gilde ersetzen. Wodurch soll sich denn die neue Gilde von den anderen unterscheiden? Reicht es vielleicht, wenn sie einer alten Gilde angehören, und nur in Dialogen "behaupten" eine andere Gilde zu sein?
-
Lehrling
mhh. und bei den mods wie dunkle magie oder so sind dann andere gilden zugunsten der dunklen magier flöten gegangen? okay und wie ändere ich dann den namen einer vorhandenen gilde? und wie mach ich in nem dialog dass mein char im charbildschirm die gilde wechselt? danke für die hilfe,
Frostfel
-
In Gothic II gibt es drei nicht verwendete Gilden. Die kann man verwenden, aber diese Gilden zählen nicht zu den menschlichen Gilden. Das bedeuted dann eine Menge skriptarbeit, damit die als Menschengilde gezählt werden.
-

Abenteurer
das geht doch leicht und nein es gibt nicht 3 sondern 6 nicht verwendete gilden du musst nur die gilden nummern hinten aendern und die 6 gilde oder wie viele du haben willst vor den seperator hum schreiben und dann halt noch in deer guilds.d eintragen wie das verhältnis ist.
Hierm al ein Script wie es bei mir aus sieht :
Code:
const int GIL_NONE = 0 ; // (keine)
const int GIL_HUMAN = 1 ; // Special Guild -> To set Constants for ALL Human Guilds --> wird verwendet in Species.d
const int GIL_PAL = 1 ; // Paladin
const int GIL_MIL = 2 ; // Miliz
const int GIL_VLK = 3 ; // Bürger
const int GIL_KDF = 4 ; // Magier
const int GIL_NOV = 5 ; // Magier Novize
const int GIL_DJG = 6 ; // Drachenjäger
const int GIL_SLD = 7 ; // Söldner
const int GIL_BAU = 8 ; // Bauer
const int GIL_BDT = 9 ; // Bandit
const int GIL_STRF = 10 ; // Prisoner, Sträfling
const int GIL_DMT = 11 ; // Dementoren
const int GIL_OUT = 12 ; // Outlander (z.B. kleine Bauernhöfe)
const int GIL_PIR = 13 ; //Pirat
const int GIL_KDW = 14 ; //KDW
//const int GIL_BELIARNOV = 15 ;
//const int GIL_BELIARKDF = 16 ;
const int GIL_EMPTY_D = 15 ; // NICHT VERWENDEN!
//-----------------------------------------------
const int GIL_PUBLIC = 15 ; // für öffentliche Portalräume
//-----------------------------------------------
const int GIL_JAG = 16 ;
const int GIL_BMIL = 17 ;
const int GIL_BNOV = 18 ;
const int GIL_BKDF = 19 ;
const int GIL_BPAL = 20 ;
const int GIL_SEPERATOR_HUM = 21 ;//erhoht norm 16
const int GIL_MEATBUG = 22 ;
const int GIL_SHEEP = 23 ;
const int GIL_GOBBO = 24 ; // Green Goblin / Black Goblin
const int GIL_GOBBO_SKELETON = 25 ;
const int GIL_SUMMONED_GOBBO_SKELETON = 26 ;
const int GIL_SCAVENGER = 27 ; // (bei Bedarf) Scavenger / Evil Scavenger /OrcBiter
const int GIL_GIANT_RAT = 28 ;
const int GIL_GIANT_BUG = 29 ;
const int GIL_BLOODFLY = 30 ;
const int GIL_WARAN = 31 ; // Waren / Feuerwaran
const int GIL_WOLF = 32 ; // Wolf / Warg
const int GIL_SUMMONED_WOLF = 33 ;
const int GIL_MINECRAWLER = 34 ; // Minecrawler / Minecrawler Warrior
const int GIL_LURKER = 35 ;
const int GIL_SKELETON = 36 ;
const int GIL_SUMMONED_SKELETON = 37 ;
const int GIL_SKELETON_MAGE = 38 ;
const int GIL_ZOMBIE = 39 ;
const int GIL_SNAPPER = 40 ; // Snapper / Dragon Snapper /Razor
const int GIL_SHADOWBEAST = 41 ; //Shadowbeast / Bloodhound
const int GIL_SHADOWBEAST_SKELETON = 42 ;
const int GIL_HARPY = 43 ;
const int GIL_STONEGOLEM = 44 ;
const int GIL_FIREGOLEM = 45 ;
const int GIL_ICEGOLEM = 46 ;
const int GIL_SUMMONED_GOLEM = 47 ;
const int GIL_DEMON = 48 ;
const int GIL_SUMMONED_DEMON = 49 ;
const int GIL_TROLL = 50 ; // Troll / Schwarzer Troll
const int GIL_SWAMPSHARK = 51 ; // (bei Bedarf)
const int GIL_DRAGON = 52 ; // Feuerdrache / Eisdrache / Felsdrache / Sumpfdrache / Untoter Drache
const int GIL_MOLERAT = 53 ; // Molerat
const int GIL_ALLIGATOR = 54 ;
const int GIL_SWAMPGOLEM = 55 ;
const int GIL_Stoneguardian = 56 ;
const int GIL_Gargoyle = 57 ;
const int GIL_Empty_A = 58 ;
const int GIL_SummonedGuardian = 59 ;
const int GIL_SummonedZombie = 60 ;
//const int GIL_EMPTY_B = 56 ;
//const int GIL_EMPTY_C = 57 ;
const int GIL_SEPERATOR_ORC = 61 ; // (ehem. 37)
const int GIL_ORC = 62 ; // Ork-Krieger / Ork-Shamane / Ork-Elite
const int GIL_FRIENDLY_ORC = 63 ; // Ork-Sklave / Ur-Shak
const int GIL_UNDEADORC = 64 ;
const int GIL_DRACONIAN = 65 ;
//const int GIL_EMPTY_X = 63 ;
//const int GIL_EMPTY_Y = 64 ;
//const int GIL_EMPTY_Z = 65 ;
const int GIL_MAX = 66 ; // (ehem. 42)
Grün+Rot = Gilden die ich geänder habe
BLau = Gilde die man noch aendern kann
-
Lehrling
ah ok vielen dank, also dann ersetze ich empty_a durch meine abkürzung für die gilde und setz sie vor den sep_hum. und wie leg ich dann die präoritäten der gilde fest? also wen sie mag, wen nicht, und wie sie ausgeschrieben heissen soll? nochmals danke, das war äußerst hilfreich
EDIT aber meine guilds.d sieht komplett anders aus, was muss ich da ändern (gibt keine leeren gilden, und keine sep_hum)?:
[Bild: guilds.png]
Geändert von Frostfel (16.08.2009 um 16:42 Uhr)
-

Abenteurer
muss jetzt ersnma kurz weg in 10min wenn ich zuhause bin schreib ich dir wie man es macht
-
Lehrling
ok vielen dank, ich warte dann
-
Hier mal etwas strukturierter (mit Tabellen solltest du schon klar kommen müssen):
Code:
// ******************************
// Gildenattitüden zum Spielstart
// ******************************
CONST INT TAB_ANZAHL = 16 * 16;
CONST INT GIL_ATTITUDES [TAB_ANZAHL] =
{
// --> None Pal Mil Vlk KdF Nov Djg Sld Bau Bdt Strf Dmt Out PIR KDW D
/* NONE*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* NONE*/ ATT_NEUTRAL, ATT_NEUTRAL, /* NONE*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* NONE*/ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* NONE*/ ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/**********************************************************************************************************************************************************************************************************************************************************************************************************************/
/* Pal */ ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /* Pal */ ATT_FRIENDLY, ATT_FRIENDLY, /* Pal */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Pal */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* Pal */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/* Mil */ ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /* Mil */ ATT_FRIENDLY, ATT_FRIENDLY, /* Mil */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Mil */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* Mil */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/* Vlk */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Vlk */ ATT_NEUTRAL, ATT_NEUTRAL, /* Vlk */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Vlk */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* Vlk */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/*********************************************************************************************************************************************************************************************************************************************************************************************************************/
/* KdF */ ATT_NEUTRAL, ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, /* KdF */ ATT_FRIENDLY, ATT_FRIENDLY, /* KdF */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* KdF */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* KdF */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/* Nov */ ATT_NEUTRAL, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /* Nov */ ATT_FRIENDLY, ATT_FRIENDLY, /* Nov */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Nov */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* Nov */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/*********************************************************************************************************************************************************************************************************************************************************************************************************************/
/* Djg */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Djg */ ATT_NEUTRAL, ATT_NEUTRAL, /* Djg */ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /* Djg */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* Djg */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/* Sld */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Sld */ ATT_NEUTRAL, ATT_NEUTRAL, /* Sld */ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /* Sld */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* Sld */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/* Bau */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Bau */ ATT_NEUTRAL, ATT_NEUTRAL, /* Bau */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_FRIENDLY, /* Bau */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* Bau */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/*********************************************************************************************************************************************************************************************************************************************************************************************************************/
/* Bdt */ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /* Bdt */ ATT_HOSTILE, ATT_HOSTILE, /* Bdt */ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /* Bdt */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL, /* Bdt */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/* Strf*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Strf*/ ATT_NEUTRAL, ATT_NEUTRAL, /* Strf*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Strf*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* Strf*/ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/* Dmt */ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /* Dmt */ ATT_HOSTILE, ATT_HOSTILE, /* Dmt */ ATT_HOSTILE, ATT_HOSTILE, ATT_HOSTILE, /* Dmt */ ATT_NEUTRAL, ATT_HOSTILE, ATT_FRIENDLY, /* Dmt */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL,
/**********************************************************************************************************************************************************************************************************************************************************************************************************************/
/* Out */ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /* Out */ ATT_FRIENDLY, ATT_FRIENDLY, /* Out */ ATT_FRIENDLY, ATT_FRIENDLY, ATT_FRIENDLY, /* Out */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* Out */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_FRIENDLY, ATT_NEUTRAL,
/* PIR */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* PIR */ ATT_NEUTRAL, ATT_NEUTRAL, /* PIR */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* PIR */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* PIR */ ATT_NEUTRAL, ATT_FRIENDLY, ATT_NEUTRAL, ATT_NEUTRAL,
/* KDW */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_FRIENDLY, /* KDW */ ATT_NEUTRAL, ATT_NEUTRAL, /* KDW */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_FRIENDLY, /* KDW */ ATT_HOSTILE, ATT_NEUTRAL, ATT_NEUTRAL, /* KDW */ ATT_FRIENDLY, ATT_NEUTRAL, ATT_FRIENDLY, ATT_NEUTRAL,
/* D */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* D */ ATT_NEUTRAL, ATT_NEUTRAL, /* D */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* D */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, /* D */ ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL, ATT_NEUTRAL
};
EDIT: Das rote Beispiel zeigt an, dass die Gildenlosen Neutral zu den Gildenlosen sind.
Selfmade Multi-Link Sig by Mantragon
-
Lehrling
ja das dachte ich mir schon, nur wie füg ich da eine neue gilde ein und wie mach ich dass mein char dazu wechseln kann in nem dialog unso weiter?
-
Das Script das du suchst heißt Constants.d Es befindet sich unter Scripts\Content\_intern . Dort kannst du die neuen Gilden eintragen (siehe Roignis).
Um die Gilde des Helden in einem Dialog zu verändern füg einfach folgende Codzeilen unter den Aufnahmedialog ein:
other.guild = DEINE GILDE;
Npc_SetTrueGuild (other, DEINE GILDE);
-
"Lies" einfach mal ein bisschen in den Originalskripten. Da kann man jede Menge lernen.
-
Lehrling
ausgezeichnet, danke, und wie lege ich dann die freundlich feindlich krams für meine g fest? einfach neue zeile in guilds.d ?
-
Wo man den das im Zauber einstellt, habe ich nicht gefunden, aber wer alles zu den "Bösen" gehört, steht in der Datei "\_work\data\Scripts\Content\AI\Human\C_Human\C_NpcIsEvil.d".
EDIT: Falscher Threat
Geändert von Marthog (16.08.2009 um 19:25 Uhr)
-
 Zitat von Frostfel
ausgezeichnet, danke, und wie lege ich dann die freundlich feindlich krams für meine g fest? einfach neue zeile in guilds.d ?
Eine neue Zeile, eine neue Spalte. Und dann die Attitüden festlegen.
EDIT: Attitüden sind folgende:
ATT_NEUTRAL --> neutrales Verhalten (Ich glaube entsprechende NPCs verfolgende deine Gilde mit ihrem Blick)
ATT_FRIENDLY --> freundliches Verhalten (keine Nebenwirkungen)
ATT_HOSTILE --> aggressives Verhalten (sprich Todfeinde)
Selfmade Multi-Link Sig by Mantragon
-
Lehrling
-
Lehrling
So jetzt fehlt mir nur noch wo ich den Namen meiner gilde einstelle, für den die Abk steht. also sagen wir ich hätte zb GIL_DRU für Druiden, wo stell ich ein dass die Gilde auch Druiden heisst?
-
 Zitat von Frostfel
So jetzt fehlt mir nur noch wo ich den Namen meiner gilde einstelle, für den die Abk steht. also sagen wir ich hätte zb GIL_DRU für Druiden, wo stell ich ein dass die Gilde auch Druiden heisst?
Schau mal in die Text.d (Verzeichnis: [GOTHIC 2]\_work\Data\Scripts\Content\Story).
Unter den ganzen Mobnames stehen die Gilden, da musst du deine eintragen.
Selfmade Multi-Link Sig by Mantragon
-
Lehrling
okay, ich versuchs ma, btw großes lob an die community hier, das is echt krass wie schnell man hier kompetente hilfe bekommt
-
Lehrling
jetzt hab ich meine 2 chars die der gilde WLD angehören sollten alles von NONE auf WLD gestellt, bei den dialogen sowie bei den chars an sich, jetzt meldet der parser beim parsen einen syntax fehler in der line 13. aber ich kann in den 13 lines der veränderten dateien nichts finden. seht mal bitte:
dialog Gareth: description = "Ich muss weiter";
dialog Nathir: return TRUE;
Gareth Charbogen: //AIVar
Nathir Charbogen: //AIVar
text.d: CONST STRING MOBNAME_BARBQ_SHEEP= "";
Startup.d: func void STARTUP_GLOBAL()
andere dateien hab ich seit es lief eig nicht verändert?! weiss einer wo der fehler liegen könnte? danke euch
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|