Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
plx211
Rejestracja: 08.02.2015Aktualnie: Nieaktywny
Poza forum Ostatnio: 12.04.2019 20:43
Statystyki
- Grupa: Użytkownik
- Całość postów: 397
- Odwiedzin: 10 578
- Tytuł: Wszechpomocny
- Wiek: Wiek nie został ustalony
- Urodziny: Data urodzin nie została podana
-
Płeć
Mężczyzna
-
Lokalizacja
Polska
Kontakt
Narzędzia użytkownika
Ostatnio byli
#725874 Tabela informacyjna po wejsciu na serwer!
Napisane przez plx211 w 07.05.2016 13:01
edit:
dobra teraz zobacxylem jaki facepalm walnolem
#725859 Cs Go Nie działa mikrofon. Prógowałem all
Napisane przez plx211 w 07.05.2016 10:00
Korzystam z Linux'a, wiec będę pisal wedlug tego co ja mam:
- Odpal steam
- Kliknij na przycisk "Steam" na toolbarze
- Kliknij "Settings" z listy
- Przejdz do "Voice"
- Kliknij i pobaw sie "CHANGE DEVICE..."
moze po prostu jest wybrane zle urzadzenie do nagrywania
edit:
Ja mam tyle mozliwosci
Ale tak czy siak jesli nie pokazuje ci w grze mikrofonu to w grze trzeba cos jeszcze ustawic
#725774 Cs Go Nie działa mikrofon. Prógowałem all
Napisane przez plx211 w 04.05.2016 18:32
#724765 Program do naprawy Windows 10.
Napisane przez plx211 w 13.04.2016 18:10
#724275 Jak zrobić zapis danych w sourcemod?
Napisane przez plx211 w 06.04.2016 15:43
najwygodniejszy jest SQL, zwlaszcza ze mozna generowac baze SQLite ( https://wiki.alliedm...eMod_Scripting) )
jesli nie sa to wazne dane (a poziom gracza nie stety nalezy do waznych) to mozesz je zapisac po stronnie clienta w cookie.
mozesz takze zapisac dane do pliku kv ( https://wiki.alliedm...eMod_Scripting)) ale nie jest to zbyt wydajne rozwiazanie.
mozesz takze opracowac swoj system zapisu do pliku, ale tego tym bardziej nie polecam
najlepszym rozwiazaniem bedzie sql, jest on naprawdę banalny
#724223 Poszukuje modelu prezentu do CsGo
Napisane przez plx211 w 05.04.2016 14:34
#723837 Problem z ftp
Napisane przez plx211 w 30.03.2016 00:35
#723493 Cmod czyli RPG Kit
Napisane przez plx211 w 26.03.2016 18:53
Jak zwykle z gory przepraszam za brak Polskich znakow, oraz ewentualne bledy ortograficzne/interpunkcyjine
Chcial bys zalozyc server CodMod, DiabloMod, lub jakis inny?
Ale nie chce ci sie pisac systemu exp'a, item'ow, klas?
Ten plugin (a raczej te pluginy) sa wlasnie dla ciebie
Cmod to zbior pluginów, ktory ulatwi ci szybkie napisanie (a juz w krotce skonfigurowanie) swojego wlasnego RPG Moda.
W aktualnej wersji najbardziej skorzystaja osoby ktore znaja sie na scriptingu w SP, ale obiecuje ze niedlugo to sie zmienni
Zawartosc
Na dzien dzisjejszy w paczce znajdziesz:
- Cmod_ClassCore plugin odpowiedzialny za klasy (tworzenie, usuwanie, forwardy)
- Cmod_ExpCore plugin odpowiedzialny za system exp'a
- Cmod_ItemCore plugin odpowiedzialny za itemy (tworzenie, usuwanie, forwardy)
- Cmod_SkillCore plugin odpowiedzialny za skille (tworzenie, usuwanie, forwardy)
- Cmod_PreparedSkill plugin odpowiedzialny za konfiguracjie skilli
- Cmod_StatsCore plugin odpowiedzialny za statystyki
Roznice od poprzedniej wersji
Kod od ostatniego prototypu zostal napisany kilku krotnie, publikuje ta wersjie ze wzgledu na to ze jestem z niej najbardziej zadowolony (ale czas oceni jak bedzie sie to sprawdzac).
Klasy/itemy z prototypu nie beda dzialac pod ta wersjia!!!
Jaka jest roznica od prototypu?
Miedzy innymi:
- Rozbicie kodu na odzielnne pluginy
- Nowa idea
- Kod oparty na skladni SP 1.7+
- Prawie wszystkie dane oparte na tablicach dynamicznych (Dzięki ktorym nie trzeba ustawiac limitu klas/itemow/itp.)
Twoja pomoc
Chcesz pomoze w rozwoju, ale nie wiesz co zrobic?
od razu ci powiem ze mile widziane jest:
- Dolaczenie sie do rozwoju Cmod'a (chetnie będę przyjmowal Pull request)
- Dawanie propozycji co mozna by stworzyc itp.
- Zglaszanie bledow z jak najwieksza iloscia informacji
- Datki
Poradniki
Co jakis czas będę pisal poradnik, ktory bedzie przyblizal ta magie
Juz teraz mozesz przeczytac:
Download
Najnowsze wydanie
Kod zrodlowy
Do kompilacji wymagany jest:
SP 1.8+
Changelog:
#723430 [Cmod][Poziom podstawowy] Tworzenie skilla
Napisane przez plx211 w 25.03.2016 21:24
Z gory przepraszam za brak Polskich znakow i ewentualne bledy ortograficzne interpunkcyjine
Poprzedni poradnik (o statystykach)
Skille tak samo jak statystyka zostaly wyrzycone do odzielnych pluginów, ponadto stworzylem specjalna "warstwe" o nazwie PreparedSkill dzięki ktorej mozemy w latwy sposob zmiennic takie rzeczy jak obrazenia, bonusy, czy co tam chcecie (ale pod warunkiem, ze w skillu to zaimplementujecie)
Bedzie nam potrzebne:
- Znajomosc skladni SP 1.7+
- Znajomosc methodmap (polecam tut z alliedow)
- Wgrany na server plugin Cmod_SkillCore oraz Cmod_PreparedSkill
- Kompilator SP 1.8+ z biblioteka cmod'a
Zamiast tworzyc krok po kroku (jak to bylo w poradniku od statystyki), zaimiemy sie analiza ponizszego kodu:
#include <sourcemod> #include <cmod> SkillID mySkill; public void OnPluginStart() { mySkill = SkillID("My magic skill"); mySkill.setDesc("This skill doing only stupid staff"); mySkill.hookPrepare(onPrepare); mySkill.hookStart(onStart); mySkill.hookStop(onStop); } public void OnPluginEnd() { mySkill.remove(); } public void onPrepare(SkillID skillID, PreparedSkill preparedSkill) { preparedSkill.setValue("lucky_number", 100); preparedSkill.setFloat("stupid_lvl", 20.5); preparedSkill.setValue("wtf_count", 69); } public void onStart(SkillID skillID, PreparedSkill preparedSkill, int entity) { int lucky = preparedSkill.getValue("lucky_number"); float stupid = preparedSkill.getFloat("stupid_lvl"); int wtfCount = preparedSkill.getValue("wtf_count"); PrintToChat(entity, "[My magic skill START] You have %d lucky pts, you brain is in %f\% stupid, and you have %d WTF?!", lucky, stupid, wtfCount); } public void onStop(SkillID skillID, PreparedSkill preparedSkill, int entity) { PrintToChat(entity, "[My magic skill STOP] Oh no!!!"); }
No to do dziela
SkillID mySkill;
Tworzymy zmienna ktora bedzie przechowywac ID skilla
mySkill = SkillID("My magic skill");
Rejestrujemy skill w silniku, nalezy pamietac ze wielkosc liter w nazwie ma znaczenie, najlepiej aby nazwa byla napisana w jezyku Angielskim
mySkill.setDesc("This skill doing only stupid staff");
Ustawiamy opis skilla, najlepiej aby opis byl napisany w jezyku Angielskim
mySkill.hookPrepare(onPrepare); mySkill.hookStart(onStart); mySkill.hookStop(onStop);
Hookujemy nastepujace eventy:
- Prepare - jest wywolywany gdy zostanie utworzony PreparedSkill do danego skilla, w callbacku ustawiamy wartosci ktore bedziemy potem pobierac z PreparedSkill, jest to bardzo wazne, jesli nie ustawimy tego jest duze ryzyko ze dostaniemy losowa wartosc
- Start - jest wywolywany kiedy zostanie wywolana funkcjia PreparedSkill.start, w callbacku implementujemy aktywacjie skilla
- Stop - jest wywolywany kiedy zostanie wywolana funkcjia PreparedSkill.stop, w callbacku implementujemy dezaktywacjie skilla
mySkill.remove();
Usuwamy skill, jesli tego nie zrobimy a wylaczymy plugin, to silnik nadal bedzie mial zarejestrowany skill co uniemozliwi ponnowna aktyacjie plugina z skillem
public void onPrepare(SkillID skillID, PreparedSkill preparedSkill) { preparedSkill.setValue("lucky_number", 100); preparedSkill.setFloat("stupid_lvl", 20.5); preparedSkill.setValue("wtf_count", 69); }
Jest to callback do zhookowanego wczesniej eventu Prepare,
Ustawiamy w nim wartosci kluczy PreparedSkill (wiecej o tym nizej)
public void onStart(SkillID skillID, PreparedSkill preparedSkill, int entity) { int lucky = preparedSkill.getValue("lucky_number"); float stupid = preparedSkill.getFloat("stupid_lvl"); int wtfCount = preparedSkill.getValue("wtf_count"); PrintToChat(entity, "[My magic skill START] You have %d lucky pts, you brain is in %f\% stupid, and you have %d WTF?!", lucky, stupid, wtfCount); }
Jest to callback do zhookowanego wczesniej eventu Start,
Pobieramy tutaj wartosci z kluczy PreparedSkill,
Po czym drukujemy mala notke
public void onStop(SkillID skillID, PreparedSkill preparedSkill, int entity) { PrintToChat(entity, "[My magic skill STOP] Oh no!!!"); }
Jest to callback do zhookowanego wczesniej eventu Stop,
Chyba nie musze pisac co w nim jest robione
Ufff, a teraz przypaczmy sie PreparedSkill, na poczatku napiszemy cos co pozwoli nam przetestowac powyzsze wymiociny/wypociny:
#include <sourcemod> #include <cmod> CmodSkill skills; PreparedSkill skillMagic; public void OnPluginStart() { skillMagic = new PreparedSkill(skills.findIDByName("My magice skill")); RegConsoleCmd("sm_startskill", cmd_sm_startskill); RegConsoleCmd("sm_stopskill", cmd_sm_stopskill); } public Action cmd_sm_startskill(int client, int argc) { skillMagic.start(client); } public Action cmd_sm_stopskill(int client, int argc) { skillMagic.stop(client); }
Nie ma zbytnio sensu tlumaczyc powyzszego kodu, dlatego przejde do rzeczy:
Czym jest PreparedSkill?
Jest to poprostu troche przerobiony StringMap, dzięki ktoremu mozemy napisac skill raz, a potem wywolywac go na rozne sposoby w innych klasach/itemach/pluginach.
Moze nam posluzyc jako tymczasowy bonus, lub co kolwiek chcemy.
Pamietaj ze nie musisz zawsze wywolywac/implementowac eventu Stop.
Aby bardziej zilustrowac ci idea:
Zalozmy ze mamy juz storzony skill "rocket" (ktory powiedzmy ze ma 120 linijek kodu) z nastepujacymi "kluczami w prepared":
- "damage" - typu float, odpowiedzialnego za DMG
- "radius" - typu value, odpowiedzialnego za obszar wybuchu
- "rocket_speed" - typu float, odpowiedzialnego za szybkosc rakiety
Teraz gdzies w innym pluginie:
CmodSkill skills; //... PreparedSkill rocket = new PreparedSkill(skills.findIDByName("rocket")); rocket.setFloat("damage", 200.0); rocket.setValue("radius", 64); rocket.setFloat("rocket_speed", 3.0); //... rocket.start(client);
Teraz mozemy w innym pluginie uzyc tego samego skilla, ale z innymi ustawieniami
Bez tego musieli bysmy ponownie napisac 120 linijek kodu, a takto jedynie jestesmy zmuszenie do napisania zaledwie 6 linijek
(Czesc) Skill API z Polskim opisem:
methodmap SkillID __nullable__ { // Tworzy nowy skill // Do dzialania wymaga Cmod_SkillCore // // @param name Nazwa skilla // @return Jesli skill o danej nazwie istnieje zwraca SkillID_Invalid, // W przeciwnym przypadku zwraca id skilla public native SkillID(char[] name); // Pobiera nazwe skilla // Do dzialania wymaga Cmod_SkillCore // // @param buffor Buffor gdzie bedzie skopiowania nazwa // @param maxLength Maksymalna wielkosc buffora public native void getName(char[] buffor, int maxLength); // Ustawia opis skilla // Do dzialania wymaga Cmod_SkillCore // // @param desc Opis jaki ma ustawic public native void setDesc(char[] desc); // Pobiera opis skilla // Do dzialania wymaga Cmod_SkillCore // // @param buffor Buffor gdzie bedzie skopiowany opis // @param maxLength Maksymalna wielkosc buffora public native void getDesc(char[] buffer, int maxLength); // Usuwa skill // Do dzialania wymaga Cmod_SkillCore public native void remove(); // Sprawdza czy skill jest prawidlowy // Do dzialania wymaga Cmod_SkillCore // // @return True jesli skill jest poprawna // False w kazdym innym przypadku public native bool isValid(); // Hookuje event Start skilla // Do dzialania wymaga Cmod_PreparedSkill // // @param callback Funkcja ktora ma byc wywolana // @return True jesli zahookowalo // False w kazdym innym przypadku public native bool hookStart(SkillStartCB callback); // Odhookowuje event Start skilla // Do dzialania wymaga Cmod_PreparedSkill // // @param callback Funkcja ktora byla wywolana // @return True jesli odhookowalo // False w kazdym innym przypadku public native bool unhookStart(SkillStartCB callback); // Hookuje event Stop skilla // Do dzialania wymaga Cmod_PreparedSkill // // @param callback Funkcja ktora ma byc wywolana // @return True jesli zahookowalo // False w kazdym innym przypadku public native bool hookStop(SkillStopCB callback); // Odhookowuje event Stop skilla // Do dzialania wymaga Cmod_PreparedSkill // // @param callback Funkcja ktora byla wywolana // @return True jesli odhookowalo // False w kazdym innym przypadku public native bool unhookStop(SkillStopCB callback); // Hookuje event Prepare skilla // Do dzialania wymaga Cmod_PreparedSkill // // @param callback Funkcja ktora ma byc wywolana // @return True jesli zahookowalo // False w kazdym innym przypadku public native bool hookPrepare(SkillPrepareCB callback); // Odhookowuje event Prepare skilla // Do dzialania wymaga Cmod_PreparedSkill // // @param callback Funkcja ktora byla wywolana // @return True jesli odhookowalo // False w kazdym innym przypadku public native bool unhookPrepare(SkillPrepareCB callback); }; methodmap CmodSkill { // Zwraca maksymalna dlugosc nazwy // Do dzialania wymaga Cmod_SkillCore property int maxNameLength { public native get(); } // Zwraca maksymalna dlugosc opisu // Do dzialania wymaga Cmod_SkillCore property int maxDescLength { public native get(); } // Hookuje stworzenie skilla // Do dzialania wymaga Cmod_SkillCore // // @param callback Funkcja ktora ma byc wywolana // @return True jesli zahookowalo // False w kazdym innym przypadku public native bool hookCreateSkill(SkillCreateCB callback); // Odhookowuje stworzenie skilla // Do dzialania wymaga Cmod_SkillCore // // @param callback Funkcja ktora byla wywolana // @return True jesli odhookowalo // False w kazdym innym przypadku public native bool unhookCreateSkill(SkillCreateCB callback); // Hookuje usuniecie skilla // Do dzialania wymaga Cmod_SkillCore // // @param callback Funkcja ktora ma byc wywolana // @return True jesli zahookowalo // False w kazdym innym przypadku public native bool hookRemoveSkill(SkillRemoveCB callback); // Odhookowuje usuniecie skilla // Do dzialania wymaga Cmod_SkillCore // // @param callback Funkcja ktora byla wywolana // @return True jesli odhookowalo // False w kazdym innym przypadku public native bool unhookRemoveSkill(SkillRemoveCB callback); // Zwraca ID skilla o danej nazwie // Do dzialania wymaga Cmod_StatsCore // // @param name Nazwa skilla // @return SkillID_Invalid jesli statystyka o danej nazwie nie istnieje // W przeciwnym wypadku SkillID statystyki public native SkillID getIDByName(char[] name); };
(Czesc) PreparedSkill API z Polskim opisem:
methodmap PreparedSkill __nullable__ { // Tworzy nowy PreparedSkill // Do dzialania wymaga Cmod_PreparedSkill // // @param targetSkill Docelowy skill // @return ID PreparedSkill public native PreparedSkill(SkillID targetSkill); // Usuwa PreparedSkill // Do dzialania wymaga Cmod_PreparedSkil public native void remove(); // Sprawdza czy PreparedSkill jest prawidlowy // Do dzialania wymaga Cmod_PreparedSkil // // @return True jesli PreparedSkill jest poprawna // False w kazdym innym przypadku public native bool isValid(); // Ustawia wartosc typu value // Do dzialania wymaga Cmod_PreparedSkil // // @param key Nazwa klucz // @param value Wartosc // @param replace Jesli istnieje czy ma zamienic public native bool setValue(char[] key, any value, bool replace = false); // Ustawia wartosc typu float // Do dzialania wymaga Cmod_PreparedSkil // // @param key Nazwa klucza // @param value Wartosc // @param replace Jesli istnieje czy ma zamienic public native bool setFloat(char[] key, float value, bool replace = false); // Ustawia wartosc typu string // Do dzialania wymaga Cmod_PreparedSkil // // @param key Nazwa klucza // @param value Wartosc // @param replace Jesli istnieje czy ma zamienic public native bool setString(char[] key, char[] value, bool replace = false); // Ustawia wartosc typu array // Do dzialania wymaga Cmod_PreparedSkil // // @param key Nazwa klucza // @param array Tablica ktora ma ustawic // @param numItems Ilosc elementow tablicy // @param replace Jesli istnieje czy ma zamienic public native bool setArray(char[] key, any[] array, int numItems, bool replace = false); // Pobiera wartosc klucza // Do dzialania wymaga Cmod_PreparedSkil // // @param key Nazwa klucza // @return Wartosc klucza public native any getValue(char[] key); // Pobiera wartosc klucza // Do dzialania wymaga Cmod_PreparedSkil // // @param key Nazwa klucza // @return Wartosc klucza public native float getFloat(char[] key); // Pobiera ciag znakow z klucza // Do dzialania wymaga Cmod_PreparedSkil // // @param key Nazwa klucza // @param buffor Buffor do ktorego bedzie skopiowana wartosc // @param maxLength Maksymalna dlugosc buffora public native bool getString(char[] key, char[] buffor, int maxLength); // Pobiera ciag znakow z klucza // Do dzialania wymaga Cmod_PreparedSkil // // @param key Nazwa klucza // @param array Tablica do ktorej zostana skopiowane pozycjie // @param maxSize Maksymalna wielkosc tablicy public native bool getArray(char[] key, any[] array, int maxSize); // Pobiera typ wartosci klucza // Do dzialania wymaga Cmod_PreparedSkil // // @param key Nazwa klucza // @return Typ wartosci klucza public native PreparedVarType getVarType(char[] key); // Wywoluje event Start // Do dzialania wymaga Cmod_PreparedSkil // // @param entity Byt dla jakiego ma wywolac public native void start(int entity); // Wywoluje event Stop // Do dzialania wymaga Cmod_PreparedSkil // // @param entity Byt dla jakiego ma wywolac public native void stop(int entity); }
Wiecej w API (nie stety bez opisow)
#723429 [Cmod][Poziom podstawowy] Tworzenie statystyki
Napisane przez plx211 w 25.03.2016 21:16
W nowej wersji cmoda (1.0+), statystyki zostaly wyrzucone do osobnych pluginów (tak jak bylo z klasami/itemami w poprzednim "prototypie")
Bedzie nam potrzebne:
- Znajomosc skladni SP 1.7+
- Znajomosc methodmap (polecam tut z alliedow)
- Wgrany na server plugin Cmod_StatsCore do testow
- Kompilator SP 1.8+ z biblioteka cmod'a
- O nazwie "TestStats"
- Z opisem "bla bla moja statystyka"
- Pod czas aktywacji ma pisac na czacie gracza "Statystyka o id X zostala aktywowana z moca Y pktow"
#include <sourcemod> #include <cmod> public void OnPluginStart() { } public void OnPluginEnd() { }Przydala by nam sie zmienna ktora bedzie przechowywac ID statystyki, dlatego pod include dodajemy
static StatsID testStats;Przyszedl czas na rejestracje statystyki w silniku, w funkcji OnPluginStart() dodajemy nastepujaca linijke:
testStats = new StatsID("TestStats");Dobra 1 zalozenie spelnione
Przyszedl czas na opis, w tym celu pod powyzsza linijka dodajemy:
testStats.setDesc("bla bla moja statystyka");Prawda ze proste?
No to czas na finnalne zalozenie, czyli:
Pod czas aktywacji ma pisac na czacie gracza "Statystyka zostala aktywowana z moca X pktow"A wiec do dziela, na samym dole tworzymy nowa publiczna funkcjie, ktora bedzie sluzyla nam za callback:
public void onActivate(StatsID statsID, int client, int points) { }Oczywiscie nie musimy nazywac funkcji onActivate, nasza funkcja musi spelniac tylko ponizsza zaleznosc:
typeset StatsActivateCB { function void (StatsID statsID, int client, int points); };Wracajac do zalozenia, dodajemy teraz wewnatrz naszej przepieknej funkcji:
PrintToChat(client, "Statystyka o id %d zostala aktywowana z moca %d pktow", statsID, points);Tylko ze sama funkcjia nam nic nie da, musimy jeszcze powiadomic silnik aby ja wywolywal, w tym celu pod funkcjia odpowiadajaca za opis dodajemy:
testStats.hookActivate(onActivate);Ale chwileczke nie zapomnielismy o czyms? Jest to bardzo wazne, do funkcji OnPluginEnd() dodajemy nastepujacy kod:
testStats.remove();Odpowiada to za wyrejestrowanie statystyki z silnika.
Skonczone ,
Finnalnie nasz kod powinnien wygladac tak:
#include <sourcemod> #include <cmod> StatsID testStats; public void OnPluginStart() { testStats = new StatsID("TestStats"); testStats.setDesc("bla bla moja statystyka"); testStats.hookActivate(onActivate); } public void OnPluginEnd() { testStats.remove(); } public void onActivate(StatsID statsID, int client, int points) { PrintToChat(client, "Statystyka o id %d zostala aktywowana z moca %d pktow", statsID, points); }Czas na testy,
Activate jest wywolywane po chwilke po respawnie przez plugin Cmod_Client,
Wiec mozemy czekac na respawn, lub posluzyc sie ponizszym kodem:
#include <sourcemod> #include <cmod> CmodStats cmodStats; public void OnPluginStart() { RegConsoleCmd("sm_teststats", cmd_sm_teststats); } public Action cmd_sm_teststats(int client, int argc) { StatsID statsID = cmodStats.findIDByName("TestStats"); // uzyskujemy id statystyki przez jej nazwe statsID.sendActivate(client, GetRandomInt(1, 100)); // aktywujemy statystyke dla gracza ktory wpisal komende, z losowa iloscia pktow (od 1 do 100) }Teraz wystarczy wklepac w konsole sm_teststats i mozemy podziwiac efekty
Ale chwilke, dlaczego musze recznie podawac liczbe pktow?
Na czas pisania poradnika nie zostalo jeszcze zaimplementowane
Ale juz nie bawem na pewnno sie pojawi (zapewnne znajdzie sie on w pluginie Cmod_Client)
(Czesc) Stats API z Polskim opisem:
methodmap StatsID __nullable__ { // Tworzy nowa statystyke // Do dzialania wymaga Cmod_StatsCore // // @param name Nazwa statystyki // @return Jesli statatystyka o danej nazwie istnieje zwraca StatsID_Invalid, // W przeciwnym przypadku zwraca id statystyki public native StatsID(char[] name); // Pobiera nazwe statystyki // Do dzialania wymaga Cmod_StatsCore // // @param buffor Buffor gdzie bedzie skopiowana nazwa // @param maxLength Maksymalna wielkosc buffora public native void getName(char[] buffor, int maxLength); // Ustawia opis statystyki // Do dzialania wymaga Cmod_StatsCore // // @param desc Opis jaki ma ustawic public native void setDesc(char[] desc); // Pobiera opis statatystyki // Do dzialania wymaga Cmod_StatsCore // // @param buffer Buffor gdzie bedzie skopiowany opis // @param maxLength Maksymalna wielkosc buffora public native void getDesc(char[] buffer, int maxLength); // Usuwa statystyke // Do dzialania wymaga Cmod_StatsCore public native void remove(); // Sprawdza czy statustyla jest prawidlowa // Do dzialania wymaga Cmod_StatsCore // // @return True jesli statysyka jest poprawna // False w kazdym innym przypadku public native bool isValid(); // Hookuje aktywacje statatystyki // Do dzialania wymaga Cmod_StatsCore // // @param callback Funkcja ktora ma byc wywolana // @return True jesli zahookowalo // False w kazdym innym przypadku public native bool hookActivate(StatsActivateCB callback); // Odhookowuje aktywacje statatystyki // Do dzialania wymaga Cmod_StatsCore // // @param callback Funkcja ktora byla wywolana // @return True jesli odhookowalo // False w kazdym innym przypadku public native bool unhookActivate(StatsActivateCB callback); // Wysyla aktywacjie statystyki // Do dzialania wymaga Cmod_StatsCore // // @param client ID clienta dla ktorego aktywujemy statystyke // @param points Liczba pktow statystyki public native void sendActivate(int client, int points); }; methodmap CmodStats { // Zwraca maksymalna dlugosc nazwy // Do dzialania wymaga Cmod_StatsCore property int maxNameLength { public native get(); } // Zwraca maksymalna dlugosc opisu // Do dzialania wymaga Cmod_StatsCore property int maxDescLength { public native get(); } // Hookuje stworzenie nowej statatystyki // Do dzialania wymaga Cmod_StatsCore // // @param callback Funkcja ktora ma byc wywolana // @return True jesli zahookowalo // False w kazdym innym przypadku public native bool hookCreateStats(StatsCreateCB callback); // Odhookowuje stworzenie nowej statatystyki // Do dzialania wymaga Cmod_StatsCore // // @param callback Funkcja ktora byla wywolana // @return True jesli odhookowalo // False w kazdym innym przypadku public native bool unhookCreateStats(StatsCreateCB callback); // Hookuje usuniecie statatystyki // Do dzialania wymaga Cmod_StatsCore // // @param callback Funkcja ktora ma byc wywolana // @return True jesli zahookowalo // False w kazdym innym przypadku public native bool hookRemoveStats(StatsRemoveCB callback); // Odhookowuje usuniecie statatystyki // Do dzialania wymaga Cmod_StatsCore // // @param callback Funkcja ktora byla wywolana // @return True jesli odhookowalo // False w kazdym innym przypadku public native bool unhookRemoveStats(StatsRemoveCB callback); // Zwraca ID statystyki o danej nazwie // Do dzialania wymaga Cmod_StatsCore // // @param name Nazwa statystyki // @return StatsID_Invalid jesli statystyka o danej nazwie nie istnieje // W przeciwnym wypadku StatsID statystyki public native StatsID getIDByName(char[] name); };Wiecej w API (nie stety bez opisow)
#722876 Store plugin czarna postać Problem
Napisane przez plx211 w 15.03.2016 19:15
#722813 Store plugin czarna postać Problem
Napisane przez plx211 w 14.03.2016 21:21
#722658 problem z cs go podczas właczania
Napisane przez plx211 w 11.03.2016 18:14
#722641 problem z cs go podczas właczania
Napisane przez plx211 w 11.03.2016 11:32
Jest to spowodowane tym ze csgo wczytuje wtedy duzo plikow i nie daje zadnych odpowiedzi, przez co system uznaje ze process sie zawiesil.
Jak ci to przeszkadza polecam ci Linux'a (jak sie na nim nie znasz, to dobrym wyborem jest mint 64bity z cinnamon)
#722601 Użycie aktywnego skilla prawym przyciskiem myszki.
Napisane przez plx211 w 10.03.2016 19:17
- AMXX.pl: Support AMX Mod X i SourceMod
- → Przeglądanie profilu: Reputacja: plx211
- Regulamin