Spadki FPS poprzez HUD.
Maystore
12.04.2021
Cześć, mam takie nietypowe pytanie. Otóż jak chyba każdy wie, to HUD zabiera FPS'y, czasem kilka, a czasem kilkanaście.
A więc, moje pytanie brzmi następująco, da się jakoś 'zoptymalizować' HUD? Zmniejszając rozmiar tekstu, skracając tekst, coś przez co FPS'y mogłyby sie powiększyć. Wątpie, że sie da, ale warto pytać
HUD zmienia się w silniku modyfikacji, wygląda tak:
//set_hudmessage(0, 255, 0, 0.6, 0.1, 0, 0.01, 1.0); //ShowSyncHudMsg(0, SyncHudObj2, "Dzien %i - %s", jail_day, dni_tygodnia[jail_day%7]); static szDay[200]; if(!prowadzacy && !szInfo[0]) { formatex(szDay, 200, "| ** Dzien %i - %s ** |^n| > Prowadzacy: Brak < |^n^n^n| > Typ dnia: Normalny < |^n| > Wiezniow: %i/%i < |", jail_day, dni_tygodnia[jail_day%7], ilosc_graczy[ZYWI], ilosc_graczy[WSZYSCY]); set_hudmessage(31, 67, 250, 0.10, 0.05, 0, 0.01, 1.0); } if(prowadzacy && !szInfo[0]) { set_hudmessage(31, 67, 250, 0.10, 0.05, 0, 0.01, 1.0); formatex(szDay, 200, "| ** Dzien %i - %s ** |^n| > Prowadzacy: %s < |^n^n^n| > Typ dnia: Normalny < |^n| > Wiezniow: %i/%i < |^n| > Wiezniowie musza sie sluchac Prowadzacego < |", jail_day, dni_tygodnia[jail_day%7], nazwa_gracza[prowadzacy], ilosc_graczy[ZYWI], ilosc_graczy[WSZYSCY]); } else if(szInfo[0]) { set_hudmessage(31, 67, 250, 0.10, 0.05, 0, 0.01, 1.0); formatex(szDay, 200, "| ** Dzien %i - %s ** |^n| > Prowadzacy: Brak < |^n^n^n| > Typ dnia: %s < |^n| > Wiezniow: %i/%i < |", jail_day, dni_tygodnia[jail_day%7], szInfo, ilosc_graczy[ZYWI], ilosc_graczy[WSZYSCY]); } if(prowadzacy && !szInfo[0] && ostatni_wiezien) { new nick[33]; get_user_name(ostatni_wiezien, nick, 31); set_hudmessage(31, 67, 250, 0.10, 0.05, 0, 0.01, 1.0); formatex(szDay, 200, "| ** Dzien %i - %s ** |^n| > Prowadzacy: %s < |^n^n^n| > Typ dnia: Normalny < |^n| > Wiezniow: %i/%i < |^n| > Ostatni wiezien: %s < |^n| > Wiezniowie musza sie sluchac Prowadzacego < |", jail_day, dni_tygodnia[jail_day%7], nazwa_gracza[prowadzacy], ilosc_graczy[ZYWI], ilosc_graczy[WSZYSCY], nick); } else if(szInfo[0] && ostatni_wiezien) { new nick[33]; get_user_name(ostatni_wiezien, nick, 31); set_hudmessage(31, 67, 250, 0.10, 0.05, 0, 0.01, 1.0); formatex(szDay, 200, "| ** Dzien %i - %s ** |^n| > Prowadzacy: Brak < |^n^n^n| > Typ dnia: %s < |^n| > Wiezniow: %i/%i < |^n| > Ostatni wiezien: %s < |^n", jail_day, dni_tygodnia[jail_day%7], szInfo, ilosc_graczy[ZYWI], ilosc_graczy[WSZYSCY], nick); } ShowSyncHudMsg(0, SyncHudObj3, szDay); if(szPoszukiwani[0] && !szInfoPosz[0]) { set_hudmessage(255, 85, 85, 0.01, 0.4, 0, 0.01, 1.0); ShowSyncHudMsg(0, SyncHudObj4, "Poszukiwani:%s", szPoszukiwani); } else if(szInfoPosz[0]) { set_hudmessage(0, 255, 0, 0.01, 0.22, 0, 0.01, 1.0); ShowSyncHudMsg(0, SyncHudObj4, szInfoPosz); } #if defined DEBUG log_to_file("jail_api_jailbreak.log", "task_server post"); #endif }
Rivit
12.04.2021
Hmmm, gra nie warta świeczki.
Najczęściej najlepszym pomysłem jest zmniejszenie częstotliwości odświeżania huda (set_task). Ja często dawałem, żeby co sekundę się odświeżało (należy wtedy dostosować długosć wyświetlania wiadomości hud (któryś parametr set_hudmessage)), bo osobiście uwazam, że odświeżanie np co 0.1s nie ma sensu.
Jeszcze co widze w tym kawałku to można porobić 'else ify', ale to znikoma optymalizacja