Reklama
Strona 1 z 2 12 OstatniaOstatnia
Pokazuje wyniki od 1 do 15 z 22

Temat: [Inne][7.6] Tworzenie new Vocations !*

  1. #1
    konto usunięte

    Domyślny [Inne][7.6] Tworzenie new Vocations !*

    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:

    Kod:
    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:

    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:


    Kod:
    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:


    Kod:
    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:


    Kod:
    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:


    Kod:
    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:


    Kod:
    float ManaMultiplier[5] = { 1.0f, 1.1f, 1.1f, 1.4f, 3};
    i zmieniamy go na:


    Kod:
    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:


    Kod:
    if(vocation >= 0 && vocation < 5)
    na:


    Kod:
    if(vocation >= 0 && vocation < 6)
    To samo robimy w funkcji Player::gainHealthTick()

    Teraz przenosimy sie do player.h gdzie zmieniamy:

    Kod:
    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:


    Kod:
    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ż:


    Kod:
    enum playervoc_t {
    VOCATION_NONE = 0,
    VOCATION_SORCERER = 1,
    VOCATION_DRUID = 2,
    VOCATION_PALADIN = 3,
    VOCATION_KNIGHT = 4,
    };
    i zmieniamy na:


    Kod:
    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:


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


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

    W configmanager.h odszukujemy:


    Kod:
    std::string m_confVocationString[4];
    i zmieniamy na:


    Kod:
    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:


    Kod:
    VOCATIONS[VOCATION_DRUID] = getGlobalStringField("vocations",VOCATION_DRUID);
    i pod tym dodajemy:


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

    W luascript.h znajdujemy:


    Kod:
    std::string VOCATIONS[5];
    i zmieniamy na:


    Kod:
    std::string VOCATIONS[6];

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


    Kod:
    PROMOTED_VOCATIONS[VOCATION_DRUID] = getGlobalStringField("promoted_vocations",VOCATION_DRUID);
    i dodać pod tym:


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

    W luascript.h znaleźć:


    Kod:
    std::string PROMOTED_VOCATIONS[5];
    i zmienić na:


    Kod:
    std::string PROMOTED_VOCATIONS[6];

    W player.cpp zmienić:

    Kod:
    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:
    Kod:
    
    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:

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

    oraz jeśli używacie systemu premium i promocji Yureza:


    Kod:
    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

    Kod:
    <spells maxVoc="4">
    na:

    Kod:
    <spells maxVoc="5">
    oraz dodawac w czarze, ktory moze byc uzywany przez nowa prof:


    Kod:
    <vocation id="5" />

  2. #2
    konto usunięte

    Domyślny

    Ładny poradnik, lecz o profesjach to nikt raczej nie robi. Z kolei przyznałeś się, że to nie twój poradnik. Mimo to są małe luki ale to nie ważne. :D można dać 7,5/10

  3. Reklama
  4. #3
    konto usunięte

    Domyślny

    A pod jaką tibie jest ten poradnik bo umnie niema tego pliku co sie na początku otwiera

  5. #4
    konto usunięte

    Domyślny

    @up
    Wersja tibi jest w temacie ;D Wiec nie wiem po co cie pytasz :DD

    Dziwne ze go wogule zatwierdzili ;D napisalem go juz chyba miesiac temu :DD A tu jest ;PPPP

  6. #5
    Lemef

    Domyślny

    Fajnie jest tak być Xeroboy'em? Zły dział to powinno być w "Skryptach do OTS". Nawet jak wam uda się w kompilować, to skille bardzo powoli idą. Nic nie zrobicie. Chyba, że sami będziecie kombinować.

    @Edit
    Jeszcze jakby ktoś nie widziała to plagiat :) Nikt nie wierz? Niech zmierzy!
    Napisałeś poradnik nie mój. Ale gdzie prawa autorskie? Myszy zjadły?
    http://forum.otserv.pl/index.php?showtopic=6520

    Pozdrawiam,
    Lemef
    Ostatnio zmieniony przez Lemef : 19-02-2008, 11:54

  7. #6
    konto usunięte

    Domyślny

    Wiem ze jest pod 7.6 ale ja mam juz 3 silniki w w zadnm niema tego pliku dlatego sie pytam bo niemoge zmienc tego

  8. #7
    Avatar Orion
    Data rejestracji
    2005
    Położenie
    Łódź
    Wiek
    32
    Posty
    73
    Siła reputacji
    19

    Domyślny

    Ciekawy poradnik. Zawsze się zastanawiałem, czy to jest możliwe w starszej wersji Tibii. Swoją drogą zobaczcie jak trudno było zrobić to kiedyś, a jak łatwo teraz ; )

    Co do samego poradnika to bardzo bardzo dobrze i szczegółowo opisany pomimo, że całe w sumie jest to trudne do wykonania. Należą się gratulację autorowi za taki poradnik.


    Pozdrawiam,
    Orion.

  9. #8
    Drakus The Shadow Master

    Domyślny Ładny poradnik

    Ładny poradnik 8/10
    Pomogłeś wielu osobą

  10. #9
    Avatar mati233
    Data rejestracji
    2007
    Położenie
    Oleśnica
    Posty
    200
    Siła reputacji
    17

    Domyślny

    Fajnie przyda sie wialu osobom ja kiedys zapominalem o tym ze trzeba ten udzwig,mana,hp i ty mi pomogles
    moja ocena 8/10

    pozdro mati233

  11. #10
    GM Sonik

    Domyślny

    Bardzo przydatne, szczególnie przy większych projektach... No i samo wykonanie poradnika przejrzyste i łatwe w oglądaniu...
    GRATZ !

  12. #11
    morszczuk

    Domyślny ...

    hi,
    miałem kilka silników z source ale w żadnym nie było configmanager.cpp
    *.h
    zapoda ktoś linka z ots'em gdzie jest ten wyżej wymieniony plik ? xD

  13. #12
    konto usunięte

    Domyślny

    Ladnie opisane, aczkolwiek nie przydatne, tibia juz nie ma tego klimatu

  14. #13
    konto usunięte

    Domyślny

    EHHH moze mi ktos powie czemu mana i hp mi nierosna a jest wedlyg poradnika wszystko ok zrobilem to samo na 3 ots innych i to samo ratunku!!!!

  15. #14
    konto usunięte

    Domyślny

    wszystko fajnie poprzerabialem tak jak napisane ale jak sie klika na postac z voc 5 to pisze : "You see yourself. You are" i nie pisze kim sie jest a kolejny problem ze dodaje tej profesji za kazdy awans po 1hp i 1many a ustawilem zeby dodawalo 20hp i many ;/ moj ots to ots pod tbie 7.6 YurOTS_094 mam nadzieje ,że ktoś pomoże a nie oleje mój problem

  16. #15
    ExTriMBoy

    Domyślny

    B. ładny poradnik 7/10, ale czy ten sposób zadziała również pod wersję 8.0?, nie chcę zakładać kolejnego TEMATU by nie robić spamu - dlatego pytam.

    - Jeśli nie da się to czy był by ktoś łaskawy i napisał ów poradnik pod 8.0?, bo szukałem pod 8.0 tutaj na forum, ale wykryło mi tylko ten temat.

    Dziękuje i Pozdrawiam,

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. [mysql]nowe Vocations pomoc? 8.54
    Przez sechtub w dziale Skrypty i technika
    Odpowiedzi: 9
    Ostatni post: 04-02-2018, 18:13
  2. Kupię [ALL SERVERS] ALL VOCATIONS 180+ !
    Przez Xat4Gamers w dziale Postaci
    Odpowiedzi: 0
    Ostatni post: 21-06-2017, 07:57
  3. [Inne] Tworzenie domeny No-IP - sposób jak ominąć zmienne IP!*
    Przez Tomix w dziale Artykuły developerskie
    Odpowiedzi: 392
    Ostatni post: 22-09-2010, 11:33
  4. Odpowiedzi: 10
    Ostatni post: 09-07-2010, 09:17

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •