Fahrzeug aufschließen von Innen & Außen

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
  • Nabend,
    ich möchte die Gruppenfahrzeuge von Innen sowie Außen aufschließen, was komischerweise nicht funktioniert.
    ocmd:glock(playerid,params[]){
    if(Spieler[playerid][GruppenID] == -1)return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Du bist in keiner Gruppe!");
    new Float:xy,Float:yy,Float:zy;
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    for(new x=0;x<sizeof cInfo;x++)
    {
    GetVehiclePos(i,xy,yy,zy);
    if(GetPlayerState(playerid)==PLAYER_STATE_ONFOOT)
    {
    if(i == cInfo[x][id_x] && Spieler[playerid][GruppenID] == cInfo[x][gowner])
    {
    if(IsPlayerInRangeOfPoint(playerid,3,xy,yy,zy))
    {
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    if(!doors)
    {
    SetVehicleParamsEx(i,engine,lights,alarm,1,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~r~abgeschlossen",2000,4);
    }
    SetVehicleParamsEx(i,engine,lights,alarm,0,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~g~aufgeschlossen",2000,4);
    }
    return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Du bist in keiner Nähe vom Gruppenfahrzeug, oder sitzt in keinem!");
    }
    return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Das Fahrzeug gehört nicht deiner Gruppe!");
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(GetPlayerVehicleID(playerid) == cInfo[x][id_x] && Spieler[playerid][GruppenID] == cInfo[x][id_x])
    {
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    if(!doors)
    {
    SetVehicleParamsEx(i,engine,lights,alarm,1,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~r~abgeschlossen",2000,4);
    }
    SetVehicleParamsEx(i,engine,lights,alarm,0,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~g~aufgeschlossen",2000,4);
    }
    return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Das Fahrzeug gehört nicht deiner Gruppe!");
    }
    }
    }
    return 1;
    }


    Vielleicht könnt ihr mir helfen, woran es liegt.


    Mit freundlichen Grüßen,
    [NGD]Manne

  • Ich setze mich ins Fahrzeug, und gebe /glock ein.
    Dann öffnet es sich, und wenn ich es noch einmal eingebe, passiert nichts mehr.


    Außerhalb des Fahrzeuges wird mir angezeigt, dass das Fahrzeug nicht zu meiner Gruppe gehört, obwohl das mein Gruppenfahrzeug ist.
    Fazit: Außerhalb kann ich es weder noch aufschließen oder abschließen.
    Im Fahrzeug kann ich es nur einmal benutzen.

  • ocmd:glock(playerid,params[])
    {
    if(Spieler[playerid][GruppenID] == -1)return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Du bist in keiner Gruppe!");
    new Float:xy,Float:yy,Float:zy;
    if(GetPlayerState(playerid)==PLAYER_STATE_ONFOOT)
    {
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    for(new x=0;x<sizeof cInfo;x++)
    {
    GetVehiclePos(i,xy,yy,zy);
    if(IsPlayerInRangeOfPoint(playerid,3,xy,yy,zy))
    {
    if(i == cInfo[x][id_x] && Spieler[playerid][GruppenID] == cInfo[x][gowner])
    {
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    if(!doors)
    {
    SetVehicleParamsEx(i,engine,lights,alarm,1,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~r~abgeschlossen",2000,4);
    }
    SetVehicleParamsEx(i,engine,lights,alarm,0,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~g~aufgeschlossen",2000,4);
    }
    return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Das Fahrzeug gehört nicht deiner Gruppe!");
    }
    }
    }
    return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Du bist in keiner Nähe vom Gruppenfahrzeug, oder sitzt in keinem!");
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(GetPlayerVehicleID(playerid) == cInfo[x][id_x] && Spieler[playerid][GruppenID] == cInfo[x][id_x])
    {
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    if(!doors)
    {
    SetVehicleParamsEx(i,engine,lights,alarm,1,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~r~abgeschlossen",2000,4);
    }
    SetVehicleParamsEx(i,engine,lights,alarm,0,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~g~aufgeschlossen",2000,4);
    }
    return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Das Fahrzeug gehört nicht deiner Gruppe!");
    }
    return 1;
    }


    Sollte so passen.

  • Leider habe ich noch einen Bug.
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    for(new x=0;x<sizeof cInfo;x++)
    {
    printf("Veh-ID: %d - cInfo: %d",GetPlayerVehicleID(playerid),cInfo[x][id_x]);
    if(GetPlayerVehicleID(playerid) == cInfo[x][id_x] && Spieler[playerid][GruppenID] == cInfo[x][id_x])
    {
    GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
    if(!doors)
    {
    SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,1,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~r~abgeschlossen",2000,4);
    }
    SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,0,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~g~aufgeschlossen",2000,4);
    }
    return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Das Fahrzeug gehört nicht deiner Gruppe!");
    }
    }
    GetPlayerVehicleID(playerid) ist nicht das gleiche wie cInfo[x][id_x]
    geprintet wird folgendes:
    Veh-ID: 11 - cInfo: 10
    Das heißt, Veh-ID ist immer ein höher, und kann daher das Auto nicht aufschließen, also von außen.


    Jeffry:

  • Tut mir Leid ;)
    Ich hatte mich vorhin falsch ausgedrückt.
    Die Schleife mit der Variable x läuft immer nur bis 10, und hört dann auf. Da liegt der Fehler.
    ocmd:glock(playerid,params[])
    {
    if(Spieler[playerid][GruppenID] == -1)return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Du bist in keiner Gruppe!");
    new Float:xy,Float:yy,Float:zy;
    if(GetPlayerState(playerid)==PLAYER_STATE_ONFOOT)
    {
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    for(new x=0;x<sizeof cInfo;x++)
    {
    GetVehiclePos(i,xy,yy,zy);
    if(IsPlayerInRangeOfPoint(playerid,3,xy,yy,zy))
    {
    printf("i = %d - cInfo = %d",i,cInfo[x][id_x]);
    if(i == cInfo[x][id_x] && Spieler[playerid][GruppenID] == cInfo[x][gowner])
    {
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    if(!doors)
    {
    SetVehicleParamsEx(i,engine,lights,alarm,1,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~r~abgeschlossen",2000,4);
    }
    SetVehicleParamsEx(i,engine,lights,alarm,0,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~g~aufgeschlossen",2000,4);
    }
    return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Das Fahrzeug gehört nicht deiner Gruppe!");
    }
    }
    }
    return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Du bist in keiner Nähe vom Gruppenfahrzeug, oder sitzt in keinem!");
    }
    else if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    for(new x=0;x<sizeof cInfo;x++)
    {
    printf("Veh-ID: %d - cInfo: %d",GetPlayerVehicleID(playerid),cInfo[x][id_x]);
    if(GetPlayerVehicleID(playerid) == cInfo[x][id_x] && Spieler[playerid][GruppenID] == cInfo[x][id_x])
    {
    printf("Veh-ID: %d - cInfo: %d",GetPlayerVehicleID(playerid),cInfo[x][id_x]);
    GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
    if(!doors)
    {
    SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,1,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~r~abgeschlossen",2000,4);
    }
    SetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,0,bonnet,boot,objective);
    return GameTextForPlayer(playerid,"~w~Gruppenfahrzeug~n~~g~aufgeschlossen",2000,4);
    }
    return SendClientMessage(playerid,rot,"[SERVER]:{FFFFFF} Das Fahrzeug gehört nicht deiner Gruppe!");
    }
    }
    return 1;
    }
    Bloß warum läuft der Loop nur bis 10?