robojan Geplaatst: 20 juli 2008 Rapport Geplaatst: 20 juli 2008 (bewerkt) dit is mijn eerste cleo project nu werkt alleen nog maar de taxi maar ik heb een paar probleempjes: als ik op tab druk dan komen er 2 menutjes inplaats van 1(2 dezelfde). als ik op instappen druk en naast de taxi sta stap hij in als bestuurder inplaats van passagier hij zegt dat ik geen genoeg geld heb maar dat heb ik wel en dan stop hij er mee en als laatste de auto rijdt erg sloom zou iemand me willen helpen {$VERSION 3.1.0027} {$CLEO .cs} :call thread 'call' :call_load model.Load(#CELLPHONE) //---laad alles teveel om alles er in te zetten model.Load(#SBMOCD) if and //kijkt of het geladen is alles is ingedeeld in blokjes van 4 jf @call_load 0512: show_permanent_text_box 'call1' // press tab to call someone. wait 2000 03E6: remove_text_box :call_toets wait 0 if 00E1: player 0 pressed_key 4 jf @call_toets 0729: AS_actor $PLAYER_ACTOR hold_cellphone 1 wait 1000 player.CanMove($PLAYER_CHAR) = false 0512: show_permanent_text_box 'call12' 08D4: $call_menu1 = create_panel_with_title 'call2' position 29.0 120.0 width 180.0 columns 1 interactive 1 background 1 alignment 0 // Imports 08DB: set_panel $call_menu1 column 0 header 'DUMMY' data 'call3' 'call4' 'call5' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' 'DUMMY' //911 // taxi // missie repeat wait 0 if 00E1: player 0 pressed_key 16 then 08D8: $call_selected = panel $call_menu1 selected_row if $call_selected == 0 then 00BC: show_text_highpriority GXT 'notred' time 5000 flag 1 // ~s~Come back between 9:00 and 17:00. 08DA: remove_panel $call_menu1 03E6: remove_text_box 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 player.CanMove($PLAYER_CHAR) = true jump @call_toets end if $call_selected == 1 then 08DA: remove_panel $call_menu1 03E6: remove_text_box 0729: AS_actor $PLAYER_ACTOR hold_cellphone 1 player.CanMove($PLAYER_CHAR) = true gosub @call_taxi jump @call_toets end if $call_selected == 2 then 00BC: show_text_highpriority GXT 'notred' time 5000 flag 1 // ~s~Come back between 9:00 and 17:00. 08DA: remove_panel $call_menu1 03E6: remove_text_box 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 player.CanMove($PLAYER_CHAR) = true jump @call_toets end end until 00E1: player 0 pressed_key 15 08DA: remove_panel $call_menu1 0729: AS_ac tor $PLAYER_ACTOR hold_cellphone 0 player.CanMove($PLAYER_CHAR) = true 03E6: remove_text_box wait 1000 jump @call_toets :call_taxi wait 2000 00BC: show_text_highpriority GXT 'call6' time 5000 flag 1 // (dial tone) wait 5000 00BC: show_text_highpriority GXT 'call7' time 5000 flag 1 // do you want a taxi ? :call_taxi_bevestigen wait 0 if 00E1: player 0 pressed_key 10 then 00BC: show_text_highpriority GXT 'call8' time 5000 flag 1 // Why are you calling then? player.CanMove($PLAYER_CHAR) = true 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 jump @call_toets end if 00E1: player 0 pressed_key 11 then 00BC: show_text_highpriority GXT 'call9' time 5000 flag 1 // I'm comming. wait 5000 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 00A0: store_actor $PLAYER_ACTOR position_to $cj_plaatsx $cj_plaatsy $cj_plaatsz 00A0: store_actor $PLAYER_ACTOR position_to $taxicreate1x $taxicreate1y $taxicreate1z 005B: $taxicreate1y += 100 // (float) 04D3: get_nearest_car_path_coords_from $taxicreate1x $taxicreate1y $taxicreate1z type 2 store_to $taxi_create2x $taxi_create2y $taxi_create2z 04D3: get_nearest_car_path_coords_from $cj_plaatsx $cj_plaatsy $cj_plaatsz type 2 store_to $taxi_drivetox $taxi_drivetoy $taxi_drivetoz $call_taxi = car.Create(#TAXI, $taxi_create2x, $taxi_create2y, $taxi_create2z) $taxi_marker = marker.CreateAboveCar($call_taxi) 0129: $call_taxi_chauffeur = create_actor_pedtype 4 model #SBMOCD in_car $call_taxi driverseat car.SetMaxSpeed($call_taxi, 30.0) car.DriveTo($call_taxi, $taxi_drivetox, $taxi_drivetoy, $taxi_drivetoz) :call_taxi_incar wait 0 if and 0206: actor $PLAYER_ACTOR near_car $call_taxi radius 7.0 7.0 10.0 flag 0 on_foot 00E1: player 0 pressed_key 15 then player.CanMove($PLAYER_CHAR) = false 05CA: AS_actor $player_actor enter_car $call_taxi passenger_seat -1 -1 ms end wait 0 if actor.InCar($player_actor, $call_taxi) jf @call_taxi_incar $taxi_doelx = -1 0AB6: store_target_marker_coords_to $taxi_doelx $taxi_doely $taxi_doelz if $taxi_doelx == -1 then 00BC: show_text_highpriority GXT 'call10' time 5000 flag 1 // sellect an point on the map. 0633: AS_actor $player_actor exit_car player.CanMove($PLAYER_CHAR) = true wait 500 jump @call_taxi_incar end if Player.Money($player_actor) <= 100 then 00BC: show_text_highpriority GXT 'call11' time 5000 flag 1 // you dont have enough money. 0633: AS_actor $player_actor exit_car player.CanMove($PLAYER_CHAR) = true car.SetMaxSpeed($call_taxi, 30.0) car.DriveTo($call_taxi, $taxi_createx, $taxi_createy, $taxi_createz) wait 10000 car.Destroy($call_taxi) jump @call_toets end player.Money($player_actor) += -100 car.DriveTo($call_taxi, $taxi_doelx $taxi_doely $taxi_doelz) car.SetMaxSpeed($call_taxi, 30.0) :call_taxi_einde wait 0 if 01AE: car $call_taxi sphere 0 near_point $taxi_doelx $taxi_doely radius 10.0 10.0 stopped jf @call_taxi_einde 0633: AS_actor $player_actor exit_car player.CanMove($PLAYER_CHAR) = true car.SetMaxSpeed($call_taxi, 30.0) car.DriveTo($call_taxi, $taxi_createx, $taxi_createy, $taxi_createz) wait 10000 car.Destroy($call_taxi) end jump @call_taxi_bevestigen 0A93: end_custom_thread Bewerkt: 22 juli 2008 door robojan Reageren
.:TOM:. Geplaatst: 22 juli 2008 Rapport Geplaatst: 22 juli 2008 Hey, Verander dit voor de snelheid: car.SetMaxSpeed($call_taxi, 60.0) Je zegt zelf dat hij in de passenger seat moet gaan, logisch dat hij het doet toch? 05CA: AS_actor $player_actor enter_car $call_taxi passenger_seat -1 -1 ms Reageren
Dutchy3010 Geplaatst: 22 juli 2008 Rapport Geplaatst: 22 juli 2008 Hmm, ik denk dat Tom je al geholpen heeft wat er fout is, maar naar je code gekeken snap ik nog bepaalde dingen niet/heb ik nog bepaalde verbeterpunten... repeat wait 0 if 00E1: player 0 pressed_key 16 then 08D8: $call_selected = panel $call_menu1 selected_row if $call_selected == 0 then 00BC: show_text_highpriority GXT 'notred' time 5000 flag 1 // ~s~Come back between 9:00 and 17:00. 08DA: remove_panel $call_menu1 03E6: remove_text_box 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 player.CanMove($PLAYER_CHAR) = true jump @call_toets end if $call_selected == 1 then 08DA: remove_panel $call_menu1 03E6: remove_text_box 0729: AS_actor $PLAYER_ACTOR hold_cellphone 1 player.CanMove($PLAYER_CHAR) = true gosub @call_taxi jump @call_toets end if $call_selected == 2 then 00BC: show_text_highpriority GXT 'notred' time 5000 flag 1 // ~s~Come back between 9:00 and 17:00. 08DA: remove_panel $call_menu1 03E6: remove_text_box 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 player.CanMove($PLAYER_CHAR) = true jump @call_toets end end until 00E1: player 0 pressed_key 15 Erg lange repeat-wait-until. Maakt het voor jou én het spel niet bepaald overzichtelijk. Als ik jou was, zou ik gewoon die if-then-end structuren ná de until plaatsen. Ongeveer op de volgende manier (kijk het wel even na, want heb het maar snel gedaan en weet natuurlijk niet precies wat jij wilt hebben): repeat wait 0 if 00E1: player 0 pressed_key 16 then 08D8: $call_selected = panel $call_menu1 selected_row end until 00E1: player 0 pressed_key 15 08DA: remove_panel $call_menu1 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 player.CanMove($PLAYER_CHAR) = true 03E6: remove_text_box if $call_selected == 0 then 00BC: show_text_highpriority GXT 'notred' time 5000 flag 1 // ~s~Come back between 9:00 and 17:00. 08DA: remove_panel $call_menu1 03E6: remove_text_box 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 end if $call_selected == 1 then 08DA: remove_panel $call_menu1 03E6: remove_text_box 0729: AS_actor $PLAYER_ACTOR hold_cellphone 1 gosub @call_taxi end if $call_selected == 2 then 00BC: show_text_highpriority GXT 'notred' time 5000 flag 1 // ~s~Come back between 9:00 and 17:00. 08DA: remove_panel $call_menu1 03E6: remove_text_box 0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 end wait 1000 jump @call_toets Stuk stabieler én minder code! Voor de rest; nette code, petje af. Her en der kan het nog wat bijgeschaafd worden, bijvoorbeeld omdat je onnodig telkens dingen opnieuw checkt, maar in principe maakt dat niets uit. Reageren
robojan Geplaatst: 22 juli 2008 Auteur Rapport Geplaatst: 22 juli 2008 Je zegt zelf dat hij in de passenger seat moet gaan, logisch dat hij het doet toch? 05CA: AS_actor $player_actor enter_car $call_taxi passenger_seat -1 -1 ms nee ik bedoel hij stapt als bestuurder in in plaats van passengier Reageren
.:TOM:. Geplaatst: 23 juli 2008 Rapport Geplaatst: 23 juli 2008 Hey, 05CA: AS_actor $player_actor enter_car $call_taxi passenger_seat 1 -1 ms Zo ? Reageren
Dutchy3010 Geplaatst: 23 juli 2008 Rapport Geplaatst: 23 juli 2008 hij zegt dat ik geen genoeg geld heb maar dat heb ik wel en dan stop hij er mee Player.Money($player_actor) <= 100 Die opcode klopt niet: 1) $PLAYER_ACTOR moet $PLAYER_CHAR zijn, maar ik weet niet of dit verschil maakt (nooit getest). 2) < komt nooit voor in scm-scripten. Je moet altijd > gebruiken. Reageren
Recommended Posts
Een reactie plaatsen
Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.