Opublikowano 13 Sierpnia 202413 Sie Siema! Podrzucam wam system kuponow SM. Trochę ubogi ale zawsze cos 😛 (przynajmniej nie quest) Aktualnie jest pod 4 kupony ale nic nie stoi na przeszkodzie dodać sobie większa ilosc. (system nie zawiera kuponów jako sam itemek, wiec takowe musicie dodać se indywidualnie) Pobieralnia: 🔐 Ukryta Treść 🔐 Zaloguj się lub Zarejestruj się
Opublikowano 13 Sierpnia 202413 Sie Autor 4 minuty temu, ExoCarossa napisał(a): Kojarzysz czyj to system? Może dorwę film pokazowy na guglu Moge na szybko dodac i podeslac ale dopiero po 22. Po prostu klikasz prawym na kupon i ci przyznaje smy + info na chacie o dokladnej ilosci. A czyj system? w sumie nie wiem nawet, na necie znalazlem i troche przerobiłem. Edytowane 13 Sierpnia 202413 Sie przez ARK
Opublikowano 13 Sierpnia 202413 Sie Programista Jest to strasznie złe rozwiązanie, bardzo dużo powtarzającego się kodu (boilerplate), zabieranie kuponu dopiero po nadaniu SM, możliwe wycieki pamięci. Napisałem na szybko nową wersję, trochę ją udokumentowałem, może się połapiecie (teraz wystarczy ustawić w bazie w value0 ilość SM): switch (item->GetVnum()) { case 80014: // To też jest bez sensu, subtype sprawdziłby się lepiej. case 80015: case 80016: case 80017: { // Check possible actions if (GetExchange()) return false; if (GetShopOwner()) return false; if (IsOpenSafebox()) return false; // ... // Prepare string with query auto query = std::format( "UPDATE account.account SET cash = cash + {} WHERE id = {}", item->GetValue(1), GetAID()); // Remove coupon from player's inventory // and do it before give action (important) item->SetCount(item->GetCount() - 1); // When everything is ok (probably), run query const std::unique_ptr<SQLMsg> query_main = DBManager::instance().DirectQuery(query.c_str()); #ifdef ENABLE_REFRESH_SENDING // Update below query variable with new string query = std::format("SELECT cash FROM account.account WHERE id = {}", GetAID()); // Again, when everything is ok, send query to database const std::unique_ptr<SQLMsg> query_refresh = DBManager::instance().DirectQuery(query.c_str()); // Get data from refresh query and send to client using command const auto row = mysql_fetch_row(query_refresh->Get()->pSQLResult); ChatPacket(CHAT_TYPE_COMMAND, "BINARY_Update_Cash %s", row[0]); #endif } break; default: { break; } } // ... #define ENABLE_COINS_TICKETS #if defined(ENABLE_COINS_TICKETS) // #define ENABLE_REFRESH_SENDING #endif W gruncie rzeczy mając takie funkcje questowe jak np. charge_cash, nie widzę sensu robienia takich wydziwień tutaj, lepiej użyć lekkiego LUA, serio. Edytowane 13 Sierpnia 202413 Sie przez Thorek
Opublikowano 14 Sierpnia 202414 Sie takie rzeczy robi sie jako quescik zeby nie robic sobie smietnika w source. silniku gry tylko powinny byc systemy bez zadnych id itp bo to tylko syf sobie wiekszy robisz i musisz pozniej edytowac i kompilowac za kazdym razem Edytowane 14 Sierpnia 202414 Sie przez Kaszalotpospolity
Opublikowano 14 Sierpnia 202414 Sie Swoją drogą, ciekawi mnie czemu większość osób wszystko chce przenosić do src uważając to za lepsze rozwiązanie. Trzeba pamiętać, że nakładka w lua została zaprojektowana między innymi do takich celów. O ile mnie pamięć nie myli jak kolega wyżej pisał istnieje oryginalnie zaprojektowana taka funkcja do przydzielania SM.
Opublikowano 14 Sierpnia 202414 Sie Autor 3 godziny temu, Sevence napisał(a): Swoją drogą, ciekawi mnie czemu większość osób wszystko chce przenosić do src uważając to za lepsze rozwiązanie. Trzeba pamiętać, że nakładka w lua została zaprojektowana między innymi do takich celów. O ile mnie pamięć nie myli jak kolega wyżej pisał istnieje oryginalnie zaprojektowana taka funkcja do przydzielania SM. Pewnie chodzi o performance, c++ bezpośrednio wykonywany, wiec pod względem surowej prędkości ma przewagę nad questem. Chodź w tym przypadku pewnie marginalna różnica jest. Ale fakt faktem bez sensu interpretować id kuponów w src, juz lepiej wyszlo by dorobienie odczytu z osobnego pliki gdzie będzie definiowane id itemka i wartość sm + komenda reload żeby nie kompilować co chwile game albo właśnie jak wyżej Thorek, ciągnęło z proto. Edytowane 14 Sierpnia 202414 Sie przez ARK
Opublikowano 14 Sierpnia 202414 Sie Programista 6 godzin temu, ARK napisał(a): Pewnie chodzi o performance, c++ bezpośrednio wykonywany, wiec pod względem surowej prędkości ma przewagę nad questem. Chodź w tym przypadku pewnie marginalna różnica jest. Ale fakt faktem bez sensu interpretować id kuponów w src, juz lepiej wyszlo by dorobienie odczytu z osobnego pliki gdzie będzie definiowane id itemka i wartość sm + komenda reload żeby nie kompilować co chwile game albo właśnie jak wyżej Thorek, ciągnęło z proto. Nie wiem czemu wszyscy uwzieli się na te questy, LUA jest szybsze jeśli chodzi o callback do C niż chociażby Python. Tyle, że nikt z jakiegoś powodu nie zaczyna przepisywać UI do C++ (może za trudne?) Edytowane 14 Sierpnia 202414 Sie przez Thorek
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.