![]() |
Problem z dodaniem metody do klasy Packet (G2O v.0.1.0) - Printable Version +- Gothic Online Forums (https://archive.gothic-online.com) +-- Forum: Community (https://archive.gothic-online.com/forum-18.html) +--- Forum: Polish (Polski) (https://archive.gothic-online.com/forum-19.html) +---- Forum: Pomoc (https://archive.gothic-online.com/forum-23.html) +---- Thread: Problem z dodaniem metody do klasy Packet (G2O v.0.1.0) (/thread-2069.html) |
Problem z dodaniem metody do klasy Packet (G2O v.0.1.0) - Patrix - 15.05.2017 Witam, ostatnio myślałem nad dodaniem metody w squirrelu do klasy Packet, która automatycznie określałaby z jakiej metody skorzystać do zapisania Int'a na jak najmniejszej ilości bitów. Niby wszystko fajnie, pięknie, lecz przy próbie wywołania metody następuje crash, poniżej załączam screen z błędem: ![]() Tu fragment kodu testowego, po którym crashuje: Squirrel Script
Squirrel Script
Metoda Packet.writeInt się wywołuje, lecz po wywołaniu metody Packet.writeUint8 następuje crash. Ktoś ma jakiś pomysł dlaczego? Przy okazji, czy dodawania takiej metody to w ogóle dobry pomysł? RE: Problem z dodaniem metody do klasy Packet (G2O v.0.1.0) - KimiorV - 15.05.2017 A skąd będziesz wiedział jakiego reada użyć po drugiej stronie? RE: Problem z dodaniem metody do klasy Packet (G2O v.0.1.0) - Patrix - 15.05.2017 Właśnie nad tym myślałem i tu jest problem xD. Teoretycznie mógłym użyć metod writeString i readString, ale nie jest to zbytnio dobry pomysł. Problem udało mi się przed chwilą rozwiązać zamieniając w if'ach słówko Packet na this. RE: Problem z dodaniem metody do klasy Packet (G2O v.0.1.0) - Bimbol - 15.05.2017 No nic dziwnego, że crashowało. Chciałeś wpisać wartości do szablonu klasy? Złamałeś tutaj zasadę działania obiektowości. No tak jak mówi Kimior, nie wiesz ile bitów będziesz musiał odczytać. Aby ominąć ten problem i tak musisz wpisywać dodatkowy bajt, który określi ile danych wpisałeś. Czytaj 1 bajt - jakie dane, następne faktyczne dane. Przy czym kiedy przesyłasz małe wartości np. zakres 0-100 to tracisz 1 bajt, którego by tam nie musiało być. Generalnie nie wiem po co tutaj takie uproszczenia. RE: Problem z dodaniem metody do klasy Packet (G2O v.0.1.0) - Patrix - 15.05.2017 Rozumiem. Zastanawiałem się czy miałoby to w ogóle jakiś sens, ale z tego co widzę, to niezbyt opłacalne jest dodawanie takiej metody. Temat można zamknąć. |