Befehl zum Fraktionsfahrzeug Spawn [ Erbitte HILFE ]

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
  • Hallo,




    Ich möchte hier um Hilfe bitten. Ich werde zunächst die
    Problembeschreibung niederschreiben und anschliesend die; so glaube ich
    zumindestens; erforderlichen Scriptauszüge beilegen.




    Die Problembeschreibung:




    Ich habe ein Fraktionscar-system, das bedeutet ich kann in 2 Fraktionen
    als Fraktionsmitglied ( egal ob leader oder member ) den Befehl /fcar
    eingeben und anschliesend wird mir in besagter Fraktion ein Fahrzeug
    gespawnt. Das funktioniert bei den Medics ( Fraktionssnummer 4 ) und
    beim Taxiteam ( Fraktionsnummer 10 ). Wenn ich also Fraktionsmitglied
    oder Leader der Medics bin, mir ein Fraktionsfahrzeug erstelle
    funktioniert auch alles recht gut. Wenn ich das Fahrzeug lösche ist auch
    alles sehr gut. Wenn ich nach dem Löschen des Fahrzeuges mich aber zum
    Leader des Taxiteams mache, und dort ein Taxi erstelle und einsteige
    erhalte ich die Meldung: "Du bist kein Mitglied des Rettungsdienstes"
    und ich werde wieder aus dem Fahrzeug geschmissen. Obwohl ich wie
    bereits erwähnt kein Mitglied des Rettungsdienstes mehr bin, sondern
    Taxifahrer.




    Die Codeschnipsel:




    new MedicCar[MAX_PLAYERS];


    new MedicAuto[MAX_PLAYERS];


    new TaxiCar[MAX_PLAYERS];


    new TaxiAuto [MAX_PLAYERS];




    #define DIALOG_MEDICCARS 1111


    #define DIALOG_TAXICARS 1116




    forward IsAnAmbulance(carid);//4


    forward IsATaxiCar(carid);//10









    if(strcmp(cmdtext,"/fcar",true)==0)


    {


    if(SpielerInfo[playerid][sLeader] == 4 || SpielerInfo[playerid][sMember] == 4)


    {


    if(IsPlayerInRangeOfPoint(playerid,5.0,2036.8271,-1403.3060,17.2881))


    {


    if(MedicCar[playerid]==0)


    {


    if(SpielerInfo[playerid][pRank] >= 0)


    {



    ShowPlayerDialog(playerid,DIALOG_MEDICCARS,DIALOG_STYLE_LIST,"Rettungsdienst
    Fahrzeugwahl","Ambulance\nMedicopter","Bestätigen","Abbrechen");


    }


    if(SpielerInfo[playerid][pRank] >= 4)


    {



    ShowPlayerDialog(playerid,DIALOG_MEDICCARS,DIALOG_STYLE_LIST,"Rettungsdienst

    Fahrzeugwahl","Ambulance\nMedicopter\nNotarzt","Bestätigen","Abbrechen");


    }


    }


    else


    {


    SendClientMessage(playerid,COLOR_RED,"Du hast schon
    ein Rettungsdienst Fahrzeug - lösch es bitte erst mit '/delfcar'");


    }


    }


    return 1;


    }


    else if(SpielerInfo[playerid][sLeader] == 10 || SpielerInfo[playerid][sMember] == 10)


    {


    if(IsPlayerInRangeOfPoint(playerid,5.0,1236.2017,-1662.9456,11.7969))


    {


    if(TaxiCar[playerid]==0)


    {


    if(SpielerInfo[playerid][pRank] >= 0)


    {



    ShowPlayerDialog(playerid,DIALOG_TAXICARS,DIALOG_STYLE_LIST,"Taxi
    Fahrzeugwahl","Taxi","Bestätigen","Abbrechen");


    }


    if(SpielerInfo[playerid][pRank] >= 2)


    {



    ShowPlayerDialog(playerid,DIALOG_TAXICARS,DIALOG_STYLE_LIST,"Taxi
    Fahrzeugwahl","Taxi\nCabby","Bestätigen","Abbrechen");


    }


    if(SpielerInfo[playerid][pRank] >= 3)


    {



    ShowPlayerDialog(playerid,DIALOG_TAXICARS,DIALOG_STYLE_LIST,"Taxi
    Fahrzeugwahl","Taxi\nCabby\nStretch","Bestätigen","Abbrechen");


    }


    }


    else


    {


    SendClientMessage(playerid,COLOR_RED,"Du hast schon ein Taxi - lösch es bitte erst mit '/delfcar'");


    }


    }


    return 1;


    }


    else return SendClientMessage(playerid,COLOR_RED,"Du darfst dir kein Fahrzeug Spawnen!");


    }





    if(strcmp(cmdtext,"/delfcar",true)==0)


    {


    if(SpielerInfo[playerid][sLeader] == 4 || SpielerInfo[playerid][sMember] == 4)


    {


    if(MedicCar[playerid]==1)


    {


    DestroyVehicle(MedicAuto[playerid]);


    SendClientMessage(playerid,COLOR_GREEN,"Du hast dein gespawntes Fahrzeug Entfernt!");


    MedicCar[playerid] = 0;


    }


    else


    {


    SendClientMessage(playerid,COLOR_RED,"Du hast noch kein Fahrzeug gespawnt!");


    }


    return 1;


    }


    else if(SpielerInfo[playerid][sLeader] == 10 || SpielerInfo[playerid][sMember] == 10)


    {


    if(TaxiCar[playerid]==1)


    {


    DestroyVehicle(TaxiAuto[playerid]);


    SendClientMessage(playerid,COLOR_GREEN,"Du hast dein gespawntes Fahrzeug Entfernt!");


    TaxiCar[playerid] = 0;


    }


    else


    {


    SendClientMessage(playerid,COLOR_RED,"Du hast noch kein Fahrzeug gespawnt!");


    }


    return 1;


    }


    else return SendClientMessage(playerid,COLOR_RED,"Du kannst kein Fahrzeug löschen, da du keins erstellen kannst!");


    }





    if(dialogid == DIALOG_TAXICARS)


    {


    if(response)


    {


    if(listitem == 0)


    {


    TaxiAuto[playerid] = CreateVehicle(420,1227.8495,-1653.4192,11.5771,270.6812,6,6,-1);


    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir ein Taxi als Fahrzeug gespawnt!");


    TaxiCar[playerid] = 1;


    }


    else if(listitem == 1)


    {


    TaxiAuto[playerid]=CreateVehicle(438,1227.8495,-1653.4192,11.5771,270.6812,6,6,-1);


    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir ein Cabby als Fahrzeug gespawnt!");


    TaxiCar[playerid] = 1;


    }


    else if(listitem == 2)


    {


    TaxiAuto[playerid]=CreateVehicle(409,1227.8495,-1653.4192,11.5771,270.6812,6,6,-1);


    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir eine Stretch Fahrzeug gespawnt!");


    TaxiCar[playerid] = 1;


    }


    }


    return 1;


    }


    if(dialogid == DIALOG_MEDICCARS)


    {


    if(response)


    {


    if(listitem == 0)


    {


    MedicAuto[playerid] = CreateVehicle(416,2014.5378,-1433.6283,13.7033,133.4530,1,3,-1);


    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir ein Ambulance als Fahrzeug gespawnt!");


    MedicCar[playerid] = 1;


    }


    else if(listitem == 1)


    {


    MedicAuto[playerid] = CreateVehicle(563,2069.0349,-1425.1941,49.0407,86.4916,1,3,-1);


    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir ein Medicopter als Fahrzeug gespawnt!");


    MedicCar[playerid] = 1;


    }


    else if(listitem == 2)


    {


    MedicAuto[playerid] = CreateVehicle(599,2014.5378,-1433.6283,13.7033,133.4530,1,3,-1);


    SendClientMessage(playerid,COLOR_GREEN,"Du hast dir ein Notarzt Fahrzeug gespawnt!");


    MedicCar[playerid] = 1;


    }


    }


    return 1;


    }





    public IsAnAmbulance(carid)//4


    {


    for(new i = 0; i < sizeof(MedicAuto); i++)


    {


    if(carid == MedicAuto[i])


    {


    return 1;


    }


    }


    return 0;


    }





    public IsATaxiCar(carid)//10


    {


    for(new x = 0; x < sizeof(TaxiAuto); x++)


    {


    if(carid == TaxiAuto[x])


    {


    return 1;


    }


    }


    return 0;


    }





    if(!IsPlayerInFrac(playerid,4))


    {


    for(new pv = 0; pv < sizeof(MedicAuto); pv++)


    {


    if(newcar == MedicAuto[pv])


    {


    SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied des Rettungsdienstes!");


    RemovePlayerFromVehicle(playerid);


    }


    }


    }





    if(!IsPlayerInFrac(playerid,10))


    {


    for(new pv = 0; pv < sizeof(TaxiAuto); pv++)


    {


    if(newcar == TaxiAuto[pv])


    {


    SendClientMessage(playerid,COLOR_RED,"Du hast keine Schlüssel!");


    RemovePlayerFromVehicle(playerid);


    }


    }


    }






    Weitere Informationen:




    Compilen kann ich ohne Warnings / Errors, es funktioniert wie eingangs
    erwähnt auch alles Auser dass wenn ein Medic ein Fahrzeug erstellt, es
    auch wieder löscht, kein Taxifahrer mehr beim erstellen seines
    fahrzeuges in dieses einsteigen kann. ( Also erstellen geht, einsteigen
    nicht ).






    Ich hoffe ich habe alles ausreichend erklärt und bitte um entsprechende Hilfe zur Lösung des "Bugs" ....






    Liebe Grüße und vielen Dank bereits im Vorraus.




    Timon


    p.S. Entsprechende ewige Leerzeilen, falsches einrücken der klammern etc. bitte ich zu entschuldigen, das liegt etwas an meinem browser der das ganze falsch ans Forum wieder gibt, im Script ist alles richtig und die klammern sind auch richtig gesetzt und es sind da natürlich auch keine ewigen Leerzeilen drin.


    Danke für ihr Verständnis.


    p.p.S. Man hofft natürlich auf Hilfe ...

    2 Mal editiert, zuletzt von Timon1986 ()

  • Statt new TaxiAuto[MAX_PLAYERS]; probier mal MAX_VEHICLES (in der eckigen Klammer)


    Das teste übrigens auch für die andren MAX_PLAYERS

    Spoiler anzeigen
    10 Beiträge [X]
    50 Beiträge [X]
    100 Beiträge [X]
    150 Beiträge [X]
    200 Beiträge [X]
    250 Beiträge [X]
    300 Beiträge [X]
    350 Beiträge [X]
    400 Beiträge [X]
    450 Beiträge [X]
    500 Beiträge [X]
    550 Beiträge []
    600 Beiträge []
    650 Beiträge []
    700 Beiträge []
    750 Beiträge []

  • getestet und hat leider nicht funktioniert ... ich hoffe dass noch weitere möglichkeiten folgen... :(


    Langsam verzweifel ich da echt dran ...



    Aber danke für den guten vorschlag ...


    :D

    2 Mal editiert, zuletzt von Timon1986 ()