• logo_cipsoft
    Nowe serwery zostały otwarte 19 Lut 2025:
    Noctalia (Open PvP) Ignitera (Open PvP) us_logo Xybra (Open PvP)

[7.6]Nowa profesja

kupaguwno

User
Dołączył
Czerwiec 10, 2008
Posty
11
Liczba reakcji
0
Witam!​
Prawdopodopnie nie pisze w tym dziale co trzeba ale trudno :D
Bardzo bym prosi? kogo? aby mi dok?adnie najlepiej ze zdj?ciami wyt?umaczy? jak sie robi nowe profesje pod silnik youroza 7.6 (mam folder source)
prosze o kontakt
gg
5083585
 
masz tu nowa profke ale wiec ze potem musisz wejsc w xxx/spells/spells.xml
i w te czaru kture ma miec ta nowa profka dopisac jej id tu akurat 9
wklejasz ja do pliku vocations.xml
a oto i ona
Kod:
</vocation>
<vocation id="9" name="Naruto" description="an naruto" gaincap="30" gainhp="30" gainmana="30" gainhpticks="2" gainhpamount="10" gainmanaticks="4" gainmanaamount="10" gainsoulticks="15" gainsoulamount="1" manamultiplier="3.0" attackspeed="10" prevoc="4" basespeed="220">
	<diepercent experience="7" magic="7" skill="7" equipment="7" container="100"/>
	<formula damage="2.2" defense="2.1" armor="2.1"/>
	<skill id="0" multiplier="2.1"/>
	<skill id="1" multiplier="2.1"/>
	<skill id="2" multiplier="2.1"/>
	<skill id="3" multiplier="2.1"/>
	<skill id="4" multiplier="2.1"/>
	<skill id="5" multiplier="2.1"/>
	<skill id="6" multiplier="2.1"/>
</vocation>
mozesz sobie jeszcze pozmienic np: jak szybko maja isc skile,magic lvl,hp,mana itp
reput mile widziany
 
masz tu nowa profke ale wiec ze potem musisz wejsc w xxx/spells/spells.xml
i w te czaru kture ma miec ta nowa profka dopisac jej id tu akurat 9
wklejasz ja do pliku vocations.xml
a oto i ona
Kod:
</vocation>
<vocation id="9" name="Naruto" description="an naruto" gaincap="30" gainhp="30" gainmana="30" gainhpticks="2" gainhpamount="10" gainmanaticks="4" gainmanaamount="10" gainsoulticks="15" gainsoulamount="1" manamultiplier="3.0" attackspeed="10" prevoc="4" basespeed="220">
	<diepercent experience="7" magic="7" skill="7" equipment="7" container="100"/>
	<formula damage="2.2" defense="2.1" armor="2.1"/>
	<skill id="0" multiplier="2.1"/>
	<skill id="1" multiplier="2.1"/>
	<skill id="2" multiplier="2.1"/>
	<skill id="3" multiplier="2.1"/>
	<skill id="4" multiplier="2.1"/>
	<skill id="5" multiplier="2.1"/>
	<skill id="6" multiplier="2.1"/>
</vocation>
mozesz sobie jeszcze pozmienic np: jak szybko maja isc skile,magic lvl,hp,mana itp
reput mile widziany

A zauwa?y?e? ?e mu chodzi o silnik 7.6?
Ty mu da?e? z 7.8-8.21
I jeszcze reputa chcesz?
Next razem wejd? w silnik 7.6 i sprawd?.
 
co do felek~ jak juz dajesz skrypt to sie zastanow czy jest dobry a jak juz jest to opisz go dokladnie-.-
@topic do stworzenia nowej profesji trzeba kompilowac w silniku a juz trochej bardzie zaawansowanym trzeba byc do tego :P jak bym mogl dodac linka to bym ci zucil jakis poradnik. ale opcja szukaj dost?pna a to forum jest bogate w takie rzeczy :P
 
Odp: [7.6]Nowa profesja

Wiesz co, nie chce byc okrutny czy cos,
ale prawdopodobnie nie otrzymasz poprawnej odpowiedzi na swoje pytanie...
 
Odp: [7.6]Nowa profesja

A wi?c:
Kod:
Siemaaa ... Widzze ze nie bylo tutaj zadnego takiego poradnika ...

Odrazu zaznaczam ze poradnik nie moj !


W tym temacie przedstawi? krok po kroku jak doda? now? klas? postaci (profesj?).
Jako nazw? dla swojej profesji wybra?em Barbarzy?c?, wy mo?ecie nazwa? j? jak sobie chcecie.

Zaczniemy od modyfikowania player.cpp:

Ju? na pocz?tku pliku znajdujemy:

const int Player::gainManaVector[5][2] = {{6,1},{3,1},{3,1},{4,1},{6,1}};
const int Player::gainHealthVector[5][2] = {{6,1},{6,1},{6,1},{4,1},{3,1}};


zmieniamy to na:


Kod:

const int Player::gainManaVector[6][2] = {{6,1},{3,1},{3,1},{4,1},{6,1},{12,1}};
const int Player::gainHealthVector[6][2] = {{6,1},{6,1},{6,1},{4,1},{3,1},{1,1}};


Jak zauwa?yli?cie lub
nie, zamiast [5] mamy teraz [6], m?wi to serwerowi, ?e teraz jest 6 profesji,a nie 5. na ko?cu ka?dego wiersza zosta?y te? dodane pewne liczby. {12,1} m?wi serwerowi, ?e co 12 sekund mana tej profesji ma rosn?? o 1 punkt. {1,1} m?wi za?, ?e co 1 sekunde ?ycie tej profesji ma rosn?? o 1 punkt.
Czemu takie liczby, a nie inne? Ot?? z g?ry sobie ustalilem, ?e m?j barbarzy?ca b?dzie posiada? najszybsz? regeneracj? ?ycia i najwolniejsz? regeneracj? many ze wszystkich innych klas. Wy wklepcie sobie liczby jakie wolicie. :P

Troche ni?ej w player.cpp widzimy:


const int Player::CapGain[5] = {10, 10, 10, 20, 25};
const int Player::ManaGain[5] = {5, 30, 30, 15, 5};
const int Player::HPGain[5] = {5, 5, 5, 10, 15};


zmieniamy to na:


const int Player::CapGain[6] = {10, 10, 10, 20, 25, 35};
const int Player::ManaGain[6] = {5, 30, 30, 15, 5, 5};
const int Player::HPGain[6] = {5, 5, 5, 10, 15, 20};


Liczby nowo dodane, czyli 35, 5 i 20 m?wi? o ile b?dzie wzarsta? ud?wig, mana i ?ycie podczas levelowania. Wszystko jasne? Idziemy dalej.

W player.cpp odnajdujemy funkcj? Player::getReqSkillTries i zmieniamy:


float SkillMultipliers[7][5] = {
{1.5f, 1.5f, 1.5f, 1.2f, 1.1f}, // Fist
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f}, // Club
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f}, // Sword
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f}, // Axe
{2.0f, 2.0f, 1.8f, 1.1f, 1.4f}, // Distance
{1.5f, 1.5f, 1.5f, 1.1f, 1.1f}, // Shielding
{1.1f, 1.1f, 1.1f, 1.1f, 1.1f} // Fishing
};

na:


float SkillMultipliers[7][6] = {
{1.5f, 1.5f, 1.5f, 1.2f, 1.1f, 1.1f}, // Fist
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f, 1.0f}, // Club
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f, 1.8f}, // Sword
{2.0f, 2.0f, 1.8f, 1.2f, 1.1f, 1.0f}, // Axe
{2.0f, 2.0f, 1.8f, 1.1f, 1.4f, 1.8f}, // Distance
{1.5f, 1.5f, 1.5f, 1.1f, 1.1f, 1.5f}, // Shielding
{1.1f, 1.1f, 1.1f, 1.1f, 1.1f, 1.1f} // Fishing
};

Warto?ci przedstawione powy?ej informuj? nas jak d?ugo trzeba trenowa?, aby awansowa? w danym skillu. Im wi?ksza liczba, tym d?u?ej trzeba trenowa?.
M?j barbarzy?ca najlepiej zna sie na obs?udze topor?w i broni obuchowych, a najs?abiej na shieldingu i mieczach.

Przechodzimy teraz do funkcji Player::getReqMana i odnajdujemy w niej wiersz:


float ManaMultiplier[5] = { 1.0f, 1.1f, 1.1f, 1.4f, 3};

i zmieniamy go na:


float ManaMultiplier[6] = { 1.0f, 1.1f, 1.1f, 1.4f, 3, 6};

Tutaj liczby m?wi? nam jak d?ugo trzeba rzuca? czary, aby awansowa? w mlvl. Im wi?ksza liczba, tym wi?cej czar?w trzeba rzuci?.
M?j barbarzy?ca b?dzie musia? si? sporo natrudzi? by wskoczy? na 1 mlvl. ;-)

Preskakujemy teraz do funkcji Player::gainManaTick() i zmieniamy w niej:


if(vocation >= 0 && vocation < 5)

na:


if(vocation >= 0 && vocation < 6)

To samo robimy w funkcji Player::gainHealthTick()

Teraz przenosimy sie do player.h gdzie zmieniamy:


static const int CapGain[5]; //for level advances
static const int ManaGain[5];
static const int HPGain[5];
static const int gainManaVector[5][2];
static const int gainHealthVector[5][2];

na:


static const int CapGain[6]; //for level advances
static const int ManaGain[6];
static const int HPGain[6];
static const int gainManaVector[6][2];
static const int gainHealthVector[6][2];

Odszukujemy r?wnie?:


enum playervoc_t {
VOCATION_NONE = 0,
VOCATION_SORCERER = 1,
VOCATION_DRUID = 2,
VOCATION_PALADIN = 3,
VOCATION_KNIGHT = 4,
};

i zmieniamy na:


enum playervoc_t {
VOCATION_NONE = 0,
VOCATION_SORCERER = 1,
VOCATION_DRUID = 2,
VOCATION_PALADIN = 3,
VOCATION_KNIGHT = 4,
VOCATION_BARBARIAN = 5
};

To tyle je?li chodzi o zmiany w player.cpp i player.h

Teraz musz? podzieli? poradnik na dwie cz??ci, dla os?b posiadaj?cych najnowszy CVS pod 7.72 i dla ludzi korzystaj?cych ze starych OTS'?w typu YurOts 0.9.4.

Zaczne od nowszego CVS gdy? mam ju? to zrobione. :mrgreen:

W configmanager.cpp znajdujemy:


for(int i=0; i<4; ++i)
m_confVocationString[i] = getGlobalStringField(L, "vocations", i+1, "unknown");

i zmieniamy na:


for(int i=0; i<5; ++i)
m_confVocationString[i] = getGlobalStringField(L, "vocations", i+1, "unknown");


W configmanager.h odszukujemy:


std::string m_confVocationString[4];

i zmieniamy na:


std::string m_confVocationString[5];


A teraz cz??? dla os?b korzystaj?cych z YurOtsa lub innych serwer?w pod 7.6.

W luascript.cpp odnajdujemy:


VOCATIONS[VOCATION_DRUID] = getGlobalStringField("vocations",VOCATION_DRUID);

i pod tym dodajemy:


VOCATIONS[VOCATION_BARBARIAN] = getGlobalStringField("vocations",VOCATION_BARBARIAN);


W luascript.h znajdujemy:


std::string VOCATIONS[5];

i zmieniamy na:


std::string VOCATIONS[6];


UWAGA! Je?li korzystasz z systemu premium i promocji zrobionego przez Yureza musisz:
W luascript.cpp odszuka?:


PROMOTED_VOCATIONS[VOCATION_DRUID] = getGlobalStringField("promoted_vocations",VOCATION_DRUID);

i doda? pod tym:


PROMOTED_VOCATIONS[VOCATION_BARBARIAN] = getGlobalStringField("promoted_vocations",VOCATION_BARBARIAN);


W luascript.h znale??:


std::string PROMOTED_VOCATIONS[5];
i zmieni? na:


std::string PROMOTED_VOCATIONS[6];


W player.cpp zmieni?:


const int Player::promotedGainManaVector[5][2] = {{5,1},{1,1},{1,1},{3,1},{3,1}};
const int Player::promotedGainHealthVector[5][2] = {{5,1},{5,1},{5,1},{3,1},{1,1}};

na:


const int Player::promotedGainManaVector[6][2] = {{5,1},{1,1},{1,1},{3,1},{3,1},{10,1}};
const int Player::promotedGainHealthVector[6][2] = {{5,1},{5,1},{5,1},{3,1},{1,1},{1,1}};

Liczby {10,1} i {1,1} zostaly ustalone przeze mnie. Wy ustawcie sobie tak, jak wam odpowiada.


Ostatni? rzecz? kt?r? musicie zrobi? to w config.lua doda? nazw? nowej profesji:


vocations = {"a sorcerer", "a druid", "a paladin", "a knight", "a paladin", "a barbarian"}


oraz je?li u?ywacie systemu premium i promocji Yureza:


promoted_vocations = {"a master sorcerer", "an elder druid", "a royal paladin", "an elite knight", "a berserker"}


To chyba wszystko. W obu przypadkach, 7.72 i 7.6 trzeba u?y? opcji Rebuild All w Dev-Cpp, aby zminimalizowa? ilo?? crash?w serwera.

Je?li co? wam nie wychodzi, to podawajcie tu swoje b??dy kompilacji, a ja postaram sie zaradzi? waszym problemom. :-)


Teraz przeskakujemy do speels.xml

<spells maxVoc="4">

na:


<spells maxVoc="5">

oraz dodawac w czarze, ktory moze byc uzywany przez nowa prof:


<vocation id="5" />
Poradnik nie jest m?j, nie pami?tam z k?d go mam ale mam go zapisanego :P
Nie sprawdza?em, ale raczej po tym widze ?e dzia?a.
 
Do góry