Opublikowano 27 Maja 202427 Maj Siemka. Mam problem z nowym Gui od teleportacji. Dzialaja tylko 10 map, jak chce na 11 albo na 15 sie przeniesc teleportuje mnie na mape druga. Pomoze ktos? Tak to wygląda: https://i.gyazo.com/9237c9835e3fef79af3793e2391ac6fe.mp4 Plik ui: https://wklejamy.pl/GjO1mI50Nf cmd_general: https://wklejamy.pl/2QrpR4wUUu syserr czysty
Opublikowano 27 Maja 202427 Maj Rozwiązanie Problem polega na tym, że switch sprawdza jedynie pierwszy znak z arg1, więc każda liczba dwucyfrowa jest traktowana tylko na podstawie pierwszego znaku. Jeśli próbujesz przejść na mapę 11, kod wczytuje tylko 1. Wystarczy zmienić sposób, w jaki numer mapy jest odczytywany. Zamiast odczytywać tylko pierwszy znak, musisz zamienić cały numer na liczbę, aby poprawnie rozróżniać wszystkie numery map. Zaktualizowałem dla ciebie ten kod, sprawdź teraz. ACMD(do_teleport_map) { const char *teleport; char arg1[256], arg2[256]; teleport = two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); int map_number = atoi(arg1); switch (map_number) { case 0: ch->WarpSet(409600 + 59700, 896000 + 68200, 1); break; case 1: ch->WarpSet(307200 + 45900, 819200 + 63700, 4); break; case 2: ch->WarpSet(921600 + 48000, 204800 + 73600, 3); break; case 3: ch->WarpSet(819200 + 44700, 204800 + 41200, 6); break; case 4: ch->WarpSet(0 + 55700, 102400 + 55500, 2); break; case 5: ch->WarpSet(102400 + 43100, 204800 + 35200, 5); break; case 6: ch->WarpSet(256000 + 76900, 665600 + 80000, 7); break; case 7: ch->WarpSet(204800 + 83200, 486400 + 53900, 13); break; case 8: ch->WarpSet(358400 + 76400, 153600 + 60600, 8); break; case 9: ch->WarpSet(51200 + 47800, 563200 + 7900, 21); break; case 10: ch->WarpSet(153600, 1203200, 23); break; case 11: ch->WarpSet(1301400, 3103800, 26); break; } }
Opublikowano 27 Maja 202427 Maj Autor 24 minuty temu, Sevence napisał(a): Problem polega na tym, że switch sprawdza jedynie pierwszy znak z arg1, więc każda liczba dwucyfrowa jest traktowana tylko na podstawie pierwszego znaku. Jeśli próbujesz przejść na mapę 11, kod wczytuje tylko 1. Wystarczy zmienić sposób, w jaki numer mapy jest odczytywany. Zamiast odczytywać tylko pierwszy znak, musisz zamienić cały numer na liczbę, aby poprawnie rozróżniać wszystkie numery map. Zaktualizowałem dla ciebie ten kod, sprawdź teraz. ACMD(do_teleport_map) { const char *teleport; char arg1[256], arg2[256]; teleport = two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); int map_number = atoi(arg1); switch (map_number) { case 0: ch->WarpSet(409600 + 59700, 896000 + 68200, 1); break; case 1: ch->WarpSet(307200 + 45900, 819200 + 63700, 4); break; case 2: ch->WarpSet(921600 + 48000, 204800 + 73600, 3); break; case 3: ch->WarpSet(819200 + 44700, 204800 + 41200, 6); break; case 4: ch->WarpSet(0 + 55700, 102400 + 55500, 2); break; case 5: ch->WarpSet(102400 + 43100, 204800 + 35200, 5); break; case 6: ch->WarpSet(256000 + 76900, 665600 + 80000, 7); break; case 7: ch->WarpSet(204800 + 83200, 486400 + 53900, 13); break; case 8: ch->WarpSet(358400 + 76400, 153600 + 60600, 8); break; case 9: ch->WarpSet(51200 + 47800, 563200 + 7900, 21); break; case 10: ch->WarpSet(153600, 1203200, 23); break; case 11: ch->WarpSet(1301400, 3103800, 26); break; } } Jesteś świetny, męczę się nad tą teleportacja od 3 dni. Działa elegancko, mogę ruszyć dalej. Dziekuje Ci bardzo z całego serduszka
Siemka. Mam problem z nowym Gui od teleportacji. Dzialaja tylko 10 map, jak chce na 11 albo na 15 sie przeniesc teleportuje mnie na mape druga. Pomoze ktos?
Tak to wygląda:
https://i.gyazo.com/9237c9835e3fef79af3793e2391ac6fe.mp4
Plik ui:
https://wklejamy.pl/GjO1mI50Nf
cmd_general:
https://wklejamy.pl/2QrpR4wUUu
syserr czysty