Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Lista parametrów
#1
Witam.Zgłaszam się o pomoc z listą parametrów,do rzeczy.Moje pytanie polega na tym czy da się Ją skądś wyciągnąć?A bardziej szczegółowo:

Mam tu funkcje:
void setPlayerSkillWeapon(int id, int skill_id, int value)

Więc w skrypcie siedzi Ona jako(dajmy 1h dla przykładu):
setPlayerSkillWeapon(pid, WEAPON_1H 100);

A chcę dodać powiedzmy:
setPlayerTalent(int id, int skill_id, int value)

Czyli mam:
setPlayerTalent(pid, ----, 10)

No i nie mam pojęcia jaki będzie środkowy parametr,grzebałem się w skryptach ale nic nie znalazłem,czy jest gdzieś do wyciągnięcia lista tych parametrów?Z góry dziekuje.


Pozdrawiam.
Reply
#2
http://gothic-online.com.pl/new_wiki/ind...=Constants
Reply
#3
Dzięki,na pewno się przyda jednak nie ma tam tego czego szukam :/
Reply
#4
Jest, jest, wystarczy poszukać.

[Image: rKDhUQH.png]

Dla ścisłości, skill_id, czyli środkowy parametr (drugi z kolei od lewej strony) funkcji setPlayerTalent jest liczbą. Powyższy screenshot zawiera listę stałych, które mają w sobie zapisane konkretne id talentów.
Reply
#5
Chodzi mi o PN'y,kurcze nie określiłem się do końca w sumie sory Big Grin
Reply
#6
Do zarządzania ilością PN'ow u clienta jest inna funkcja, sprawdź to:
http://gothic-online.com.pl/new_wiki/ind...earnPoints
Reply
#7
Oo dziękować Panie! ^^

Informacja przełomowa,w każdym bądź razie poległem na dodawaniu tej funkcji xd Chciałem dodać ją aby to nasz ludek po zalogowaniu dostał swoje pn'y,zrobiłem to tak:

function onPlayerJoin(pid, cmd, params)
{
if(cmd == "lp")
{
setLearnPoints(20); // Set LP.
print("Your have 20 learn points.");
}
}

addEventHandler("onPlayerJoin", onPlayerJoin);

Mógł byś mnie troszkę nakierować?

Edit:
function onPlayerCommand(pid, cmd, params)
{
switch (cmd)
{
case "lp":
setLearnPoints(pid, setLearnPoints(20)(pid));
sendMessageToPlayer(pid, 0, 255, 0, "Ciekaweee");
break;
}
}

addEventHandler("onPlayerCommand", onPlayerCommand);

Przepisałem to na funkcje case(Tą nową bo na wiki chyba podana jakaś stara),ale dalej nic.
Reply
#8
Primo: Nie możesz nadawać swoim funkcjom nazw takich jakie mają funkcje G2O.

Secundo:
Code:
addEventHandler("onPlayerCommand", function(pid, cmd, params)
{
    switch (cmd)
    {
        case "lp":
        {
            setLearnPoints(pid, 20);
            sendMessageToPlayer(pid, 0, 255, 0, "Ciekaweee");
        }
        
    break;
    }
});

Ale to i tak nie zadziała, setLearnPoints to przecież funkcja po stronie klienta, więc nie zadziała po stronie serwera.

Code:
setLearnPoints(pid, setLearnPoints(20)(pid))
Takie coś nie ma prawa bytu. To wygląda jak jakaś nieudolna próba rzutowania typów XD Słabo widzę to twoje MMO przy tak słabej znajomości podstaw Undecided

______________________________________________________________________
https://pastebin.com/17bDehtC tak to powinno wyglądać

http://shebang.pl/kursy/programowanie-cpp/r7-funkcje/ Polecam, ciekawa lekturka
______________________________________________________________________
Reply
#9
No dopiero zaczynam xD Musze tylko się dowiedzieć co z czym się je,a twoja odpowiedź raczej mi za mocno w niczym nie pomogła Big Grin Więc,dowiem się jak dodać tą funkcję? I nie nadałem niczemu takiej samej nazwy,wszystko jest poleceniem i bez:
setLearnPoints(pid, 20);

Słowo ,,Ciekaweee, się wyświetla tylko mi wyskakuje,że polecenie ,,SetLearnPonts,, nie istnieje,myślałem że ten kod je dodaje ale no tak średnio.Więc? Muszę tylko dodać funkcję ale nie wiem jak to zrobić,bo funkcja:
void setLearnPoints(int lp);
Jest standardowo w plikach Gothica,tak?
Reply
#10
Jeśli chcesz to zrobić tylko komendą to wystarczy że dodasz to w onCommand po stronie clienta:

Code:
function myCommand(cmd, params)
{
  switch(cmd)
  {
    case "setLp":
    setLearnPoints(20);
    Chat.print(0, 255, 0,"Teraz masz: "+getLearnPoints()+" punktów nauki.");
    break;
    
    case "plusLp":
    setLearnPoints(getLearnPoints()+20);
    Chat.print(0, 255, 0,"Teraz masz: "+getLearnPoints()+" punktów nauki.");
    break;
  }
}
addEventHandler("onCommand", myCommand);


1. przykład da ci 20 lp.
2. przykład doda ci 20 lp do tych co masz.

EDIT: Też poprawiłem lekko @Patrix
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Lista zmian na 0.5 ThorusDagoth 2 2,790 17.10.2015, 19:39
Last Post: ThorusDagoth

Forum Jump:


Users browsing this thread: 1 Guest(s)