CCI editelés
1.Amit a microsoft oldaláról szedtetek le(.NET Framework2.0)
2.Kitömörítitek egy mappába azt amit először szedtetek(CCI)
3.Elindítjátok a cci.exe-t:-Bal oldalon láttok két piros feliratot (Bardock, Gohan-Ad vagy vmi ilyesmi XD) Meg egy pirosat (sx.sample.core)
ezekkel most nem kell fgolalkozni! Felül a menüsorban van egy csillag ikon aminek a sarkában egy zöld kis vmi van
arra katt! Most előjön egy új ablak.
-Megadjátok a modell nevét a verziószámot (alap 1.0 XD), aztán a KÉSZÍTŐ nevét, most a a leírás jön(ide
nemszoktam semmit se írni ) A fusion kivételével kiszoktam pipálni az összeset (majd azt is leírom h a fusion-t
hogy lehet használni)
most beállítjátok jobb oldalon a csúszkán h hány szintet léphessen a karakter(ha1-re állítod értelem szerűen az
alap szint lesz neki! meg stb...)
-Katt a next gomra jobb oldalon alul Name-hez ha saiya-jin-t készítesz akkor azt hagyhatod ha meg nem akkor
értelemszerűen azt amilyen fajt készítesz. Akkor a Model-következik oda azt a nevet írod amilyen néven beteszed
majd a models/player mappába (pl.:ha ginyu nevet írsz oda akkor azt models/player/ginyu/ginyu.mdl ezen az
elérési úton fogja keresni a játék a modellt)
Ascend Time: ide azt írd h mennyi ideig változzon át a köv. szintre!
Perfect Ascend Time:ez arra az esetre kell ha már 2x több ki-d van mint amennyi kell az átváltozáshoz akkor ennyi idő
alatt változik át
Power Level:az adott szinten mennyi ki-d legyen
Perfect Power Level: ide az átváltozáshoz szükséges KI-t lehet beírni
Power Level Multiplier: hányszorosára nőjön a KI a szintlépés után...
Speed:alap a 400 minden szinttel olyan 100-150 értéket adjatok hozzá (lehet többet is csak akkor már nem lex
érdekes a dolog) ez a modell gyorsasága tehát ha 1000-es értéket beállítatok megy mint a villám xD
Health: értelem szerűen az életpontok csökkentése ill. növelése...
A két kis jelölőnégyzet : No Ascend ezt ne jelöld be ha azt akarod h át tudj változni...
No Descend ezt se jelöld be h ha nem akarod h netudj vissza változni
Teleport Range hány métert teleportáljon az ember!
Teleport KI cost: mennyi ki-t vesz le egy teleportálás
Ki rate: Asszem h mennyire fogy a KI-d a támadások illetve csak sima repülés során... (vagy h mennyire nemfogy xD)
Boost: ...
Most jön a köv. táblázat (Effect)
Glow:az a testedet körülvevő világító vmi minél nagyobb annál rondább (nem muszáj bepipálni)
Lighntning: Ha bepipálod (nem muszáj) akkor beállíthatod h a kari teste mely részén legyenek kissebb ill nagyobb
villámok!
Aura: ott az aurád elérési útját adhatod meg (lehet egyedi aura is csak tedd be az esf/models/evolutions/auras
mappába és add meg a nevét) az ez melletti kis kocka: kiválszthatod h milyen színe legyen az aurának!
Charge Color: milyen színű legyen a lövés (bár eddig soha nem olyan volt amilyet állítottam de mind1)
Köv. Táblázat (damage modifier) Sztem itt feltaláljátok magatok XD
Köv tábl. (Skills) Itt a hypermode-ot szoktam bepipálni meg az alatta levő számokat szoktam beállítani
Végül az utolsó táblázat (base attacks) Itt a támadásokat tudod beállítani (had ne mondjam el h melyik mit jelent XD)
Ha megvan kkor create és a cci/modellnév mappában keresd meg az elkészített ember.amxx-et (az ember az csak példa volt:P) ezt az amxx fájlt berakod az esf/core/plugins/cx mappába
----FÚZIÓ----
Ha olyan karit akartok csinálni a két ecx-ben megtalálható emberből jött létre (persze ilyenkor a cci-ben be kell pipálni az elején a fusion-t) akkor nem kell mást tenni csak belemenni abba a mappába ahova elmentetted az előbb elkészített fájlokat (alapból a cci mappájába teszi) és megnyitni a köv fájlt: .ClassExtension.core-t (JEGYZETTÖMBEL)
(most kicsit csitelek mert ezt hosszú lenne leírni XD)
Keresd meg a fájl teteje felé ezt a sort-->"#include "
most csainálj egy új sort és írd be ezt a kódot.
(megmutatom hogy kell ennek kinéznie ez #include alá másold be.)
---KÓD---
#include
public @FusionClassCreation ()
{
addFusion (
"Goku:Training Suit",
"Vegeta:Training Suit",
FUSION_DANCE,
{ 0, 0, 0 },
8_000_00,
2.0,
Float:{ 0.8, 0.8, 216.0, 216.0 },
Float:{ 0.0, 0.0, 0.0, 0.0 },
3.0
);
addFusion (
"Goku:Training Suit",
"Vegeta:Training Suit",
FUSION_DANCE,
{ 1, 1, 1 },
20_000_00,
2.0,
Float:{ 0.8, 0.8, 216.0, 216.0 },
Float:{ 0.0, 0.0, 0.0, 0.0 },
3.0
);
}
---KÓD VÉGE----
Most, mind a kettő addFusion ( " rész, az az amikor Goku és Vegeta normálalakban van (első sorozat kód)
és amikor ssj alakban van (2. sorozat kód.)
Látod hogy az elsőben { 0, 0, 0 } ez azt jelenti hogy a fúzió az első szinten van.
Ugyanez { 1, 1, 1 } azt jelenti hogy a fúzió az ssj alakban van.
FUSION_DANCE-t le tudod cserélni FUSION_POTARára hogy a fúzió csak potara fülbevalókkal működjön.
A 8_000_000 és 20_000_000 az alap KI határok hogy menyi KI-vel lehet haszánlni a fúziót.
az ez alatti szám a powerlevel multiplier azaz azt jelenti hogy a játékos hányszoros KI-t kap a
Fúzió után.
És az utolsó szám, a Float, az jelzi hogy a fúzió mennyi ideig tart.
Ha nincs ott szám akkor a fúzió örökké tart:P.
-------------FONTOS------------------
Nemcsak ezzel a 2 karakterrel lehet megcsinálni hanem mondjuk tegnap csináltam egy olyat h Goku:Training Suit helyére Trunks:Armor-t írtam Vegeta:Training Suit helyére meg Vegeta:Armor-t és így Trunks meg Vegeta fúziónált de ezt bárkivel meglehet csinálni aki bent van az ecx-be akár spéci kari akár eredeti!!
Jó szórakozást!!
----Hangok----
Kezdjük ott h megvannak a cci-vel kreált .core illetve .cxi fájlok. Most jön a puskázás elővesszük a Big Pack-t és az SC mappában egy karinak a MOD.sound.core-ját megnyitjuk (jegyzettömb )
// << WEAPON >> - Ide a támadások vagyis 'fegyverek' hangjai kerülnek
pl.: Gokunál
new MOD_SOUND_CORE[][][] =
{
// << WEAPON >>
{
"*/kamehame.wav",
"ecx.goku-ts/wc_kamehame.wav",
"ecx.goku-ts/wc_kamehame.wav",
"ecx.goku-ts/wc_kamehame.wav",
"ecx.goku-ts/wc_kamehame.wav",
"ecx.goku-ts/wc_jubeikamehameha.wav"
},
és ha mondjuk vegitával akarod akkor
"*/bigbang.wav",
"ecx.vegeta-ts/bigbang.wav",
"ecx.vegeta-ts/bigbang.wav",
"ecx.vegeta-ts/bigbang.wav",
"ecx.vegeta-ts/bigbang.wav",
"ecx.vegeta-ts/bigbang.wav"
meg stb... Bibííí
aztán jönnek a pain vagyis 'fájdalom' hangok xD
// << Pain >> - ezzel kezdődik és pl.:
// << Pain >>
{
"*/pain1.wav",
"ecx.goku-ts/p_pain1.wav",
"ecx.goku-ts/p_pain1.wav",
"ecx.goku-ts/p_pain1.wav",
"ecx.goku-ts/p_pain1.wav",
"ecx.goku-ts/p_pain1.wav"
},
ez gokunál... ugyanígy kell vegitánál is és a pain hangokból ált. 4 van: pain1.wav/2/3/4 és ezeknél ua. a felállás csak a számot kell cserélni.
Aztán a death 'halál' hang(ok)
// << Death >> pl.:
// << Death >>
{
"*/death.wav",
"ecx.goku-ts/p_death.wav",
"ecx.goku-ts/p_death.wav",
"ecx.goku-ts/p_death.wav",
"ecx.goku-ts/p_death.wav",
"ecx.goku-ts/p_death.wav"
}
és ezzel úgy nagyjából le is zárul a mod.sound.core-ba való irogatás DE az elejére és a végére (persze a közepére is) nagyon oda kell figyelni mert:
new MOD_SOUND_CORE[][][] = - ez az első sor aztán a köv sorban
{ - egy ilyen jellen nyitjuk meg a kódot és az utolsó sorban pedig
} - egy ilyennel zárjuk le
de ez nemcsak az elején meg a végén van hanem a példákból is látszik az adott kód elejét és végét is ezekkel kezdjük ill. zárjuk
2 kód-nál hasonló lesz:
{
"*/kamehame.wav",
"ecx.goku-ts/wc_kamehame.wav",
},
{
"*/ha.wav",
"ecx.goku-ts/w_kamehame.wav",
},
és az adott kód végén a } jel után , -t teszünk ha van még utána kód lásd az előző példánál ha nincs utána kód tehát az utolsó volt akkor:
{
"*/death.wav",
"ecx.goku-ts/p_death.wav",
}
};
így végződik...
nos ha a mod.sound.core editelését befejeztük jöhetnek a hangok berakása...
ezt a hangot: "ecx.goku-ts/p_death.wav" az esf/sound/ecx.goku-ts
mappába rakjuk és az összesnél ugyanez a szitu.
Ha nemtudod h hogy írd be akkor nézd meg a sound mappában egy karinak a hangjait és úgy.
pl.: a pain-nél nemtod h mit írj oda akkor megnézed és
"*/pain1.wav" és ez alá írhatsz mondjuk 1.wav-ot is csak akkor a mappában is ez legyen bent...
ha nem értitek akkor mondjátok meg h mit nem értetek és akkor azt megpróbálom jobban elmagyarázni Bibííí
bár nembiztos h sikerülni fog xD
By Balogh
Fx.core editelése
1. CCI-vel csináljatok 1 tetszőleges karaktert(csak azért legyen legalább 2 fejlődési szintje, mert akkor van értelme ennek)
beállítjatok, ahogy akarjátok a támadásait, erejét stb(lásd: a CCI tutort)
2. nyissátok meg a CCI mappán belül található CCI FxLib.pdf-et. Itt találtok sok, szép, képpel ellátott FX effektet, amit hozzá lehet adni a játékhoz. Miután kiámultátok magatok, nyissátok meg a karaktered mappájában található FX.core-t(wordpaddal, vagy amivel akarjátok)
3. ez, elméletileg full üres. most 1 egyszerű példában elmagyarázom, hogy kell 1 robbanás effektek berakni. Na mármost a következő a szisztéma:
mindig az effektet 1 "public" paranccsal kell megnyitni. Azután 1 szóközzel elválasztva a hivatkozási nevét kell megadni(ez lehet bármi, amit akarsz, a lényeg, hogy erre az effektre mindig ezzel a névvel tudsz hivatkozni a későbbiekben.) Rögtön a név után 1 ( CORE[] ) paranccsal zárul az 1. sor.
ezután enter, és 1 zárójel megnyitás karakter, vagyis ( kell. megint enter. 1 tabulátor után a következő sor jön:
AddFx( Core[0], "fxBlow" );. ez azt jelenti, hogy ehez a névhez, amit megadtál neki, hozzárendeli a robbanás effektet. ez a sor helyére más is beírható, a CCI FxLib.pdf-ben található példasort ide kell beírni.
megint enter, és most ez a sor jön:
return 1; ez pontosan nem tom, hogy mit takar, de nem számít
megint enter, és 1 fő zárójelet bezájátok ). Tehát így kell kinéznie:
public *fxBlow( Core[] )
{
**AddFx( Core[0], "fxBlow" );
return 1;
}
*ez a neve, amit adtál neki, és hivatkozol rá
**ezt a sort kell átírni a CCI FxLib.pdf-ben található paranccsokkal
ha például Goku Ssj 1-be való átváltozásakor lévő villámoszlopot akarod berakni, akkor így néz ki:
public fxvillam( Core[] )
{
AddFx( Core[0], "fxVerticalSpriteField", "sprites/ecx.lightning.spr", 1.7, 12, 100, 0, 200, 180, 255, 255, 5, 150, 600 );
return 1;
}
ahol a CCI FxLib.pdf-ben 2 parancs van, akkor a 2. paranccsal törölni kell az effektet.Illetve nem törölni, hanem leállítani vagy hasonlót jelent. Tehát ezt a villámot le kell zárni, akkor ezzel a paranccsal kell törölni:
public FX_off( Client )
{
*RemFx( Client, "fxVerticalSpriteField", 0);
**RemFx( Client, "fxPowerup", 0);
return 1;
}
*ide a többi lezárással rendelkező effektet is be kell írni. Tehát ha van még 1 powerup effekted(ez is benne van a CCI FxLib.pdf-ben),
**akkor azt aláírod,
ide másolgass be minden effektet, amit használni akarsz, ments és lépj ki,aztán nyisd meg a .ClassExtension.core-t
Van 1 rész, amit ki kell cserélni, mert különben nem tom miért, de nem lesz jó a tranformáció. Ezt nem olyan rég fejtettem meg, nem kis időt beleöltve. Így útólag rohadt egyszerű, csak rájönni volt macerás
na, a .ClassExtension.core-ban van 1 ilyen sor, keresd meg:
public @ClassInitTransformation ( Client, Level, bool:Perfect )
és cseréld ki erre:
public @ClassInitiateTransformation ( Client, Level, bool:Perfect )
ez nem tom, miért van, de csa kakkor jó, ha átírodXD
4. Ha megnyitottad, akkor menj az előbb átírt sorhoz: public @ClassInitiateTransformation ( Client, Level, bool:Perfect )
így kell kinéznie,azt a két sort másold alá,
public @ClassInitiateTransformation ( Client, Level, bool:Perfect )
{
new CORE[ 1 ];
CORE[ 0 ] = Client;
if ( Perfect )
az if(perfect) már megvan, csak a felette lévő 2 sort másold be. Ez kell, mert nem lesz jó az egész
lejjebb van olyan, hogy case1, case2. Ezek a szinteket jelentik, hogy mit csináljon PERFECT, vagyis tökéletes átváltozásnál, amikor elérted azt a szintet, amikor gyorsan változik át. Ezzel most nem foglalkozunk, elmagyarázom a hosszú átváltozást.
5. Méglejjebb van 1 :
switch ( Level )
{
case 1:
{
*
)
* ide kell írni, az második szint(későbbiekben "ssj") átváltozásához rendelt effekteket. Van ott case 2, case 3, mind a szintátváltozást tartalmazza. Oksa, így kell kinéznie az általam megcsinált Gohan Ssj transzformációja:
switch ( Level )
{
case 1:
{
** emit_sound( Client, CHAN_ITEM, "songohan/t_ssj.wav", 1.0, ATTN_NORM, 0, PITCH_NORM );
set_task( 0.001, "fxAura", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
** set_task( 0.001, "abc10", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( ***1.0, "fxBlow", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 1.3, "fxBlow", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 3.6, "fxBlow", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 4.0, "abc7", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 5.0, "abc6", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 5.4, "fxBlow", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 6.4, "fxBlow", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 6.5, "abc7", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 7.0, "abc6", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 7.5, "fxPwave", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 8.0, "abc7", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 9.0, "abc6", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 10.4, "fxBlow", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 14.0, "fxBlow", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 14.0, "fxBlow", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 14.0, "fxBlow", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 14.0, "fxPwave", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
set_task( 13.8, "fxspriterays", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
}
* ezzel a paranccsal kell berakni a hangot, hogy átváltozás során melyik hangfájlt olvassa be: karakternév/fájlnév.wav
**ezzel a paranccsal kell berakni az általunk az előbb elnevezett Fx effektet. az alapsor, így nézki:
set_task( 1.0, "(ide kell beírni az elnevezett effektet)", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
***set_task( (ide kell beírni, hogy a transzformáció hanyadik másodpercében jelenjen meg az effekt, "másodperc.tizedmásodpercben, "abc6", uniqueTaskID( Client,100 ), CORE, 1, "a",1 );
az átváltozás időintervallumát pedig a .ClassExtension.core-ban tod megadni. Keresd meg ezt a részt az elején van, neked, lehet, hogy nem teljesen ez van, nem baj, az addClassLevel sort kell nézni:
public @ClassCreation ()
{
createClass( { MOD_SOUND, MOD_CHARGE, MOD_WEAPON },
"Son Gohan", true, false, "Son Gohan", "" ); // Saiya-jin
addClassLevel( "Saiya-jin", "ecx.gohan",(a következő szám jelenti az átváltozást másodpercben kifejezve, ez alapból 10.0 mp=>), itt 14.0, ezt kell átírnod) 14.0, 1.0, 1200000, 700000, 2.0,
6. Ha ez mind megvan, akkor most el kell tárolni a modelleket, hangokat, sprites-eket, amit használtunk. EZt úgy lehet, hogy keresd .ClassExtension.core-ban :
PluginPreCache () sort. alatta van 1:
(
precache_model( "models/evolution/Auras/shape_01.mdl" );, ez az aurát tárolja. ide modelleket a köv. sorral lehet berakni
precache_model( "models/player/ecx.gohan.ssj/ecx.gohan.ssj.mdl" );
/karakternév/karaketrnév.mdl"):
ha hangok raktál be:
precache_sound( "songohan/t_ssj.wav" );
"karakternév/fájlnév.wav"):
ide az FX.core-ban berakott spriteseket is be kell másolni:
precache_model( "sprites/lightninghit.spr" );
"sprites/amilyen effektet beállítottál, annak a sprites nevét bemásolod pl ebből a részből
public fxAura200( Core[] )
{
AddFx( Core[0], "fxSprite", "sprites/lightninghit.spr", 100, 255, 0, 0, 0 );
return 1; "ezt kell visszaírni"
}
7. és akkor most ugrik a majom a vízbe, mert ha még ez nem lett volna elég, még van 1 dolog, amit be kell állítani. Ez eddig nem lenne baj, csak hogy én sem értem, illetve tudom, hogy miért és hogy kell beírni. Most bemásolom az enyémet, ez szerintem jó mindegyikhez, de nem tom, ha vkinek problémája lesz ezzel ,akkor írjon, megpróbálok segíteni. Keresd meg a végén a
public @ClassFinishTransformation ( Client, Level )
és a
public @ClassCancelTransformation ( Client, Level ) sorokat. e kettő helyére másold be ezt:
public @ClassFinishTransformation ( Client, Level )
{
RemFx( Client, "fxAvatar", 0);
FX_off(Client);
AddFx( Client, "fxBlow" );
remove_task( uniqueTaskID( Client, 100 ) );
}
public @ClassCancelTransformation ( Client, Level )
{
new CORE[ 1 ];
CORE[ 0 ] = Client;
FX_off(Client);
remove_task( uniqueTaskID( Client, 100 ) );
}
ezzel nekem így jó, nem tom, hogy nektek is jó lesz-e
és akkor tényleg az uccsó dolog, CCI-t megnyitjátok, kiválasztjátok a karakteretek nevét, és az eszközsoron zöld alapú körben van 1 fehér jobbra nyíl, arra katt, és ha nem talált hibát bemásolod az :esf\core\plugins\CX\-ba, csak figyelj rá, hogy ne legyen space a névben
jó szórakozást
By Balogh |