[Problem&Frage]mit OnPlayerEnterVehicle

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Abend liebe Brotfische!


    Ich habe heute mal etwas mit OnPlayerEnterVehicle rumexperementiert.
    Da zu habe ich eine Frage:
    Ist es möglich abzufragen,ob der Spieler wirklich in einem bestimmten Auto sitzt und wenn ja,dass erstmal ein Dialog gezeigt wird und man dann verschiedene möglichkeiten hat?
    Meines erachtens nach müsste das gehen.
    Nun das Problem:
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if IsADakarCar
    {
    ShowPlayerDialog(playerid,DIALOG_DAKARAUTO,DIALOG_STYLE_MSGBOX,"Einführung und Tipps für die Rallye","Willkommen im Rallye Dune.\nSie müssen Checkpoints abfahren,um ins Ziel zu kommen.\nBleiben Sie liegen,so haben Sie das Rennen verloren!\n","Rennen starten","Abbrechen");
    return 1;//Zeile 272
    }
    return 0;
    }
    so außerdem habe ich noch andere Probleme ich poste sie einfach dazu.
    Die Fahler sind hier:
    C:\Users\Artom\Desktop\Pawno 0.3b RC 2\gamemodes\Funtest.pwn(172) : error 032: array index out of bounds (variable "DakarCar")
    C:\Users\Artom\Desktop\Pawno 0.3b RC 2\gamemodes\Funtest.pwn(270) : error 028: invalid subscript (not an array or too many subscripts): "IsADakarCar"
    C:\Users\Artom\Desktop\Pawno 0.3b RC 2\gamemodes\Funtest.pwn(272) : warning 217: loose indentation
    C:\Users\Artom\Desktop\Pawno 0.3b RC 2\gamemodes\Funtest.pwn(274) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.
    so die eine Zeile ist da oben nun kommen noch die anderen...
    DakarCar[7] = AddStaticVehicleEx(573,-1191.95300293,1825.19592285,41.93419647,45.00000000,-1,-1,20000); //Duneride//Zeile 172


    Ich bitte um Hilfe..ihr könnt mich natürlich auch in Skype oder ICQ adden....
    Danke euch schonmal im voraus

  • OnPlayerEnterVehicle wird nur aufgerufn wenn der Spieler F/ENTER gedrückt hat, nicht wenn er sich in ein Auto hinsetzt.


    Dafür kannst du OnPlayerStateChange benutzen:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    //Hier-Code-Rein
    }
    }

  • Vielen Dank für die erste Hilfe :)
    Nun gibts noch ein Prob.
    Ich wusste nicht genau,was es heißen soll,und auch die deutsche Übersetzung versteh ich nicht ganz.


    Hier der Code:


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {


    if (IsADakarCar(carid))
    {
    ShowPlayerDialog(playerid,DIALOG_DAKARAUTO,DIALOG_STYLE_MSGBOX,"Einführung und Tipps für die Rallye","Willkommen im Rallye Dune.\nSie müssen Checkpoints abfahren,um ins Ziel zu kommen.\nBleiben Sie liegen,so haben Sie das Rennen verloren!\n","Rennen starten","Abbrechen");
    return 1;
    }
    return 1;
    }


    Ich kann mit dem public OnPlayerStateChange leider nicht viel anfangen,und bitte um eine einfache Erklärung,danke!

  • public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate==PLAYER_STATE_DRIVER) // falls der Spieler nun den Status PLAYER_STATE_DRIVER ("SPIELER_STATUS_FAHRER") hat
    {
    new carid=GetPlayerVehicleId(playerid);
    if (IsADakarCar(carid))
    {
    ShowPlayerDialog(playerid,DIALOG_DAKARAUTO,DIALOG_STYLE_MSGBOX,"Einführung und Tipps für die Rallye","Willkommen im Rallye Dune.\nSie müssen Checkpoints abfahren,um ins Ziel zu kommen.\nBleiben Sie liegen,so haben Sie das Rennen verloren!\n","Rennen starten","Abbrechen");
    return 1;
    }
    }
    return 1;
    }

  • Da hab ich doch noch eine Frage:


    Könntest du/jemand anders mir sagen,was ich genau definieren soll ??
    Also was muss ich dann unter #define machen?
    Und muss das
    newstate==PLAYER_STATE_DRIVER) irgendwie unter forward .... ???
    bzw. unter die new's?


    Bitte um hilfe... danke

  • bei mir weist es dauern derrors auf ...;(
    Ich weiß nicht mehr was ich machen soll ;(
    Muss davon irgendwas definiert oder unter New ...; / forward bla bla gesetzt werden?


    Danke im voraus

  • Füge das hier mal in deinen a-samp.inc rein und versuch nochmal zu compilen:
    // States
    #define PLAYER_STATE_NONE (0)
    #define PLAYER_STATE_ONFOOT (1)
    #define PLAYER_STATE_DRIVER (2)
    #define PLAYER_STATE_PASSENGER (3)
    #define PLAYER_STATE_EXIT_VEHICLE (4) // (used internally)
    #define PLAYER_STATE_ENTER_VEHICLE_DRIVER (5) // (used internally)
    #define PLAYER_STATE_ENTER_VEHICLE_PASSENGER (6) // (used internally)
    #define PLAYER_STATE_WASTED (7)
    #define PLAYER_STATE_SPAWNED (8)
    #define PLAYER_STATE_SPECTATING (9)