Jeremin
moin moin
ich habe mich gestern abend fast totgesucht, und auch heute noch einiges an zeit darauf verwendet, um heraus zu finden, was man tun muss, um eine mod zu erstellen. die sprache ansich stellt für mich als c++ kundigen (noch) nicht so ein problem dar, aber was mir fehlt, sind infos, was eine mod grundsätzlich braucht, um zu funktionieren.
angenommen, ich möchte was simples machen, wie jedem spieler nach dem spawnen eine definierte waffe in die hand zu drücken (ich geh jetzt mal davon aus, dass das etwas einfaches ist): wie stelle ich das an?
klar ist, das bei jedem spawn event ne funktion aufgerufen werden muss, die die waffe verteilt, da habe ich auch script beispiele gefunden etc.
aber wie muss ich die script dateien benennen, wie schauts mit der ordnerstruktur aus, was wird als erstes aufgerufen, quasi eine main-funktion (und wie, also kann ich das irgendwo angeben?), und wie füge ich das danach zusammen (mit der csv und der makemod.bat, aber auch hier habe ich nicht genaueres gefunden)
vermutlich gibts das irgendwo und ich habs nur nicht gefunden (falls ja, schande über mich^^)
gruss
jeremin
mirko911
Hiho
selbe Sache:
Würde gerne was schreiben, nur findet man im Internet nicht viel .....
An die Grundliegenden Files in der .ff Datei komme ich mit so einem Dumper ran. Aber naja halt nicht an alles. DIe Scriptmenüs findet man damit allerdings nicht.
Vielleicht kann man sich irgendiwe gegenseitig aushelfen oder zusammentun ...
Wenn du Interesse hast schreib mir ne Mail oder PM bzw. adde mich in Xfire : mirko911
Also , wenn ihr ein netter Modder ist, mit dem man mal etwas labern kann, dann bitte ... xD
serthy
cod4 ist schon etwas schwieriger mit dem modden, würd euch gerne helfen dabei kenne mich aber garnicht mit den modfiles und compilern etc aus
nehmt doch mal mit einen .ff-decompiler mods auseinander die das beinhalten was ihr in etwa wollt (geht nur bei gsc-files)
vielleicht hilft euch das einen schritt weiter
mirko911
Da bin ich ja schon dran. Nur werden da wie gesagt die Scriptmenüs nicht mit decompiled.
GSC Datein sind damit kein Problem.
Nur wenn man jetzt wie ich vorhat einen Only Sniper Mod zu schreiben, der halt nicht einfach Default ist. Dann bekommt man da schon Probleme. Ich will jetzt z.B. am Anfang so eine Nachricht wie "Willkommen auf dem ... Only Sniper Server" machen. Die dann nur der neu connectete sieht. Und dass man bei der Waffenwahl Sniper + Pistole oder Sniper + Sniper wählen kann.
Vl sogar ein Levelsystem mit einbauen.... Nur das mit den Ranks wird auch nicht ausgelesen.
Naja. .. aber danke für den Hinweis
MfG Mirko
Jeremin
nein, das hab ich schon abgegrast, aber danke trotzdem
was ich noch gefunden habe:
Tutorial + Tools
Quelle
der beispiel funzt bei mir und es steht, wo was hin muss
ich probiere gleich mal was aus.
grüsse
jeremin
mirko911
hat ich auch schon gefunden.
Das erklärt aber nur , wie ich einen Raketenwerfer mit lila Smoke abgebe ...
Aber das Mappersunited Wiki hat mir zumindest mal eien Tipp gegeben, wie ich es schaffe das ich Text einblenden kann , der nach 5 Sek wieder ausgeblendet wird
Jeremin
also ich komme mit dem oben genannten link bestens zurecht, jetzt kommen allerhöchstens noch scriptfragen, denke ich.
zum glück ist
Script-Doc mein freund und helfer
da solltest du auch einiges an funktionen finden.
mirko911
naja, dann mal hoffen.
Was fürn Mod wolltest du eig. schreiben?
Jeremin
nichts bestimmtes, wollte nur mal selbst was basteln, weil es mich interessiert, wies geht
mirko911
soo, würde nur mal gerne wissen, wie ich es schaffe, dass ich eigene Waffenmenüs schreiben kann. Z.B. dass ich nur 2 Klassen habe und ich die eine Klasse "Klasse 1" nenne und die 2 Klasse "Klasse 2" und ich bei der Klasse jeweils immer eine Sniper hinterlegt habe. DIes müsste in dem changeclass.menu Dateien stehen, die bei den Mod Tools enthalten sind. Jedoch finde ich dort nichts über die Klassennamen etc
OLD MAN WITH GUN
Schau mal in die Dateien "raw\english\localizedstrings\class.str", "Mods\ModWarfare\ui_mp\scriptmenus\changeclass_marines_mw.menu" und "ModWarfare\ui_mp\scriptmenus\changeclass_opfor_mw.menu"
Dann solltest du dir noch die cac_ Menüs (
create
a class) anschauen. Dann musst du schon mal auch nen Blick in die _class.gsc und _modwarfare.gsc werfen. Die Waffen sind schon laut statstable.csv (auch mal nen Blick rein werfen und eventuell anpassen) den Klassen fest zugewiesen (Eine Sniper ist ne Sniper und kein Assault Rifle oder SMG). Das Spiel teilt die aber anhand der statstable den entsprechenden Menüpunkten zu. Also musst du dir da was ganz neues basteln.
mirko911
ok , dass klingt alles nicht so ganz einfach ....
aber schonmal danke für die Hilfe
EDIT:
also beim Modden bin ich total am failen ..... irgendwie klappt garnichts.
Selbst bei einfachen Textnachrichten kommt immer Syntax Error.
Is hier denn kein Modder , mit dem ich mal Skypen kann????
Bzw. Wo habt ihr eure Kentnisse her? Im Internet findet man fast nichts, dort wird nur erklärt , wie man Maps erstellt. Aber der Rest ......
OLD MAN WITH GUN
Original von mirko911
Selbst bei einfachen Textnachrichten kommt immer Syntax Error.
Schalte die dvar developer auf 1 und starte ne map mit /devmap
mp_mapname. Dann bekommst du auch angezeigt, wo der Fehler ist und kannst diesen beheben.
Original von mirko911
Is hier denn kein Modder,
Ähm, *räusper* signatur
Original von mirko911
mit dem ich mal Skypen kann????
Und da wundert es dich, das man im Internet fast nichts findet?
Hier im Forum oder garnicht.
Original von mirko911
Bzw. Wo habt ihr eure Kentnisse her?
Das bisschen was man findet, Jahre an learning by doing, try and error...
serthy
achja, wenn ihr mit den scriptmenus probleme habt, schaut mal in internet nach und downloaded euch cod2 quickmenus (extrataunts oder so), syntax sollte die selbe sein, an der engine dürfte sich fast nichts geändert haben (vll klappt copy&paste)
und simple textnachrichten (willkommensnachrichten) sollten doch kein problem sein, oder?
da wo die ganzen init()'s stehen einfach pfad\_welcome::init(); reinschreiben, und eine _welcome.gsc erstellen
in die dann das:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
init()
{
for(;;)
{
level waittill("connecting",player);
player thread welcomePlayer();
}
}
welcomePlayer()
{
self waittill("spawned");
self iprintlnBold("Herzlich Willkommen\nHab Spaß auf unseren Server");
self.wilcomed = true;
}
|
|
hoffe das syntax stimmt :o (ist auch nur ein sehr sehr einfaches beispiel)
ich weiß nur leider nicht wo das aufgerufen wird, in den gametypes,gsc?
achja, wenn OMWG was sagt stimmt das immer, also hört auf ihn!
OLD MAN WITH GUN
Original von serthy
hoffe das syntax stimmt :o (ist auch nur ein sehr sehr einfaches beispiel)
ich weiß nur leider nicht wo das aufgerufen wird, in den gametypes,gsc?
Der Script stimmt schon, fast.
Und ja, der script wird aus der _globallogic.gsc aufgerufen aund zwar aus der Funktion Callback_StartGameType() heraus (ist irgendwo im 3000er Zeilenbereich. Dort findet man am Ende der Funktion den Aufruf
thread startGame();
Davor fügt man dann z.B. die Zeile ein
thread maps\mp\gametypes\_welcome::init();
Dann erstellt man im Ordner maps/mp/gametypes eine neue Textdatei, die man
_welcome.gsc nennt.
Da packt man dann folgendes rein:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
|
init()
{
level thread onPlayerConnect();
}
onPlayerConnect()
{
for( ;; )
{
level waittill( "connecting", player );
if( isdefined( player.pers["player_welcomed"] ) )
return;
player.pers["player_welcomed"] = true;
player thread onSpawnPlayer();
}
}
onSpawnPlayer()
{
self endon ( "disconnect" );
self waittill( "spawned_player" );
self iprintlnBold("Herzlich Willkommen\nHab Spaß auf unseren Server");
}
|
|
mirko911
danke schonmal für den Tipp mit den Messages.
Hatte kurz bevor ich das gelesen habe folgendes gefunden
logoText = newClientHudElem();
//logoText.x = 250;
logoText.y = 14;
logoText.alignX = "center";
logoText.alignY = "middle";
logoText.horzAlign = "center";
logoText.vertAlign = "middle";
logoText.alpha = 0;
logoText.sort = -3;
logoText.fontScale = 2;
logoText.archieved = true;
//logoText setPoint( "TOP", "BOTTOM", 0, 20 );
logoText.glowColor = (0.3, 0.7, 0.2);
logoText.glowAlpha = 1;
logoText fadeOverTime(1);
logoText.alpha = 1;
logoText setText("Text");
wait 10;
logoText fadeOverTime(1);
logoText.alpha = 0;
logoText.alpha = 1;
logoText setText("Text");
wait 10;
logoText fadeOverTime(1);
logoText.alpha = 0;
werde mal versuchen, ob ich dass auch mit in das Script von OMWG einbauen kann. Müsste dann aber mit newClienthudelem(self) gehen, oder?
EDIT: jo klappt. THX, hatte dass vorher bei _load.gsc drinne. Aber das is besser.
Werde mich dann wieder melden , wennich wieder @home bin und ich mich mit den Scriptmenus befasse