pazio Opublikowano 13 Listopada 2014 Udostępnij Opublikowano 13 Listopada 2014 otóż znalazłem w necie fajny "example" do mario_kart pobrałem go i pozmieniałem na bolidy porche supercup ale nie potrafiłem ustawić tak żeby bolidy po dojechaniu do mety miały inną punktację niż ta którą posiada gra czyli za pierwsze miejsce 10, za drugie 9 itd....... próbowałem również dodać więcej bolidów żeby nie jeździły tylko 8 a np. 12 ale wyskakiwał jakiś dziwny błąd w obj_camera i obj_hud pomimo że w kodzie pozmieniałem w tym miejscu gdzie global.player to ustawiłem z 7 na 10(nie licząc gracza) o oto brzmi moje pytanie mógłby ktoś zobaczyć ten przykład i postarać się "przerobić" te dwa wyżej pisane błędy albo wytłumaczył w jaki sposób to zrobić? oto link mario_kart Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pop44 Opublikowano 15 Listopada 2014 Udostępnij Opublikowano 15 Listopada 2014 Wklej kod, który erroruje. Uwierz mi, gdybyśmy Ci zrobili gotowca to byś się nie podskillował ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pazio Opublikowano 15 Listopada 2014 Autor Udostępnij Opublikowano 15 Listopada 2014 już z graczami sam mocno się przyjrzałem i doszedłem do tego jak ustawić ich więcej ale jeszcze mam drugie pytanie odnośnie tych punktów,otóż znalazłem te dwa kody i jestem przekonany że są one od punktacji ale te dwa kody są tak głupie że liczą punkty od 10 w dół czyli 10-9-8-7 ...... potrafisz coś na to poradzić żeby punkty były liczone inaczej np.15 za pierwsze a 12 za drugie 11 za trzecie? pokazuje kod niżej GML if stats=0 and !instance_exists(obj_player) { alarm[0]=90 stats=1 ds_list_clear(global.best_this_round) ds_list_clear(global.best) list=ds_list_create() with driver_parent { global.points[player_id]+=(11-place) ds_list_add(other.list,global.points[player_id]) done=false } ds_list_sort(list,false) for (u=0;u<instance_number(driver_parent);u+=1) { with driver_parent { if global.points[player_id]=ds_list_find_value(other.list,other.u) and done=false { ds_list_add(global.best,player_id) ds_list_add(global.best_this_round,player_id) global.place[player_id]=place done=true break; } } } ds_list_destroy(list) } if stats=1 { str="This round" draw_sprite_ext(spr_l_mask,0,view_wview/2,40,string_width(str)/32,1,0,c_white,0.5) draw_text(view_wview/2,40,str) for (u=0;u<instance_number(driver_parent);u+=1) { draw_sprite(global.char[global.char[ds_list_find_value(global.best_this_round,u)],_sprite],0,20,25+32*u) yy=24+32*u-5 draw_sprite_ext(spr_l_mask,0,50,yy,1,1,0,c_white,0.5) draw_sprite_ext(spr_l_mask,0,100,yy,1,1,0,c_white,0.5) draw_text(50,yy,global.player_id[ds_list_find_value(global.best_this_round,u)].place) draw_text(100,yy,(11-global.player_id[ds_list_find_value(global.best_this_round,u)].place)) } } if stats=2 { str="Total" draw_sprite_ext(spr_l_mask,0,view_wview/2,40,string_width(str)/32,1,0,c_white,0.5) draw_text(view_wview/2,40,str) for (u=0;u<instance_number(driver_parent);u+=1) { draw_sprite(global.char[global.char[ds_list_find_value(global.best,u)],_sprite],0,20,25+32*u) yy=24+32*u-5 draw_sprite_ext(spr_l_mask,0,50,yy,1,1,0,c_white,0.5) draw_sprite_ext(spr_l_mask,0,100,yy,1,1,0,c_white,0.5) draw_text(50,yy,global.player_id[ds_list_find_value(global.best_this_round,u)].place) draw_text(100,yy,global.points[ds_list_find_value(global.best_this_round,u)]) } } GML if stats=0 and !instance_exists(obj_player) { var toplist,reference,charlist,tempcharlist,u,i; ini_time=0 ini_character=1 toplist=ds_list_create() reference=ds_list_create() tempcharlist=ds_list_create() ini_open("Topscore.ini") for (u=0;u<7;u+=1) { ds_list_add(toplist,sqrt(ini_read_real(string(room)+","+string(global.difficult)+string(ini_time),string(u),0))) ds_list_add(reference,sqrt(ini_read_real(string(room)+","+string(global.difficult)+string(ini_time),string(u),0))) ds_list_add(tempcharlist,sqrt(ini_read_real(string(room)+","+string(global.difficult)+string(ini_character),string(u),0))) } ds_list_add(toplist,time) ds_list_add(reference,time) ds_list_add(tempcharlist,global.char[7]) ds_list_sort(toplist,true) charlist=ds_list_create() for (u=0;u<8;u+=1) { value=ds_list_find_value(toplist,u) index=ds_list_find_index(reference,value) ds_list_add(charlist,ds_list_find_value(tempcharlist,index)) } ini_section_delete(string(room)+","+string(global.difficult)+string(ini_time)) ini_section_delete(string(room)+","+string(global.difficult)+string(ini_character)) var i; i=0 for (u=0;u<8;u+=1) { if ds_list_find_value(toplist,u)>0 { ini_write_real(string(room)+","+string(global.difficult)+string(ini_time),string(u+i),power(ds_list_find_value(toplist,u),2)) ini_write_real(string(room)+","+string(global.difficult)+string(ini_character),string(u+i),power(ds_list_find_value(charlist,u),2)) } else {i-=1} } ds_list_destroy(toplist) ds_list_destroy(charlist) stats=2 } if stats=1 or stats=2 { var _time; draw_set_font(font1) str="Highscore" draw_sprite_ext(spr_l_mask,0,view_wview-100,20,string_width(str)/32,1,0,c_white,0.5) draw_text(view_wview-100,20,"Highscore") draw_set_font(font2) str="Track - "+string(global.map[room,_name]) draw_sprite_ext(spr_l_mask,0,view_wview-100,56,string_width(str)/32,1,0,c_white,0.5) draw_text(view_wview-100,56,str) str="Character - "+string(global.char[global.char[7],_name]) draw_sprite_ext(spr_l_mask,0,view_wview-100,92,string_width(str)/32,1,0,c_white,0.5) draw_text(view_wview-100,92,str) var diff; if global.difficult=0{diff="Easy"} if global.difficult=1{diff="Medium"} if global.difficult=2{diff="Hard"} str="Difficulty - "+diff draw_sprite_ext(spr_l_mask,0,view_wview-100,128,string_width(str)/32,1,0,c_white,0.5) draw_text(view_wview-100,128,str) for (u=0;ini_read_real(string(room)+","+string(global.difficult)+string(ini_time),string(u),0)>0;u+=1) { yy=12+u*32 if u=7 { if sqrt(ini_read_real(string(room)+","+string(global.difficult)+string(ini_time),string(u),0))=time{yy+=13} else{exit;} } _time=sqrt(ini_read_real(string(room)+","+string(global.difficult)+string(ini_time),string(u),0)) if time=_time{draw_sprite_ext(spr_l_mask,0,100,yy+7,7,1,0,c_white,0.5)} draw_sprite(global.char[sqrt(ini_read_real(string(room)+","+string(global.difficult)+string(ini_character),string(u),0)),_sprite],0,20,yy+16) set_time(_time) draw_time(50,yy-4) } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 15 Listopada 2014 Udostępnij Opublikowano 15 Listopada 2014 Nie jestem pewien czy rozumiesz znaczenie słowa "Przykład". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pop44 Opublikowano 15 Listopada 2014 Udostępnij Opublikowano 15 Listopada 2014 Pazio, bo w sumie przykładów się nie przerabia. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pazio Opublikowano 15 Listopada 2014 Autor Udostępnij Opublikowano 15 Listopada 2014 nie,bo mi chodzi teraz tylko o to by z tego co pokazałem oraz tego przykładu zrobić tak żeby punktacja była w inny sposób liczona ja nie chce żeby to liczyło mi kolejno 10-9-8 bo jest to nudne ale żeby konkretnie za którąś pozycje wiem że się nie przerabia ale mi nie chodzi żeby od razu gre mario_kart zmienić na Need For Speed ale żebym mógł mieć inną klasyfikacje punktową pliska o pomoc Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 15 Listopada 2014 Udostępnij Opublikowano 15 Listopada 2014 W takim razie olej ten przykład, bo bardziej Ci on szkodzi niż pomaga, i zrób to tak jak uważasz że powinno być zrobione. Jeżeli dalej nie umiesz tego zrobić to znaczy że musisz się jeszcze czegoś nauczyć. Tak wygląda praca programisty. :bye1: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pazio Opublikowano 16 Listopada 2014 Autor Udostępnij Opublikowano 16 Listopada 2014 hah zamiast się wymądrzać w każdym moim poście mógłbyś w czymś pomóc zamiast się przechwalać Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 16 Listopada 2014 Udostępnij Opublikowano 16 Listopada 2014 Wymądrzam się bo z doświadczenia wiem że tak najłatwiej jest kogoś przekonać do zmiany myślenia w takim wypadku. Będziesz coraz bardziej uparty i w końcu zrobisz co chciałeś albo się poddasz. Ale nie martw się, pomogę Ci. Twój algorytm musi składać się z tych elementów: Dwóch list zawierających wyniki z aktualnego wyścigu oraz całego sezonu, liczenia punktów, no i być może wczytywania i zapisywania wyników. Do przechowywania wyników polecam ds_map gdzie kluczem będzie id zawodnika a wartością jakaś wartość. (lol) To nie będzie jeden ds_map, będzie ich kilka. Jeden może przechowywać imiona graczy, drugi ich wyniki w sezonie, trzeci wyniki z aktualnego wyścigu, ale może być ich więcej. Możesz przechowywać w nich wszelakie dane na temat zawodników. Jakimi samochodami jeżdżą, jaki mają kolor albo co sobie zamarzysz. Nie pomogę Ci z liczeniem wyników (chociaż o to prosisz w pierwszym poście) ale wiesz jak to powinno działać. Po prostu wpisuj odpowiednim zawodnikom ich punkty do tabeli z wynikami aktualnego wyścigu, oraz dodawaj te wyniki do wyników z całego sezonu. Jeżeli chodzi o zapisywanie i wczytywanie z dysku to jest to niesamowicie proste przy strukturach w GM. Nie wiem czemu ludzie upierają się na te pliki ini. Nie podam nazwy tej funkcji bo chcę żebyś sam poszukał i przeczytał jak działają wszystkie te funkcje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pazio Opublikowano 17 Listopada 2014 Autor Udostępnij Opublikowano 17 Listopada 2014 a mają być tak samo dwa kody jak na górze tyle tylko że każdy wynik ma być oddzielny GML GMLswitch(global.miejsce) { case 1: global.punkty+=25; break; case 2: global.punkty+=18; break case 3: global.punkty+=15; break case 4: global.punkty+=12; break case 5: global.punkty+=10; break case default: global.punkty+=0; break; ds_map (other.list,global.points[player_id]) } .... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 17 Listopada 2014 Udostępnij Opublikowano 17 Listopada 2014 To co teraz pokazałeś wygląda jakbyś nie miał pojęcia nic o GML. Przykro mi ale chyba nikt Ci nie pomoże. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pop44 Opublikowano 18 Listopada 2014 Udostępnij Opublikowano 18 Listopada 2014 Łączenie przykładów i czyjegoś kodu nie ma ani krzty sensu. Sprawdź sobie dokumentację i uzupełnij luki. W twoim wypadku są to switche i pewnie zmienne, a bez tego ani rusz. Możesz też próbować robić to na klockach, a potem stopniowo przekonwertujesz to na kod. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się