Jump to content

Recommended Posts

Geplaatst: (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: door robojan
Geplaatst:

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

Geplaatst:

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. :)

Geplaatst:
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

Geplaatst:
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.

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.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...