Flock Problem

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 liebe Community! Ich muss euch mal auf die Nerven gehen und was eig. leichtes fragen aber ich bin schon länger raus. Wie mache ich es weg, dass man in dem Fahrzeug sitzen muss? Wenn man das Auto abschließt und davor steht kann man es nicht mehr aufschließen.



    if(strcmp(cmdtext,"/flock",true)==0){
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
    new Carid=GetPlayerVehicleID(playerid);
    new fc;while(fc<MAX_FRACTION_CARS){
    if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611){
    if(FractionCars[fc][fCarid] == Carid){
    for(new f;f<5;f++){
    if(SpielerInfo[playerid][sMember] == FractionCars[fc][fFraction]){



    if(FractionCars[fc][fLock]){
    FractionCars[fc][fLock]=false;
    fUnlockCar(FractionCars[fc][fCarid]);
    GameTextForPlayer(playerid,"~w~Fahrzeug~n~~g~Aufgeschlossen",5000,3);
    return true;
    }
    if(!FractionCars[fc][fLock]){
    fLockCar(FractionCars[fc][fCarid]);
    FractionCars[fc][fLock]=true;
    GameTextForPlayer(playerid,"~w~Fahrzeug~n~~r~Abgeschlossen",5000,3);
    return true;
    }
    }
    }
    }
    }fc++;
    }
    }else{
    if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER)
    return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du musst der Fahrer dieses Fahrzeuges sein.");
    return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du muss in einem Fahrzeug sitzen.");
    }return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du sitzt in keinem Fraktionsfahrzeug!");
    }

  • Habe ich das so richtig verstanden?
    Das Auto soll von außen auf und abschließbar sein?


    Wenn ja:


    [spoiler]


    (ungetestet) Sollte aber klappen^^


    Mit freundlichen Grüßen
    German_ScripterHD

    Einmal editiert, zuletzt von German_ScripterHD ()

  • Ist aber nicht auf meins angepasst kann das? ^^
    @Jeffry kannst du vielleicht helfen?


    C:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39266) : warning 219: local variable "tmp" shadows a variable at a preceding levelC:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39286) : error 017: undefined symbol "vehdoor"C:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39287) : error 017: undefined symbol "vehdoor"C:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39288) : error 017: undefined symbol "vehdoor"C:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39288) : error 017: undefined symbol "vehdoor"C:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39288) : warning 215: expression has no effectC:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39289) : error 029: invalid expression, assumed zeroC:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39289) : error 017: undefined symbol "vehdoor"C:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39289) : warning 215: expression has no effectC:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39290) : error 017: undefined symbol "veh"

    Einmal editiert, zuletzt von xTrippelX ()

  • Versuche es so:
    if(strcmp(cmdtext,"/flock",true)==0)
    {
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    new Carid = INVALID_VEHICLE_ID;
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
    new Float:Pos[3], Float:dist = 20.0, Float:tmp;
    for(new i=0;i<MAX_FRACTION_CARS; i++)
    {
    GetVehiclePos(FractionCars[i][fCarid], Pos[0], Pos[1], Pos[2]);
    tmp = GetPlayerDistanceFromPoint(playerid, Pos[0], Pos[1], Pos[2]);
    if(tmp < dist)
    {
    Carid = i;
    dist = tmp;
    }
    }
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    Carid = GetPlayerVehicleID(playerid);
    }
    if(Carid == INVALID_VEHICLE_ID)return SendClientMessage(playerid,-1,"Es befindet sich keines Fraktionsfahrzeug in der Nähe.");
    new fc;while(fc<MAX_FRACTION_CARS)
    {
    if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611)
    {
    if(FractionCars[fc][fCarid] == Carid)
    {
    for(new f;f<5;f++)
    {
    if(SpielerInfo[playerid][sMember] == FractionCars[fc][fFraction])
    {
    if(FractionCars[fc][fLock])
    {
    FractionCars[fc][fLock]=false;
    fUnlockCar(FractionCars[fc][fCarid]);
    GameTextForPlayer(playerid,"~w~Fahrzeug~n~~g~Aufgeschlossen",5000,3);
    return true;
    }
    if(!FractionCars[fc][fLock])
    {
    fLockCar(FractionCars[fc][fCarid]);
    FractionCars[fc][fLock]=true;
    GameTextForPlayer(playerid,"~w~Fahrzeug~n~~r~Abgeschlossen",5000,3);
    return true;
    }
    }
    }
    }
    }
    fc++;
    }
    }
    else
    {
    if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER)
    return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du musst der Fahrer dieses Fahrzeuges sein.");
    return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du muss in einem Fahrzeug sitzen.");
    }
    return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du sitzt in keinem Fraktionsfahrzeug!");
    }

  • Versuche es mal so:


    //Edit: Jeffry war schneller :)
    [spoiler='Alternative zu Jeffrys Code']


    Mit freundlichen Grüßen
    German_ScripterHD

  • Wieso ist return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du musst in einem Fahrzeug sitzen."); noch drinne? Bekomme jetzt:


    C:\Users\User\Desktop\SAMP (E)\gamemodes\Script.pwn(39268) : warning 219: local variable "tmp" shadows a variable at a preceding level

  • Wieso ist [...] noch drinne?

    Stimmt, die obere Abfrage hatte ich übersehen.
    Versuche es so:
    if(strcmp(cmdtext,"/flock",true)==0)
    {
    if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER) return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du musst der Fahrer dieses Fahrzeuges sein.");
    new Carid = INVALID_VEHICLE_ID;
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
    new Float:Pos[3], Float:dist = 20.0, Float:tmp;
    for(new i=0;i<MAX_FRACTION_CARS; i++)
    {
    GetVehiclePos(FractionCars[i][fCarid], Pos[0], Pos[1], Pos[2]);
    tmp = GetPlayerDistanceFromPoint(playerid, Pos[0], Pos[1], Pos[2]);
    if(tmp < dist)
    {
    Carid = i;
    dist = tmp;
    }
    }
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    Carid = GetPlayerVehicleID(playerid);
    }
    if(Carid == INVALID_VEHICLE_ID)return SendClientMessage(playerid,-1,"Es befindet sich keines Fraktionsfahrzeug in der Nähe.");
    new fc;while(fc<MAX_FRACTION_CARS)
    {
    if(FractionCars[fc][fVehid] >= 400 && FractionCars[fc][fVehid] <= 611)
    {
    if(FractionCars[fc][fCarid] == Carid)
    {
    for(new f;f<5;f++)
    {
    if(SpielerInfo[playerid][sMember] == FractionCars[fc][fFraction])
    {
    if(FractionCars[fc][fLock])
    {
    FractionCars[fc][fLock]=false;
    fUnlockCar(FractionCars[fc][fCarid]);
    GameTextForPlayer(playerid,"~w~Fahrzeug~n~~g~Aufgeschlossen",5000,3);
    return true;
    }
    if(!FractionCars[fc][fLock])
    {
    fLockCar(FractionCars[fc][fCarid]);
    FractionCars[fc][fLock]=true;
    GameTextForPlayer(playerid,"~w~Fahrzeug~n~~r~Abgeschlossen",5000,3);
    return true;
    }
    }
    }
    }
    }
    fc++;
    }
    return SendClientMessage(playerid,COLOR_RED,"[FRAKTIONSCAR]: Du sitzt in keinem Fraktionsfahrzeug!");
    }

  • Kein Problem Jeffry alles gut ^^ Machst hier schon genug kann schonmal passieren :P


    Jetzt habe ich aber immer noch denselben Fehler wie eben:
    warning 219: local variable "tmp" shadows a variable at a preceding level


    Iwie ist der Server jetzt abgestürzt seitdem ich das geändert habe. Kriege direkt am Anfang Server closed the connection.

    Einmal editiert, zuletzt von xTrippelX ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen