Umfrage

Ist das Tutorial nach dem übersicht Update verständlich ?

Brilliant
Suuuper
Schon gut
Najaaa
Fürn Hintern ^^

Autor Thema: [Tutorial] Cns und CMD programmierungs Tutorial  (Gelesen 8049 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Zodiac Uchiha

  • Oberst
  • ******
  • Beiträge: 198
  • Karma: +16/-1
    • Profil anzeigen
  • M.U.G.E.N Version: M.U.G.E.N 1.0
[Tutorial] Cns und CMD programmierungs Tutorial
« am: 14. Oktober 2010, 23:53:04 »
Hallo Leute!
Ich habe mich hier im Forum umgeschaut und habe nichts derartiges gefunden. Und da hier relativ wenig in details gegangen wird, möchte ich euch gerne helfen, ein wenig mehr Einblick in die CNS Programmierung zu bekommen. Ich habe eine Text Datei mit WordPad erstellt, die SEHR SEHR kurz ist. Ich hätte sie sehr ausführlicher und mit mehr Details versehen können, aber ich dachte mir, dass dies nur verwirren würde. ausserdem war ich auch ein wenig Faul  ( ich gebs ja zu  ;-) ) .

Ich möchte damit erreichen, dass mehr Deutsche sich für Mugen interessieren UND dass mehr Deutsche in die Programmierung von Mugen chars einsteigen. Im Moment sind Deutsche Spriter und Programmierer relativ rar gesäht und man sucht vergeblich, wenn man sich mit jemanden austauschen möchte bzw wenn man mit jemanden zusammen lernen will.

Im Vorfeld möchte ich zur Datei zweierlei erwähnen :
1. die enthaltenen Dateien Sctrls und trigger sind NICHT von mir geschrieben. das sind nämlich die originale Listen von Elecbyte, die der Version RC8 1.0 beigelegt sind. die sind sehr übersichtlich und geben eine schöne und erklärte übersicht der Trigger und State Controller.

2. ich habe bei meiner geschriebenen Datei KEINE erklärung zu den einzelnen state controller geschrieben , weil diese in der Datei Sctrls von Elecbyte super erklärt werden. wenn auch nicht alle sehr verständlich erklärt wurden. eine Generelle beschreibung von States ist natürlich da. einfach mal reinschauen heisst die devise. ich bin selber noch am lernen was das coding angeht und muss mich auch noch durchwühlen durch die sctrls.
Ausserdem habe ich meinen Usernamen nicht von dem hier im Forum übernommen, sondern von einem anderen. Zodiac Uchiha heisse ich also woanders. wundert euch also nicht darüber.

Tjoaa und wenn ihr fragen habt zur CNS und CMD Programmierung habt, dann fragt mich ruhig. aber eins vorweg : die KI muss ich auch noch lernen xDDD aber das wird schon.
eine Möglichkeit ist, mich hier im Forum anzuschreiben. eine andere ist, mich per Skype zu kontaktieren. meinen Skype namen findet ihr im schlusswort in der textdatei. und auch hier im Forum bitte ich Rechtschreibfehler zu entschuldigen. hauptsache man versteht was ich schreibe.

so genug gelabert und hier die Datei
MugenGermany Server - Download
« Letzte Änderung: 05. Februar 2016, 12:58:36 von C-r-a-v-e-r »

Offline Game-ZX

  • Liebt M.U.G.E.N Girls...
  • Bronze-Mitglied
  • *****
  • Beiträge: 1085
  • Karma: +87/-4
  • Geschlecht: Männlich
  • I bring hell on earth...
    • PSN - Game-ZX
    • MSN Messenger - darknessz@hotmail.de
    • Profil anzeigen
    • GZX Youtube Account
    • E-Mail
  • M.U.G.E.N Version: M.U.G.E.N 1.1b (Beta)
Antw: [Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #1 am: 15. Oktober 2010, 00:07:35 »
Die Hilfe können sie auch im Hilfe Thread bekommen.

Wäre es vielleicht möglich das du die Text Datei in diesen Thread einfügst?
So haben die User einen direkten Zugriff.

Wäre super und leichter zu betrachten.
GZX
« Letzte Änderung: 15. Oktober 2010, 00:11:39 von Game-ZX »

Offline Zodiac Uchiha

  • Oberst
  • ******
  • Beiträge: 198
  • Karma: +16/-1
    • Profil anzeigen
  • M.U.G.E.N Version: M.U.G.E.N 1.0
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #2 am: 15. Oktober 2010, 01:53:48 »
Sicher können sie die Hilfe im Hilfe Thread bekommen. dafür ist er ja da. aber so ein Tutorial für blutige anfänger ist sicher nicht verkehrt. Sonst wäre die Tutorial sektion ja überflüssig =) Und wenn man fragen hat, dann kann man die doch ruhig weiterhin hier im Forum stellen. Würde ich auch begrüssen, weil das ja nicht nur den leuten hilft , die die fragen stellen. sondern ja auch denen die sich den thread ansehen, logischerweise. damit man halt hier im Forum durchsuchen kann und möglichst alles findet was man sucht. und das will ich erreichen was CNS und CMD angeht. deswegen dieses kleine tutorial.

Man muss dieses Tutorial auch nicht unbedingt nutzen wenn man nicht möchte. ist lediglich gut gemeint von mir.
Was ich erreichen wollte ist, dass man in kurzer Zeit mit kurzem Aufwand mehr Ahnung von CNS und CMD bekommt. Ausserdem wäre es doch super, wenn die deutschen mugen foren ,wie vor allem dieses hier,  den internationalen in nichts nachstehen würde oder ? und um das zu erreichen habe ich versucht, den ersten schritt zu machen. wer weiss, vielleicht schreibe ich ja mal ein detailgenaueres oder jemand anderes tut dies und veröffentlicht es hier. wäre super.
Dass ich die Datei im falschen Thread gepostet habe tut mir leid, aber ich denke was die übersicht angeht, hat man auch den überblick, wenn man die Datei aufm rechner hat. trotzdem werde ich auf deinem Wunsch hin das Tutorial gerne hier reinposten, damit man auch sofort hier im Forum draufschauen kann. Ist ja gehopst wie gesprungen. die worte vorweg stehen oben in meinem ersten post. alles andere erklärt sich in dem Tutorial. wenn nicht, dann ruhig fragen.

Spoiler für Verstecktes:
Coding Tutorial von Zodiac Uchiha

Dieses Tutorial enthält wissenswertes über das Programmieren von Mugen chars in der Cns und cmd. Ausserdem wird dieses Tutorial die hilfe vom Programm Fighter Factory vorraussetzen. Desweiteren bitte ich Rechtsschreibfehler zu entschuldigen ^^ wichtig ist ja das ihr wisst was ich meine oder ? =)

Inhaltsangabe

1. kurze Erklärung vorweg
2. was ist eine State und wie ist sie aufgebaut ?
3. Liste der State Controllers
4. Liste der Trigger
5. kurze erklärung zu trigger
6. Spezielle States
7. schlusswort
8. programmierung eines leichten schlags



-------------------1. kurze erklärung vorweg---------------------------------------------------------------------
Alles was die Charaktere können , wird in sog. States geschrieben. jede State hat eine nummer um den jeweiligen Move zu nummerieren und somit identifizierbar machen. Man kann auch die Nummer der States frei bestimmen. Allerdings gibt es da etwas zu beachten. Ich gehe davon aus, dass ihr das Programm Fighter Factory heruntergeladen habt.das programm ist Freeware und ist von VirtuallTek (www.VirtuallTek.com). damit macht es richtig spass , charaktere zu basteln =).
also, zu beachten wäre dies : wenn man per Fighter Factory (FF) einen Charakter neu erstellt, wählt man bei Datei --> Templates --> Elecbyte Player. bei FF ist dieses Template bereits vorhanden, aber bei FF Ultimateist es nicht dabei. zumindest nach meinem Wissensstand. Evt ist es bei späteren Versionen hinzugefügt worden. Falls nicht kann man sich das Template irgendwo runterladen.
wenn man also dieses Template ausgewählt hat, dann programmiert FF euch einen vorgefertigten Charakter mit den Basics wo aber die animationen noch nicht dabei sind.
Jedenfalls werden da einige nummern für bestimmte sachen reserviert. und es wäre ratsam, sich diese nummern einzuprägen. aber im grunde brauch man sich nur dieses zu merken : man sollte für die eigenen moves folgende nummern NICHT benutzen : 0 - 199  und  5000 - 5999. So ist man auf der sicheren Seite.die states 0 - 199 sind die basics wie Stand, Ducken,Springen usw und die statenummern 5000 - 5999 sind reserviert für animationen wo der Charakter getroffen wird oder auf dem Boden liegt (sog. gethit States). Klar kann man trotzdem die nummern ändern aber man sollte dies doch einfach lassen, denn wenn das Template euch die Basics vorprogrammiert, spart euch das jede menge zeit. ausserdem nutzen die meisten auch dieses template und kennen diese Nummern auch als reserviert. wenn ihr euch also in foren austauschen wollt, dann wäre also besser man beachte diese nummern die reserviert sind. Man kann das Template also als eine Art Schablone sehen. ausserdem programmiert sie euch auch die Konstanten vor. d.h., sowas wie die lebenspunkte und die angriffs bzw. verteidigungspunkte, die ihr dann alle nach euren belieben verändern könnt.
ok, und nun zur Sache :


------------------2. was ist eine State und wie ist sie aufgebaut ?-------------------------------------------------------------
die state einer bewegung bzw eines moves fängt immer mit einer Definition an. die sog. Statedef. hier wird festgelegt, welche animation der Charakter in dieser State annimmt. hier wird auch die geschwindigkeit festgelegt die der Charakter draufhat zu beginn der state und auch der Typ , MoveTyp und die Physik der State. hier ein Beispiel mit erklärungen daneben :
[Statedef 6000]    ----> hier weisen wir der neuen State eine nummer zu, um den move leichter wiederzufinden.
type = S                     ----> hier wählen wir zwischen "S" = Stand , "A" = Air, "C" = Crouch. in dem beispiel links ist      es also ein standmove
movetype = A          ----> hier wählen wir aus "A"= Attack, "H" = gethit, "I" = Idle.Idle bedeutet dass der char weder angreift,noch                             getroffen wird
physics = S             ----> hier wählt man aus "S" = Stand,"A" = Air, "C" = Crouch(selbe wirkung wie stand),"N" =     None. bei "N" ist zu                  beachten, dass hier keine physics herrscht und man selber die erdanziehung machen muss. also die                                      fallgeschwindigkeit. in dem beispiel haben wir die Stand Physik.
velset = 0,0           -----> hier gibt man in x , y koordinaten die geschwindigkeit in der waagerechten und senkrechten richtung an.
                                         ein positiver x wert sorgt für einen vorwärtsschub nach rechts, während ein negativer y wert dafür sorgt, euren                                      char nach oben zu befördern. wenn man es weglässt, dann ist 0,0 der standard. genau wie im beispiel.
Juggle = 5              ------> ein char beginnt normalerweise mit 15 juggle points wenn er zu boden fällt, d.h. wenn er in der luft NICHT                                  mehr die kontrolle zurückgewinnt. und wenn unser move wie im beispiel 5 juggle points hat, dann kann er den                                  gegner 3 mal erwischen während dieser in der fall state ist. weil 15 : 5 = 3 . dieses system wurde eingefügt                                     um endlose Kombos zu vermeiden wobei dem gegner keine chance mehrgelassen wird, sich zu erholen und                zurückzuschlagen.
ctrl = 0           --------> ein booleanischer wert ( 1 für wahr oder 0 für unwahr) gibt an , ob der char am angfang der state                                    kontrollierbar ist. wenn dies im laufe der state nicht geändert wird, dann bleibt es natürlich so bis zum ende                                   der state.
anim = 6000             ------> hier wählt man aus dem air file die aktionsnummer der animation aus, die für den char in dieser state                                   gespielt werden soll.
poweradd = -1000    -----> hier legt man fest, wie viel power der move verbrauchen soll wenn er ausgeführt wird.
facep2 = 1        ---->ein booleanischer wert gibt an , ob man am anfang der state automatisch in sichtrichtung zum gegner                                   gedreht wird oder nicht. also 1 für wahr oder 0 für unwahr.
hitdefpersist = 1        ------> ein booleanischer wert gibt an , ob die hitdef der vorherigen state weiterhin aktiv bleiben soll , sobald zu                                      dieser state gewechselt wird. 1 für wahr oder 0 für unwahr.
movehitpersist = 0     ------> ein booleanischer wert gibt an , ob die movehit information (ob der vorherige move geblockt wurde,                                      verfehlt hat oder getroffen hat) in diese state übernommen wird.
hitcountpersist = 0     -------> ein booleanischer wert gibt an , ob die anzahl der hits der vorherigen state im "hinterkopf" behalten                                        werden sollen. (hat keinen einfluss auf den hitcounter im screen)
sprpriority = 2              ----> eine zahl zwischen 5 und -5 ( die 0 eingeschlossen) legt fest, welche anzeigepriorität die animation des                      char in dieser state hat. wenn ein effekt also den wert 3 hätte, würde er unseren char in dieser state                          überdecken wenn unser char wie im beispiel den wert 2 hat.

Ok. nun habe ich euch aufgelistet, welche möglichkeiten ihr habt, in der statedef sachen zu begin der state festzulegen. Hier kommt nun ein Beispiel, wo ihr sehen könnt, wie eine State in der basis aussieht :

[Statedef 200]
type = S
physics = S
movetype = I
ctrl = 0
anim = 200
velset = 0

[State 200, 1]            
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1

Den Teil mit Statedef haben wir oben schon durchgekaut. nun komme ich zum Teil den ihr dadrunter seht. in den eckigen klammern kann man nach dem komma eine beliebige nummer,ein wort oder Satz schreiben, damit man bei fehlern von MUGEN auf diese Zeile der cns verwiesen werden kann. etwa so : [State 200, ende der state und wechsel zum Stand]
auch die nummer kann man ändern, aber das ist nicht zu empfehlen, weil man ja so weiss in welcher statedef man suchen muss. also lediglich der übersicht wegen.
type = changestate       --> hier wird der statecontroller angegeben. d.h. also welche aktion man genau in diesem Teil der state                                              ausführen möchte. in diesem fall wird durch changestate die state gewechselt.
trigger1 = Animtime = 0        --> der trigger gibt den genauen Zeitpunkt an , WANN die gewünschte aktion stattfinden soll. in diesem                                                 Fall Wann die state gewechselt wird. Animtime = 0 bedeutet in dem fall "wenn die animation einmal                                              durchgespielt ist, bzw die animationszeit abgelaufen ist. Man kann die Zeiten der einzelnen Bilder der                                                      animation auch zusammenzählen in der air file. dann weiss man die genaue anzahl an Gameticks.
value = 0          --> hier gibt man die nummer der state an zu der gewechselt werden soll. die nummer 0 ist reserviert für                       den Stand.
ctrl = 1             --> ein booleanischer wert gibt an ob man die kontrolle über den char haben soll sobald zu der                         gewünschten state gewechselt wird. in diesem fall haben wir die kontrolle.

nach der Statedef folgen also TeilStates, in denen eine bestimmte aktion zu einem bestimmten Zeitpunkt ausgeführt wird. so setzt sich dann die state zusammen und wir haben einen Move, der in Mugen funktioniert. Wenn wir denn keine feher gemacht haben =)
noch eine kleine sache :



--------------------3. Liste der State Controllers----------------------------------------------------------------------------------
im Ordner dieser Textdatei befindet sich eine Datei namens "sctrls". dies sind die Documents für State Controllers die Von Elecbyte mit der Mugen RC8 Version mitgeliefert werden. das was in der datei sctrls drinsteht habe ich NICHT selber geschrieben! aber es ist eine übersichtliche auflistung der existierenden State Controllers. diese beziehen sich jedoch nur auf die Version 1.0 von Mugen ! Vorsicht ist also geboten. wer eine liste mit den State controllers haben möchte die sich noch auf die Mugen beta version beziehen, der sollte sich die beta nochmals downloaden und nach den docs ordner suchen . darin befindet sich dann auch die datei namens sctrls. wäre eigentlich nicht nötig gewesen diese datei beizufügen, weil man ja durch den Mugen download bei elecbyte alles beisammen hat. aber naja. so hat man alles wichtige auf einen griff.


--------------------4. Liste der Trigger-------------------------------------------------------------------------------------------------
für die Trigger gilt das selbe wie bei den State controllers. im ordner wo auch diese textdatei liegt, ist auch eine datei die sich "trigger" nennt. auch diese ist die selbe wie die , die in der RC8 version von mugen mitgeliefert wird und wurde auch nicht von mir geschrieben. wenn ihr auch da die trigger datei von der beta wollt, müsst ihr euch die im ordner der beta version von mugen kopieren. also auch hier wäre es nicht notwendig gewesen die datei beizufügen.

--------------------5. kurze erklärung zu Trigger----------------------------------------------------------------------------------------
Trigger sind bedingungen, Vorraussetzungen um den State Controllers ihre aktion durchführen zu lassen. Wir müssen Jedem State Controller einen Trigger zuweisen, damit dieser weiss, WANN er in kraft treten soll. Es kann auch sein, dass mehrere trigger vorkommen. in diesem Fall werden die Trigger mit nummern versehen. in etwa so :
Trigger1 = time = 0               
Trigger2 = animelem = 2

es ist wichtig, dass ein state controller mindestens 1 mal Trigger1 stehen hat. wenn man nur trigger2 stehen hat, bekommt man von Mugen eine Fehlermeldung.
wenn 2 mal Trigger1 auftaucht, dann bedeutet das, dass beide trigger wahr sein müssen, damit der state controller seine arbeit verrichtet. also nochmal zum verständnis : trigger1 ist die erste möglichkeit, den state controller auszulösen. trigger2 wäre eine andere möglicheit. trigger3 wieder eine andere. man kann bis zu trigger30 schreiben =) ich hätte ab und zu gerne mehr zur verfügung, aber naja. dann muss man halt etwas in die trickkiste greifen. aber diese gehört hier nicht rein =). weiter im text
letztenendes gibt es dann noch den Triggerall. der triggerall muss zusätzlich für ALLE trigger, die mit nummern versehen sind, wahr sein. das würde also bedeuten:
wenn man möchte, dass ein state controller seine aktion im 3. ODER 5. bild der animation ausführt, aber NUR wenn der Gegner gerade im getroffenen Zustand ist, dann schreibt man folgendes:
triggerall = p2movetype = H
trigger1 = animelem = 3
trigger2 = animelem = 5

und nun zähle ich euch mal ein paar triggermöglichkeiten auf. nur die gängigsten, damit man nicht unbedingt sofort zu der triggerliste greifen muss UND um euch die bedeutungen näherzubringen. und zwar schreibe ich 3 zeilen. die erste mit dem trigger, die zweite mit einem beispiel für ihn und die dritte für die erklärung. diese könnte halt auch etwas länger als eine zeile werden. aber ich nummeriere die trigger. dann wisst ihr wann ein neuer anfängt. also los

1. time
- trigger1 =  time = 5
- time gibt die zeit an , die man in der state verbracht hat. das beispiel bedeutet, dass der state controller aktiviert wird, wenn wir uns im 5. gametick der state befinden.

2. animelem
- trigger1 = animelem = 10
- animelem steht für "animation element" und gibt die nummer des bildes der momentan aktiven animation an. im beispiel würde der state controller also beim 10. bild der aktiven animation aktiviert werden.

3. animelemtime
- trigger1 = animelemtime(2) = 5
- legt die animationszeit eines bestimmten bildes in einer animation fest. im beispiel würde unser state controller aktiviert werden , wenn das 2 bild der aktiven animation noch 5 gameticks übrig hat. "zu beachten ist hierbei, dass bei den animationen die zeit von dem angegebenen wert, runter auf null gezählt wird"

4. anim
- trigger1 = anim = 3000
- dieser trigger gibt die nummer der animation an, die aktiv sein soll, damit der state controller aktiviert wird. im beispiel würde es also die animation mit der nummer 3000 sein. die nummer der animationen findet ihr im air file unter aktionsnummer.

5. animtime
- trigger1 = animtime = 0
- dieser trigger legt die animationszeit fest, in der der state controller aktiviert werden soll. d.h. er addiert die zeitangaben aller bilder der animation zu einer summe zusammen und der festgelegte wert stellt den Zeitpunkt dar, wann der trigger wahr sein soll. im beispiel soll der trigger wahr sein, wenn die zeit auf null galaufen ist. mit anderen worten : wenn die animation einmal durchgespielt worden ist.

6. p2life
- trigger1 = p2life = 0
- p2life gibt den wert der lebenspunkte an , über die der gegner noch verfügen soll. im beispiel würde der gegner also tot sein müssen damit der trigger wahr ist. denn mit 0 lebenspunkten kämpft es sich ja nicht so gut ;-) .

7. life
- trigger1 = life = 0
- ist das selbe wie punkt 6. nur dass man hier die eigenen lebenspunkte im blick hat. in diesem beispiel müsste man selbst also tot sein, wenn der trigger wahr sein soll.

8. stateno
- trigger1 = stateno = 3000
- dieser trigger gibt an , in welcher state sich unser char befinden muss um den trigger wahr werden zu lassen. im beispiel müsste er also in der state 3000 sein um den trigger wahr werden zu lassen.

9. p2stateno
- trigger1 = p2stateno = 3000
- das selbe wie punkt 8. nur dass hier die gegnerische state abgefragt wird.

10. ctrl
- trigger1 =  ctrl = 1
- dieser trigger fragt ab, ob der spieler die kontrolle über seinen char haben muss und wird mit einem booleanischen wert auf seine wahrheit geprüft ( 1 für wahr und 0 für unwahr). im beispiel müssten wir also die Kontrolle über unseren char haben um den trigger wahr werden zu lassen.

das wären so die gängigsten die mir einfallen und für euch einigermassen verständlich sein sollten. man muss beachten, dass man mit mathematischen begriffen wie "grösser als : >" , "kleiner als : <" , "grösser gleich :   >= "   mit der Bedeutung der trigger herumspielen kann. etwas was mit persönlich viel spass macht, weil ich meine Fantasie spielen lassen kann. ein beispiel hierfür wäre dieses:
trigger1 = time = 20  ----> würde ja bedeuten, dass man im 20. gametick der state sein muss um den trigger wahr werden zu lassen.

aber....

trigger1 = time >= 20  -----> würde heissen, dass der trigger ab dem 20. gametick der state wahr ist.

Diese Spielereien ermöglichen es, die trigger extrem flexibel zu machen und somit eure Möglichkeiten erhöhen. damit sollten die trigger in der basic erklärt worden sein.

-------------------6. Spezielle States----------------------------------------------------------------------------------------------------
Für JEDEN char gibt es ausserdem noch spezielle State nummern, die ebenfalls reserviert sind. es sind auch die einzig erlaubten States mit negativen nummern. fangen wir mit der ersten an :

Die State -1 sind statewechsel, die durch die eingabe von Tasten ausgelöst werden. diese State besteht aus 2 Teilen. 1. Der definition von commands. 2. State zuweisung. in der command definition muss man leider auf die Gross und kleinschreibung achten.
Dies sind die 8 Richtungen : B, DB, D, DF, F, UF, U, UB....wobei D = Down, B = Back, F = forward, U = Up bedeuten. Die sieben Tasten sind  a ,b ,c, x, y, z, s. Die Command definition sieht so aus :

[Command]
name = " supermove"      einen namen für den command eingeben. den namen werden wir in der State zuweisung brauchen
command = D, F, a         bedeutet : Down, Forward, a
time = 15            das ist die zeit in der man den command eingeben muss damit er erkannt wird.

wie bereits erwähnt, braucht man den namen in der State zuweisung um der State diesen command zuzuweisen. was den command angeht , werden Richtungen und Tasten jeweils mit einem komma getrennt. ausserdem kann man vor den richtungen und tasten ein Präfix zuweisen. ich liste sie euch mal auf.
Slash ( / ) . Wenn der Slash als Präfix steht, dann bedeutet dies, dass die Taste oder die richtung gedrückt gehalten werden muss. hier ein Beispiel dafür :

command =  /s
dieses bedeutet , dass man die taste s gedrückt halten muss.ein anderes Beispiel ist dieses:

command = /DF, a
dieses bedeutet , dass man die Taste a drücken muss WÄHREND man DF gedrückt halt.

das nächste Präfix ist dieses
( ~ )  Wenn dieses Zeichen als Präfix steht, dann bedeutet das, dass man die Taste oder Richtung loslassen muss. man kann auch die Zeit in Gameticks angeben wie lange man die Taste MINDESTENS gedrückt halten muss. hier wieder Beispiele :

command = ~c
dieses bedeutet, dass man die Taste c loslassen muss.

command = ~D, B, y
dieses bedeutet , dass man Down loslassen muss und dann nach hinten und dann y drücken muss.

command = ~20z
dieses bedeutet, dass man die taste z mindestens 20 ticks gedrückt halten werden muss und danach losgelassen werden muss.

Das nächste Präfix wäre das Dollar zeichen
( $ ) Dieses Präfix steht nur für Richtungen. und zwar funktioniert es folgendermassen.

command = $D
dieses beispiel wird feststellen ob D oder DF oder DB  gedrückt wird. also alles wo D vorkommt.

command = $B
hier wäre es also B, DB, UB.

das letzte Präfix wäre das pluszeichen. wobei es nicht wirklich ein Präfix ist, weil man es zwischen zweich sachen schreiben muss.
( + )es  gibt an welche 2 oder mehrere tasten zusammen gleichzeitig gedrückt werden müssen.

command = c+x
würde bedeuteten, dass man c und x gleichzeitig drücken muss.

das wären die Präfixe. natürlich kann man die ganzen sachen auch kombinieren um den gewünschten command zu erstellen.
Wenn ihr mehrere commands mt dem selben namen definiert habt, dann würden alle versionen mit dem selben namen für den selben zugewiesenen move funktionieren.

durch folgende sache kann man per cmd die tastenbelegung ändern.
[Remap]
a = a
b = b
c = c
x = x
y = y
z = z
s = s
ich empfehle aber die tasten so zu lassen wie sie sind. also so wie im beispiel oben. in mugen selbst kann man die tastenbelegung ja selber auch nochmal ändern was für viele leute einfacher ist, als in der cmd rumzuwurschteln.

Kommen wir nun zu der State zuweisung. hier werden unsere namen der commands die wir gerade festgelegt haben, wieder aufgegriffen. genauer gesagt, sie werden bestimmten states zugewiesen. das sieht folgendermassen aus :

[Statedef -1]


; Run Fwd                     --> alles nach einem Semikolon wird ignoriert und man kann sich kommentare schreiben zur hilfe.
[State -1, Run Fwd]    -->  ich empfehle hier die nummer zu 100 zu wechseln , weil in FF links die übersicht in einer liste angezeigt wird
type = ChangeState   --> der Statecontroller der es möglicht macht, die State zu wechseln.
value = 100                  --> die nummer der State, zu der gewechselt wird wenn man den command mit dem namen eingibt.
trigger1 = command = "FF" --> bedingung, dass der command mit dem namen "FF" eingegeben werden muss
trigger1 = statetype = S       --> bedingung, dass der char in einer State mit Stand type sein muss.
trigger1 = ctrl                 --> bedingung, dass p1 die kontrolle über den char haben muss   


Dies macht man natürlich mit jeder State. die basics sind auch hier vorprogrammiert wenn man das template "Elecbyte Player" benutzt.

OK. die nächste Spezielle State ist die State -2. In dieser State werden all die Statetypes abgefragt, die in jedem Gametick überprüft werden müssen. ein beispiel ist dieses hier :

[State -2, Blitz sound]
type = playsnd
triggerall = stateno = 0
trigger1 = anim = 0
trigger1 = animelem = 3
value = S10, 1
channel = -1
volume = 100
ignorehitpause = 0

wenn man dieses Beispiel übernimmt und in die State -2 schreibt, dann spielt Mugen den Sound mit der Gruppe 10 und der Nummer 1 immer im 3. Bild der animation 0 ab. aber nur , wenn sich der char in der State 0 befindet. die state 0 ist reserviert für den Stand des chars. wenn man also einen Blitzeffekt um den char macht der zur selben Zeit auftaucht, dann könnte man hiermit zum Beispiel den Sound für den Blitzeffekt einfügen.

die nächste und letzte spezielle State wäre die -3. hier werden ebenfalls alle Statetypes reingeschrieben, die jeden gamtick geprüft werden müssen, mit ausnahme der Situationen, wo der char sich in einer speziell geschriebenen State vom gegnerischen char befindet. Wie zum Beispiel beim Wurf. ich denke ein Beispiel ist diesesmal nicht nötig, da es sich fast um die Selbe Geschichte handelt.
------------------------------7. schlusswort------------------------------------------------------------------------------------------
ich hoffe, dass ich euch wenigstens ein bisschen helfen konnte. ich möchte mit dieser SEHR SEHR kleinen textdatei erreichen, dass mehr Deutsche sich mit Mugen befassen und es 1. mehr leute gibt, die sich für Mugen interessieren und 2. dass es mehr leute gibt, die sich der Programmierung widmen.

Wenn in dieser sehr bescheidenen Tutorial datei etwas unklar ist, dann schreibt mir in MugenGermany.com eine PM. am besten mit euren Skypenamen. dann kann man unabhängig vom forum sich schreiben und fragen klären bzw sich austauschen. mein username im forum MugenGermany ist Sasuke Uchiha. und in MugenGuild.com findet ihr mich unter Zodiac Uchiha.
und hier mein Skypename für die Leute die gerne sofort mit mir kontakt aufnehmen wollen :

byakuyashinomori

;-------------------------8. programmierung eines leichten schlags--------------------------------------------------------------------
sooo... und nun wollen wir mal gemeinsam das gelernte anwenden, indem wir einfach mal nen leichten schlag programmieren. hierbei lernen wir einen neuen state controller kennen. die Hitdef. hiermit teilen wir mugen mit, wie viel schaden der move anrichten soll und welcher andere kram noch passieren soll wenn der move trifft. ich persönlich denke, dass dieser state controller der Alptraum eines jeden Anfängers ist. er wird aber in elecbytes docs gut erklärt. also in der sctrls datei. ich werde nur bedingt erklären. bei fragen also ruhig mal nachfragen. also ran an den Speck :

Spoiler für Verstecktes:
zuerst müssen wir uns eine nummer überlegen die wir der State zuweisen wollen, die unseren Schlag identifizieren lässt. Ich habe ja schon erklärt, dass wir 0 -199 und 5000 - 5999 auslassen sollten, weil diese für die "lebenswichtigen" states eines chars reserviert sind. das heisst also wir fangen einfach mal mit 200 an.
ausserdem nehmen wir mal an, dass unsere animation für den schlag die nummer 200 hat. das macht die übersicht leichter, weil in diesem Fall Animationsnummer = Statenummer. bedenkt bitte, dass alles, was ihr nach einem semikolon schreibt, NICHT zur programmierung eingezogen wird. Sondern nur als kommentar da steht. auch in der cns und cmd könnt ihr euch also kommentare auf diese art und weise machen. ok fangen wir an zu schreiben :
 

[Statedef 200]  ; zuweisung der statenummer
type = S            ; zuweisung , dass es ein move ausm Stand heraus ist
movetype = A    ; zuweisung, dass es ein angriff ist
physics = S        ; zuweisung, dass die StandPhysik, von elecbyte vorprogrammiert, herrscht
velset = 0,0       ; die geschwindigkeit der x und y achse ist 0. er bleibt also auf der stelle.
ctrl = 0               ; spieler 1 hat während der char sich in dieser state befindet, keine kontrolle über den char.
juggle = 3          ; man kann p2 5 mal damit in der luft erwischen wenn p2 fällt und sich nciht mehr erholt.
poweradd = 25  ; man bekommt 25 punkte in der powerbar gutgeschrieben durch diesen Move
anim = 200         ; zuweisung der animationsnummer, die während dieser state gespielt werden soll.

[State 200, HitDef]             ; definitionszeile, um den teil der state, bei fehlern wiederzufinden
type = HitDef                     ; State controller, der die treffer in der State definiert
trigger1 = animelem = 2   ; der move trifft beim 2. bild der aktiven animation. also hier die anim = 200
attr = S,NA                       ; Standing, Normal Attack
hitflag = MAF                    ; der gegner muss entweder stehen, in der luft oder fallend sein um ihn treffen zu können
guardflag = MA                ; der gegner kann den schlag nur im stand und in der luft blocken
getpower = 0,0               ; punkte, die in der powerbar gutgeschrieben werden
givepower = 0,0              ; das selbe nur beim gegner
animtype = light              ; der gegner zeigt eine leichte reaktion wenn er getroffen wird. mehr dazu evt später mal
air.animtype = light         ; das selbe nur wenn der gegner in der luft getroffen wird
priority = 3,Hit                 ; relativ niedrige priorität. mehr dazu auch erst später
damage = 5,0                  ; "schaden wenn der move trifft , schaden wenn der move geblockt wurde"
pausetime = 1,2             ; "zeit die p1 pausiert wenn der move trifft, zeit die p2 pausiert wenn der move trifft"
sparkno = 0                    ; special effect, der angezeigt werden soll wenn der move trifft
guard.sparkno = 0          ; selbiges, nur wenn der move geblockt wurde
sparkxy = 0,0                 ; x, y koordinaten wo der special effect angezeigt werden soll
hitsound = S1,0              ; "gruppe , nummer"    des gewünschten sound effects wenn der move trifft
guardsound = 0,0          ; selbiges, wenn der move geblockt wurde
ground.type = High        ; der gegner zeigt reaktion als ob er am kopf getroffen wurde. später mehr dazu
ground.slide = 0             ; ein negativer wert lässt den gegner nach hinten rutschen wenn er getroffen wird
ground.hittime = 6          ; zeit, die der gegner im getroffenen zustand verbringt (in der sog. gethit state)               
air.hittime = 10               ;selbiges nur wenn er in der luft getroffen wird
ground.velocity = 0,0      ; x, y koordinaten für die geschwindigkeit von p2 wenn er getroffen wird
air.velocity = 0,0             ; selbiges, nur wenn p2 in der luft getroffen wird
sprpriority = 2                 ; von -5 bis 5. höherer wert lässt sprites mit niedrigerem wert unter der animation ;des                                  chars anzeigen   
fall = 0                             ; ein booleanischer wert gibt an ob der gegner zu fall gebracht wird(1 für wahr und 0 für ;unwahr)
kill = 1                      ; ein booleanischer wert gibt an ob p2 durch diesen move tot gehen kann
numhits = 1            ; nummer an hits, die zum Kombo zähler hinzuaddiert werden sollen


; der state controller "hitdef" wird leider von Jedem anfänger gebraucht, weil er Mugen sagt, dass der Move auch
;trifft und schaden anrichten soll und jede menge anderen Kram verursachen soll. anfangs ist es schwer den
;überblick zu wahren. aber mit der zeit kommt man rein und kriegt den dreh raus. wie bei fast allen sachen. ich
;habe viele sachen ausgelassen bei der hitdef, aber so müsste es funktionieren

[State 200, Ende des Moves]
type = changestate           ; state controller, der den char WÄHrend der State in eine ANDERE State versetzt
trigger1 = !animtime         ; man könnte auch sagen : trigger1 = animtime = 0
value = 0                           ; versetzt den char in State 0. ist reserviert für den stand.
ctrl = 1                              ; man kann den char wieder kontrollieren

soooo....so würde das dann aussehen. man könnte jetzt auch noch sounds für die stimme des chars einfügen etc aber in der grundstruktur ist das schon richtig so.

ok und nun kommen wir zum cmd part, damit wir den move auch einsetzen können.

oben in der command definition muss folgendes stehen wenn wir den move den x knopf zuweisen wollen :
Spoiler für Verstecktes:
[Command]          ; eingabe definition
name = "x"          ; name der Eingabe
command = x       ; Ausführung der eingabe ( des commands)
time = 1               ; zeit die gebraucht werden darf um die eingabe erfolgreich erkennen zu lassen

keine panik...mit dem template "Elecbyte Player" ist das schon vorprogrammiert =)
aber nur bei den gängigsten sachen so wie einzelne knöpfe. wenn ihr Super moves programmieren wollt, dann
ist euer command für den super move natürlich noch nicht definiert.

und unten in der State zuweisung, also in der Statedef -1 muss stehen :

Spoiler für Verstecktes:
[State 200, leichter Schlag]     ; state zuweisung, bzw definition
type = changestate                 ; state controller, der den char in eine andere state wechseln lässt.
triggerall = command = "x"     ; man muss den befehl mit dem namen "x" eingeben
trigger1 = ctrl                          ; man muss die kontrolle über den char haben, d.h. man darf noch nix anderes tun
trigger1 = statetype = S         ; man muss im stand sein
value = 200                            ; nummer der state in die gewechselt werden soll

bitte bedenkt hierbei, dass ihr bei der animation im air file die rote Kollisions box setzt. ansonsten trifft der move nicht auch wenn die hitdef in der cns steht.
ausserdem kann ich es immer wieder nur betonen : alles, was in einer zeile NACH einem Semikolon steht, wird NICHT bei der Programmierung berücksichtigt und dient somit euch zum beispiel als kommentar.
das wars. wenn wir das gemacht haben, müsste der char nun den leichten schlag auf dem x knopf ausführen. bei fragen einfach fragen.

Danke fürs Lesen und viel Spass euch !!!

gez :   

Zodiac Uchiha   bzw hier im Forum natürlich  Sasuke Uchiha

 

in wordpad habe ich dicke überschriften etc verwendet und so um das alles toller aussehen zu lassen und um überblick zu gewähren aber ich denke das geht auch so. bin halt ne faule socke. Ausserdem hatte ich bei punkt 2 sinnvollere absätze gemacht bzw die erklärungsanfänge in jeder Zeile an der gleichen stelle anfangen lassen. deswegen habe ich mal jeden nächsten punkt fett gemacht. dann weiss man auch wann der nächste punkt besprochen wird.
ich hoffe , die kürze des tutorials sorgt für weniger verwirrung
« Letzte Änderung: 16. Oktober 2010, 00:40:33 von Sasuke Uchiha »

Offline Zodiac Uchiha

  • Oberst
  • ******
  • Beiträge: 198
  • Karma: +16/-1
    • Profil anzeigen
  • M.U.G.E.N Version: M.U.G.E.N 1.0
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #3 am: 15. Oktober 2010, 13:47:00 »
hi nochmals. Sorry wegen dem Doppel post. Aber ich wollte ganz gerne einen weiteren part einfügen in das Tutorial.
nämlich wollte ich euch zeigen wie man ein ganz normalen schlag angriff in der cns und cmd programmiert. Ich setze hier vorraus, dass ihr wisst, wie man in Fighter Factory Animationen erstellt. schliesslich wollen wir uns ja nur mit dem cns und cmd part beschäftigen. Also los gehts..
übrigens erlkäre ich den state controller Hitdef jetzt noch nicht, weil er in der sctrls steht und dort richtig gut erklärt wird, mit allen möglichkeiten die man hat. aber ein wenig beschreiben werde ich ihn gleich.

Spoiler für Verstecktes:
zuerst müssen wir uns eine nummer überlegen die wir der State zuweisen wollen, die unseren Schlag identifizieren lässt. Ich habe ja schon erklärt, dass wir 0 -199 und 5000 - 5999 auslassen sollten, weil diese für die "lebenswichtigen" states eines chars reserviert sind. das heisst also wir fangen einfach mal mit 200 an.
ausserdem nehmen wir mal an, dass unsere animation für den schlag die nummer 200 hat. das macht die übersicht leichter, weil in diesem Fall Animationsnummer = Statenummer. bedenkt bitte, dass alles, was ihr nach einem semikolon schreibt, NICHT zur programmierung eingezogen wird. Sondern nur als kommentar da steht. auch in der cns und cmd könnt ihr euch also kommentare auf diese art und weise machen. ok fangen wir an zu schreiben :
[Statedef 200]  ; zuweisung der statenummer
type = S            ; zuweisung , dass es ein move ausm Stand heraus ist
movetype = A    ; zuweisung, dass es ein angriff ist
physics = S        ; zuweisung, dass die StandPhysik, von elecbyte vorprogrammiert, herrscht
velset = 0,0       ; die geschwindigkeit der x und y achse ist 0. er bleibt also auf der stelle.
ctrl = 0               ; spieler 1 hat während der char sich in dieser state befindet, keine kontrolle über den char.
juggle = 3          ; man kann p2 5 mal damit in der luft erwischen wenn p2 fällt und sich nciht mehr erholt.
poweradd = 25  ; man bekommt 25 punkte in der powerbar gutgeschrieben durch diesen Move
anim = 200         ; zuweisung der animationsnummer, die während dieser state gespielt werden soll.

[State 200, HitDef]
type = HitDef
trigger1 = animelem = 2
attr = S,NA                       ; Standing, Normal Attack
hitflag = MAF                    ; der gegner muss entweder stehen, in der luft oder fallend sein um ihn treffen zu können
guardflag = MA                ; der gegner kann den schlag nur im stand und in der luft blocken
getpower = 0,0               ; punkte, die in der powerbar gutgeschrieben werden
givepower = 0,0              ; das selbe nur beim gegner
animtype = light              ; der gegner zeigt eine leichte reaktion wenn er getroffen wird. mehr dazu evt später mal
air.animtype = light         ; das selbe nur wenn der gegner in der luft getroffen wird
priority = 3,Hit                 ; relativ niedrige priorität. mehr dazu auch erst später
damage = 5,0                  ; "schaden wenn der move trifft , schaden wenn der move geblockt wurde"
pausetime = 1,2             ; "zeit die p1 pausiert wenn der move trifft, zeit die p2 pausiert wenn der move trifft"
sparkno = 0                    ; special effect, der angezeigt werden soll wenn der move trifft
guard.sparkno = 0          ; selbiges, nur wenn der move geblockt wurde
sparkxy = 0,0                 ; x, y koordinaten wo der special effect angezeigt werden soll
hitsound = S1,0              ; "gruppe , nummer"    des gewünschten sound effects wenn der move trifft
guardsound = 0,0          ; selbiges, wenn der move geblockt wurde
ground.type = High        ; der gegner zeigt reaktion als ob er am kopf getroffen wurde. später mehr dazu
ground.slide = 0             ; ein negativer wert lässt den gegner nach hinten rutschen wenn er getroffen wird
ground.hittime = 6          ; zeit, die der gegner im getroffenen zustand verbringt (in der sog. gethit state)               
air.hittime = 10               ;selbiges nur wenn er in der luft getroffen wird
ground.velocity = 0,0      ; x, y koordinaten für die geschwindigkeit von p2 wenn er getroffen wird
air.velocity = 0,0             ; selbiges, nur wenn p2 in der luft getroffen wird
sprpriority = 2                 ; von -5 bis 5. höherer wert lässt sprites mit niedrigerem wert unter der animation ;des                                  chars anzeigen   
fall = 0                             ; ein booleanischer wert gibt an ob der gegner zu fall gebracht wird(1 für wahr und 0 für ;unwahr)
kill = 1                      ; ein booleanischer wert gibt an ob p2 durch diesen move tot gehen kann
numhits = 1            ; nummer an hits, die zum Kombo zähler hinzuaddiert werden sollen


; der state controller "hitdef" wird leider von Jedem anfänger gebraucht, weil er Mugen sagt, dass der Move auch ;trifft und schaden anrichten soll und jede menge anderen Kram verursachen soll. anfangs ist es schwer den ;überblick zu wahren. aber mit der zeit kommt man rein und kriegt den dreh raus. wie bei fast allen sachen. ich ;habe viele sachen ausgelassen bei der hitdef, aber so müsste es funktionieren

[State 200, Ende des Moves]
type = changestate           ; state controller, der den char WÄHrend der State in eine ANDERE State versetzt
trigger1 = !animtime         ; man könnte auch sagen : trigger1 = animtime = 0
value = 0                           ; versetzt den char in State 0. ist reserviert für den stand.
ctrl = 1                              ; man kann den char wieder kontrollieren

soooo....so würde das dann aussehen. man könnte jetzt auch noch sounds für die stimme des chars einfügen etc aber in der grundstruktur ist das schon richtig so.

ok und nun kommen wir zum cmd part, damit wir den move auch einsetzen können.

oben in der command definition muss folgendes stehen wenn wir den move den x knopf zuweisen wollen :
Spoiler für Verstecktes:
[Command]          ; eingabe definition
name = "x"          ; name der Eingabe
command = x       ; Ausführung der eingabe ( des commands)
time = 1               ; zeit die gebraucht werden darf um die eingabe erfolgreich erkennen zu lassen
keine panik...mit dem template "Elecbyte Player" ist das schon vorprogrammiert =)

und unten in der State zuweisung, also in der Statedef -1 muss stehen :
Spoiler für Verstecktes:
[State 200, leichter Schlag]     ; state zuweisung, bzw definition
type = changestate                 ; state controller, der den char in eine andere state wechseln lässt.
triggerall = command = "x"     ; man muss den befehl mit dem namen "x" eingeben
trigger1 = ctrl                          ; man muss die kontrolle über den char haben, d.h. man darf noch nix anderes tun
trigger1 = statetype = S         ; man muss im stand sein
value = 200                            ; nummer der state in die gewechselt werden soll

das wars. wenn wir das gemacht haben, müsste der char nun den leichten schlag auf dem x knopf ausführen. bei fragen einfach fragen.
« Letzte Änderung: 19. November 2011, 10:21:11 von Zodiac Uchiha »

Offline Game-ZX

  • Liebt M.U.G.E.N Girls...
  • Bronze-Mitglied
  • *****
  • Beiträge: 1085
  • Karma: +87/-4
  • Geschlecht: Männlich
  • I bring hell on earth...
    • PSN - Game-ZX
    • MSN Messenger - darknessz@hotmail.de
    • Profil anzeigen
    • GZX Youtube Account
    • E-Mail
  • M.U.G.E.N Version: M.U.G.E.N 1.1b (Beta)
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #4 am: 15. Oktober 2010, 13:55:22 »
Warum editierst du die beiden Tutorials nicht in den ersten Post?
Das macht das ganze total unübersichtlich wenn du mich fragst.  ::)

Offline Zodiac Uchiha

  • Oberst
  • ******
  • Beiträge: 198
  • Karma: +16/-1
    • Profil anzeigen
  • M.U.G.E.N Version: M.U.G.E.N 1.0
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #5 am: 15. Oktober 2010, 14:02:35 »
joaa. einer seits haste da recht.
kann ich machen wenn ich die lust zu kriege. bis das geschehen ist, könnt ihr das als punkt 8 sehen

8. cns und cmd coding eines leichten schlags


Editiert von Sasuke Uchiha : ich habe diesen Punkt nun hinzugefügt. aber nur in dem part der hier im Forum steht. Ich werde das NICHT in meiner TextDatei aktualisieren, die zum Download bereitsteht. Diese dient nur zur erklärung und nicht zur Anwendung des gelernten.
« Letzte Änderung: 15. Oktober 2010, 14:53:38 von Sasuke Uchiha »

Offline DOY

  • Oberst
  • ******
  • Beiträge: 187
  • Karma: +8/-1
  • Geschlecht: Männlich
  • Sheng Long & Gouken sind nicht die selbe Person!
    • Skype - actioncom1981
    • Xbox Live - RR1DOY
    • PSN - RR1DOY
    • Steam ID - RR1DOY
    • ICQ Messenger - 637881165
    • AOL Instant Messenger - -
    • Yahoo Instant Messenger - moon.dancer81
    • Profil anzeigen
    • MugenSpriteMaster.de
  • M.U.G.E.N Version: M.U.G.E.N 1.1b (Beta)
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #6 am: 21. Oktober 2010, 23:40:26 »
Auf jeden ist das endlich mal ein Ordentliches CNS / CMD Tutorial
Und das auch endlich mal in Deutsch!!!!  8)

Offline Chris

  • Administrator
  • Foren Papst
  • *****
  • Beiträge: 1569
  • Karma: +143/-2
  • Geschlecht: Männlich
  • Mann für alles
    • Profil anzeigen
    • MugenGermany.com
    • E-Mail
  • M.U.G.E.N Version: Win M.U.G.E.N Plus
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #7 am: 22. Oktober 2010, 00:01:55 »
Endlich mal jemand, der sich an solche Tutorials ranwagt.
Ich hoffe du arbeitest noch ein wenig an der Formatierung des Tutorials.
Zur einfacheren Betrachtung des Tutorials habe ich es in ein PDF-Dokument konvertiert:
Download PDF - 139Kb
(neu formatiert durch Craver1990)

Ansonsten Daumen hoch ;)

MfG,
Chris

Offline Zodiac Uchiha

  • Oberst
  • ******
  • Beiträge: 198
  • Karma: +16/-1
    • Profil anzeigen
  • M.U.G.E.N Version: M.U.G.E.N 1.0
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #8 am: 22. Oktober 2010, 00:18:06 »
mit formatierung meinste bestimmt das aussehen der übersicht wegen mit
klaren absätz etc.  wenn ich bock habe, kann ich das gerne machen. kann aber dauern =)
immerhin lerne ich selber noch was das alles angeht.
ausserdem kann jeder das ding runterladen und im wordpad öffnen. dann liesst sich das auch anständig.
immerhin habe ich da alles am aussehen beachtet.
nur halt die umsetzung vom normalen Punch ist nicht drin. aber du hast ja das zeug schon umgewandelt. da gehe ich einfach mal davon aus, dass der punkt dann natürlich auch drin ist.

Offline Zodiac Uchiha

  • Oberst
  • ******
  • Beiträge: 198
  • Karma: +16/-1
    • Profil anzeigen
  • M.U.G.E.N Version: M.U.G.E.N 1.0
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #9 am: 22. Oktober 2010, 02:22:42 »
so das Tutorial ist im ersten Post aktualisiert und wesentlich Benutzerfreundlicher.

Wenn das wieder in PDF umgewandelt werden möchte, dann dürft ihr das gerne tun. Ausserdem könnt ihr damit machen was immer ihr wollt, solange ihr nciht behauptet, dass es von jemand anderes Wäre. Immerhin war das alles
richtig viel Arbeit für mich. und dann auch noch dieses übersichtsupdate. war richtig aufwendig . und es wäre ja dann schade, wenn man mir das dankt, indem man dieses Tutorial einfach als eigenes oder als das eines anderen ausgiebt.
Aber ich hab keine Ahnung, wann ich das hier im Forum anpasse. Da fehlt mir die Lust zu. ausserdem kann man sich die Datei auch gerne Runterladen. zumindest halt solange ich das hier aktualisiert habe.

ausserdem plane ich irgendwann ein part 2 zu machen, in dem ich eine Kompliziertere State schreiben werde. Um euch halt schritt für schritt lernen zu lassen. aber das kann nun erstmal warten.

Noch ein Tipp :
Wenn ihr euch wundert, warum ich keine kleine Schnellbeispiele zu State Controler gegeben habe, dann öffnet einfach mal Fighter Factory.  nun geht ihr einfach sofort auf das CNS Symbol. und rechts in der liste sind die state controler aufgelistet. und mit einem dopppel klick darauf, erstellt Fighter Factory eine vorlage die ihr nach euren belieben anpassen könnt.
und wenn ihr nicht wisst, was das eine oder andere bedeutet, dann öffnet ihr die Sctrls Datei aus euren Docs Ordner. da sucht ihr dann nach dem state controler und habt eine genaue beschreibung von allen sachen , die man mit dem state controler anstellen kann.
Ps: manche sachen finde ich nicht so gut erklärt in den Docs. aber das ist halt etwas womit man leben muss. Aber man kann sich ja austauschen was das angeht. ich habe ja im hilfe bereich einen Thread offen:
Frage zur cns (mit hilfe von Fighter Factory)
nur ich weiss grad nicht , ob man hier im Forum "wiederbeleben" darf. wenn der Thread halt nen gewisses alter hat, dass man da ncihts mehr reinschreiben darf. und zur not kann man halt nen extra Thread aufmachen. ist ja auch kein ding dann ^^
« Letzte Änderung: 22. Oktober 2010, 02:24:28 von Sasuke Uchiha »

Offline Vitobrine

  • The wild one!
  • Vegetarier
  • *
  • Beiträge: 413
  • Karma: +29/-6
  • Geschlecht: Männlich
  • \m/ Pendulum \m/
    • Skype - Vitobrine
    • Steam ID - Vitobrine
    • Profil anzeigen
  • M.U.G.E.N Version: M.U.G.E.N 1.0
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #10 am: 28. November 2010, 04:43:26 »
sau gute arbeit ^^

Offline Zodiac Uchiha

  • Oberst
  • ******
  • Beiträge: 198
  • Karma: +16/-1
    • Profil anzeigen
  • M.U.G.E.N Version: M.U.G.E.N 1.0
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #11 am: 28. November 2010, 22:35:03 »
Vielen Dank !
ich denke auf jeden fall, dass man damit mehr Ahnung von cns und cmd haben kann, wenn man sich ein wenig damit beschäftigt. wo ein wille ist, da gibts auch einen weg. aber ich habe ganz ehrlich einfach keine Lust das tutorial hier im Forum zu aktualisieren. in erster Linie war es so gedacht wie es jetzt auch ist. zum runterladen. und ich denke das wird sich so schnell nicht ändern.

im moment beschäftige ich mich nicht mit coding. obwohl ich eigentlich auch längst noch nciht ausgelernt habe. aber ich zocke im moment halt lieber. und wenn ich wieder mit mugen weitermache, dann werde ich mir auch erstmal 2 mugengames zusammen basteln. man will ja auch zocken und nicht nur entwickeln =)

solange es verständlich geschrieben ist und ihr zurechtkommt, ist alles klar. wie gesagt, bei fragen einfach im Hilfe bereich nachfragen. da wird man versuchen euch zu helfen.

Offline Oni Miku

  • Major
  • ****
  • Beiträge: 166
  • Karma: +9/-1
  • Geschlecht: Weiblich
  • persönliches bleibt persönlich x)
    • Profil anzeigen
  • M.U.G.E.N Version: Win M.U.G.E.N
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #12 am: 01. Januar 2011, 07:19:55 »
endliiiich *___*   meine lange suche hat ein ende xD   ein deutsches tutorial im bezug auf cns und co *-*  jetzt kann ich endlich special attacken zu meinen chars beifügen xD  glaub ich xD"    vielen dank ^^
Liiife....iss.....faaaading.....

Offline Vitobrine

  • The wild one!
  • Vegetarier
  • *
  • Beiträge: 413
  • Karma: +29/-6
  • Geschlecht: Männlich
  • \m/ Pendulum \m/
    • Skype - Vitobrine
    • Steam ID - Vitobrine
    • Profil anzeigen
  • M.U.G.E.N Version: M.U.G.E.N 1.0
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #13 am: 10. Januar 2011, 22:09:30 »
endliiiich *___*   meine lange suche hat ein ende xD   ein deutsches tutorial im bezug auf cns und co *-*  jetzt kann ich endlich special attacken zu meinen chars beifügen xD  glaub ich xD"    vielen dank ^^

ja hastvollkommen recht ich arbeite auch gerade an einen char(rock howard) -------->Evil  Steven ^^ naja mein orginaler char kann warten ^^

Offline Oni Miku

  • Major
  • ****
  • Beiträge: 166
  • Karma: +9/-1
  • Geschlecht: Weiblich
  • persönliches bleibt persönlich x)
    • Profil anzeigen
  • M.U.G.E.N Version: Win M.U.G.E.N
Antw:[Tutorial] Cns und CMD programmierungs Tutorial
« Antwort #14 am: 11. Februar 2011, 17:27:20 »
hallo ^^
ich hab ne frage vielleicht hab ich es überlesen aber wei kann ich zum beispiel einen move einführen in dem ich ein Kamehameha oder sowas benutze ^^ ich hab dann ja ne animation in der der char eine bewegung selbst macht udn dann der lazarstrahl oder sowas aus ihrer hand kommt ^^
bitte schnell um antwort ^^
ich mache nämlich bei einer challange mit xD"
Liiife....iss.....faaaading.....