Junior Member
Postów: 23
Tematów: 2
Dołączył: Nov 2017
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.
Senior Member
Postów: 308
Tematów: 26
Dołączył: Sep 2015
Junior Member
Postów: 23
Tematów: 2
Dołączył: Nov 2017
Dzięki,na pewno się przyda jednak nie ma tam tego czego szukam :/
Scripter (GG: 44446385)
Postów: 205
Tematów: 25
Dołączył: Feb 2016
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.
Junior Member
Postów: 23
Tematów: 2
Dołączył: Nov 2017
Chodzi mi o PN'y,kurcze nie określiłem się do końca w sumie sory
Scripter (GG: 44446385)
Postów: 205
Tematów: 25
Dołączył: Feb 2016
Junior Member
Postów: 23
Tematów: 2
Dołączył: Nov 2017
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.
Inactive developer
Postów: 601
Tematów: 29
Dołączył: Oct 2015
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
______________________________________________________________________
Junior Member
Postów: 23
Tematów: 2
Dołączył: Nov 2017
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?
Junior Member
Postów: 44
Tematów: 2
Dołączył: Feb 2016
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
|