Posts: 23
Threads: 2
Joined: Nov 2017
Reputation:
0
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.
Posts: 308
Threads: 26
Joined: Sep 2015
Posts: 23
Threads: 2
Joined: Nov 2017
Reputation:
0
Dzięki,na pewno się przyda jednak nie ma tam tego czego szukam :/
Posts: 194
Threads: 22
Joined: Feb 2016
Reputation:
225
07.12.2017, 15:11
(This post was last modified: 07.12.2017, 15:14 by Patrix.)
Jest, jest, wystarczy poszukać.
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.
Posts: 23
Threads: 2
Joined: Nov 2017
Reputation:
0
Chodzi mi o PN'y,kurcze nie określiłem się do końca w sumie sory
Posts: 194
Threads: 22
Joined: Feb 2016
Reputation:
225
Do zarządzania ilością PN'ow u clienta jest inna funkcja, sprawdź to:
http://gothic-online.com.pl/new_wiki/ind...earnPoints
Posts: 23
Threads: 2
Joined: Nov 2017
Reputation:
0
07.12.2017, 15:17
(This post was last modified: 07.12.2017, 17:13 by Ozaru.)
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.
Posts: 601
Threads: 29
Joined: Oct 2015
Reputation:
341
07.12.2017, 17:36
(This post was last modified: 07.12.2017, 18:08 by Profesores.)
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
______________________________________________________________________
https://pastebin.com/17bDehtC tak to powinno wyglądać
http://shebang.pl/kursy/programowanie-cpp/r7-funkcje/ Polecam, ciekawa lekturka
______________________________________________________________________
Posts: 23
Threads: 2
Joined: Nov 2017
Reputation:
0
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  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?
Posts: 44
Threads: 2
Joined: Feb 2016
Reputation:
14
07.12.2017, 18:36
(This post was last modified: 07.12.2017, 19:33 by Toworish.)
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
|