←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Tworzenie klas, poziomów i expa

  • +
  • -
Merciless - zdjęcie Merciless 01.08.2013

Witam. Chciałbym stworzyć pare klas, dodać do nich poziom, który wbija się po osiągnięciu określonej ilości expa, lecz nie bardzo wiem jak to zrobić, znalazłem w internecie taki skrypcik, lecz nie bardzo rozumiem sposobu odczytywania poziomu, klasy i expa

#define MAXCLASSES 5

new const CLASSES[MAXCLASSES][] = {
    "None",
    "Dog",
    "Cat",
    "Horse",
    "Cow"
}

new const LEVELS[6] = {
    100, 
    200, 
    400, 
    800,
    1600,
    3200
}

new PlayerXP[33],PlayerLevel[33],PlayerClass[33]

Jest coś takiego zrobione odnośnie klas, poziomów i expa natomiast autor odwołuje się do tych zmiennych w ten sposób

CLASSES[PlayerClass[id]] Czy to ma zwrócić klase, którą gracz wybrał?

Natomiast przy wybieraniu klasy zastosował takie coś

    new i = str_to_num(szCommand)
    if(PlayerClass[id] != i)
    {
        PlayerClass[id] = i
        client_print(id,print_chat,"You are now a %s",CLASSES[i])
    }
    else
    {
        client_print(id,print_chat,"You are alredy a %s",CLASSES[i])
    }

To jest kawałek kodu z menu, klasy są pod przyciskami 1,2,3,4. Dziwne jest te wybieranie klasy, nie ma jakichś łatwiejszych czy przejrzystszych sposobów do takich rzeczy?

 

Co musiałbym zapisać aby po wczytaniu, jeszcze przed wyborem klasy widniał lvl danej klasy jaki wbiłem przez całą swoją gre? Nie wiem czy coś takiego przejdzie CLASSES[PlayerLevel[id]], jak wspomniałem nie bardzo rozumiem te sposoby, te const itd. Mógłby mi ktoś wyjaśnić jak to robić i może jakieś prostsze lub przejrzystsze sposoby podać, tutorialem do wyjaśnienia tychże rzeczy nie pogardzę xD

Odpowiedz

  • +
  • -
dasiek - zdjęcie dasiek 01.08.2013

To rozwiązanie jest "najlepsze" i najwygodniejsze - takie jest w Diablo 5.9 i w Codzie Starym. Łatwiej się operuje na liczbach i odwoływać się do tabeli niż jakbyś miał do zmiennej zapisać całą nazwę , szybkość, hp itp.

 

Co do wczytywania  danych - http://amxx.pl/topic...roche-o-nvault/ - zobacz jak to wygląda w Diablo (jak interesuje Cię SQL) lub w Codzie (jak Nvault). Przy Tworzeniu Menu Pobiera informacie z nvaulta na id klasy a nie jego nazwę. i tworzy item w menu.

Odpowiedz

  • +
  • -
Merciless - zdjęcie Merciless 01.08.2013

Zapisywanie z nvault rozumiem mniej więcej, lecz nie bardzo wime jak mam używać tych funkcji. Prosiłbym jeszcze o odpowiedź na ostatnie pytania, dziękuje

Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 01.08.2013

W sensie czego nie rozumiesz? Chcesz coś zapisać to zapisujesz w momencie którym chcesz, nie znasz kolejności i ilości argumentów funkcji to zaglądasz do dokumentacji, ta biblioteka jest prawie cała chyba uzupełniona.
Odpowiedz

  • +
  • -
Merciless - zdjęcie Merciless 01.08.2013

Nie wiem jak mam się odnosić do tych zmiennych

Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 01.08.2013

Których zmiennych? Jak widzę masz do zapisania liczby, nick i wypadałoby zapisać klase, o ile dobrze pamiętam w cod starym klasa i nick była w kluczu.
Odpowiedz

  • +
  • -
Merciless - zdjęcie Merciless 02.08.2013

A mam takie pytanie, jak mogę nadać dla gracza daną klasę, jest jakiś inny sposób niż ten str_to_num co pokazywałem?

Odpowiedz

  • +
  • -
Merciless - zdjęcie Merciless 02.08.2013

Przepraszam za doubla ale nie mogę edytować. Mam problem z klasami i expem, po wybraniu jednej z klas zabijam postac, wbija mi się lvl w jednej i w drugiej klasie, zamiast tylko w jednej

Tak jest w evencie deathmsg

PoziomGracza[attacker] += 1

Reszte mam tak jak podałem wyżej, klasy, tabele expa itd.

Odpowiedz