Opark System mit Gangautos abzuschleppen...

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 Breadfish-Community,


    ich bin derzeitig an einem Opark System am Scripten aber ich komme nicht weit...


    Das ist derzeitig nur für Privatfahrzeuge...

    if (strcmp("/opark", cmd, true, 10) == 0) { if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 525 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24) { if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid))) { SendClientMessage(playerid, COLOR_GREY, " An deinem Abschleppwagen ist kein Auto angehängt!"); return 1; } new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));// new trailercar = GetPlayerVehicleID(playerid); if(!IsADtCar(trailercar)) { SendClientMessage(playerid, COLOR_GREY, "Du kannst keine Fraktions Cars etc abschleppen!"); return 1; } //new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid)); new Float:X,Float:Y,Float:Z; new Float:z_rot; GetVehiclePos(trailercar, X,Y,Z); GetVehicleZAngle(trailercar, z_rot); new carowner = GetDtCarOwner(trailercar); new slot = GetDtCarOwnerSlot(carowner,trailercar); PlayerCar[carowner][slot][CarPos_x] = X; PlayerCar[carowner][slot][CarPos_y] = Y; PlayerCar[carowner][slot][CarPos_z] = Z; PlayerCar[carowner][slot][CarArrest] = 1; PlayerCar[carowner][slot][CarRotate] = z_rot; new fkasse = 2000 + random(2999); FraktionsKasse[23] += fkasse; if(carowner != 555) { OnPlayerCarUpdate(carowner); SendClientMessage(carowner, COLOR_WHITE, " Ihr Fahrzeug wurde abgeschleppt, Fahren zu zur Ordnungsamt Base, um ihr auto wieder Freizukaufen."); PlayerInfo[carowner][pRest] = 1; SetTimerEx("PlayerCarSpawn",1000,0,"i",carowner); } DetachTrailerFromVehicle(GetPlayerVehicleID(playerid)); SendClientMessage(playerid, COLOR_YELLOW, " Du hast das Fahrzeug erfolgreich abgeschleppt!"); } else { SendClientMessage(playerid, COLOR_GREY, " Du bist kein Mitglied des Ordnungsamtes!"); } } else { SendClientMessage(playerid, COLOR_GREY, " Du musst einen Abschleppwagen fahren!"); } return 1; }


    Hier nocheinmal falls es wegen Pawncode nicht sieht:
    "


    if (strcmp("/opark", cmd, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 525 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24)
    {
    if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid, COLOR_GREY, " An deinem Abschleppwagen ist kein Auto angehängt!");
    return 1;
    }
    new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));
    // new trailercar = GetPlayerVehicleID(playerid);
    if(!IsADtCar(trailercar))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst keine Fraktions Cars etc abschleppen!");
    return 1;
    }
    //new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));
    new Float:X,Float:Y,Float:Z;
    new Float:z_rot;
    GetVehiclePos(trailercar, X,Y,Z);
    GetVehicleZAngle(trailercar, z_rot);
    new carowner = GetDtCarOwner(trailercar);
    new slot = GetDtCarOwnerSlot(carowner,trailercar);
    PlayerCar[carowner][slot][CarPos_x] = X;
    PlayerCar[carowner][slot][CarPos_y] = Y;
    PlayerCar[carowner][slot][CarPos_z] = Z;
    PlayerCar[carowner][slot][CarArrest] = 1;
    PlayerCar[carowner][slot][CarRotate] = z_rot;
    new fkasse = 2000 + random(2999);
    FraktionsKasse[23] += fkasse;
    if(carowner != 555)
    {
    OnPlayerCarUpdate(carowner);
    SendClientMessage(carowner, COLOR_WHITE, " Ihr Fahrzeug wurde abgeschleppt, Fahren zu zur Ordnungsamt Base, um ihr auto wieder Freizukaufen.");
    PlayerInfo[carowner][pRest] = 1;
    SetTimerEx("PlayerCarSpawn",1000,0,"i",carowner);
    }
    DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_YELLOW, " Du hast das Fahrzeug erfolgreich abgeschleppt!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Mitglied des Ordnungsamtes!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du musst einen Abschleppwagen fahren!");
    }
    return 1;
    }
    "
    Ich würde gerne da rein noch die Fraktionsautos abschleppen lassen...
    Die Fraktionsautos sind mit /efa gespeichert bzw gesetzt...


    Kann mir da jemand weiterhelfen?


    Lg
    joa009

  • Kannst du uns mal deinen "/efa"-Befehl schicken, damit wir das mit den Fraktionsvariablen mal sehen?

  • Hallo,


    ja klar das Efa System



    dcmd_efa(playerid,params[]){ if(GetPlayerAdminLevel(playerid) >= NEEDED_ADMINLEVEL) { new vehid,col1,col2,faction[5]; if(!sscanf(params,"dddd",vehid,col1,col2,faction[0])) { sscanf(params,"dddddddd",vehid,col1,col2,faction[0],faction[1],faction[2],faction[3],faction[4]); if(vehid < 400 || vehid > 611) return SendClientMessage(playerid,FACTION_COL_GREY,"Vehicle-ID nur von 400 bis 611."); if(col1 < 0 || col1 > 255) return SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Farbe(1)!"); if(col2 < 0 || col2 > 255) return SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Farbe(2)!"); if(faction[0] && faction[0] <= MAX_FACTIONS) { for(new f;f<5;f++) { if(faction[f] <= 0 || faction[f] > MAX_FACTIONS) { faction[f] = -255; } } for(new fc;fc<sizeof(FactionCars);fc++) { if(FactionCars[fc][fVehid] < 400 || FactionCars[fc][fVehid] > 611) { FactionCars[fc][fVehid] = vehid; new Float:fX,Float:fY,Float:fZ,Float:fA; GetPlayerPos(playerid,fX,fY,fZ),GetPlayerFacingAngle(playerid,fA); FactionCars[fc][fPos][0] = fX; FactionCars[fc][fPos][1] = fY; FactionCars[fc][fPos][2] = fZ; FactionCars[fc][fPos][3] = fA; FactionCars[fc][fCol][0] = col1; FactionCars[fc][fCol][1] = col2; for(new f;f<5;f++) { FactionCars[fc][fFaction][f] = faction[f]; } FactionCars[fc][fPrice] = 0; for(new mood;mood<14;mood++) FactionCars[fc][fTuning][mood] = 0; FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos] [2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255); #if defined FACTION_CARS_LOCKABLE FactionCars[fc][fLock] = true; #endif SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug erfolgreich erstellt."); SendClientMessage(playerid,FACTION_COL_YELLOW,"Vergesse es nicht mit '/fpark' umzuparken."); PutPlayerInVehicle(playerid,FactionCars[fc][fCarid],0); return true; } }SendClientMessage(playerid,FACTION_COL_GREY,"Die Maximale Anzahl von Fraktionsfahrzeugen wurde bereits erreicht."); }else SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Fraktion!"); }else SendClientMessage(playerid,FACTION_COL_GREY,"Benutze: '/efa [Model] [Farbe(1)] [Farbe(2)] [Hauptfraktion]'."); }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden."); return true;}

    Sry ich komm mit dem Pawncommand hier nicht klar:


    hier noch einmal das Efa System:
    "


    dcmd_efa(playerid,params[])
    {
    if(GetPlayerAdminLevel(playerid) >= NEEDED_ADMINLEVEL){
    new vehid,col1,col2,faction[5];
    if(!sscanf(params,"dddd",vehid,col1,col2,faction[0])){
    sscanf(params,"dddddddd",vehid,col1,col2,faction[0],faction[1],faction[2],faction[3],faction[4]);
    if(vehid < 400 || vehid > 611) return SendClientMessage(playerid,FACTION_COL_GREY,"Vehicle-ID nur von 400 bis 611.");
    if(col1 < 0 || col1 > 255) return SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Farbe(1)!");
    if(col2 < 0 || col2 > 255) return SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Farbe(2)!");
    if(faction[0] && faction[0] <= MAX_FACTIONS){
    for(new f;f<5;f++){
    if(faction[f] <= 0 || faction[f] > MAX_FACTIONS){
    faction[f] = -255;
    }
    }
    for(new fc;fc<sizeof(FactionCars);fc++)
    {
    if(FactionCars[fc][fVehid] < 400 || FactionCars[fc][fVehid] > 611){
    FactionCars[fc][fVehid] = vehid;
    new Float:fX,Float:fY,Float:fZ,Float:fA;
    GetPlayerPos(playerid,fX,fY,fZ),GetPlayerFacingAngle(playerid,fA);
    FactionCars[fc][fPos][0] = fX;
    FactionCars[fc][fPos][1] = fY;
    FactionCars[fc][fPos][2] = fZ;
    FactionCars[fc][fPos][3] = fA;
    FactionCars[fc][fCol][0] = col1;
    FactionCars[fc][fCol][1] = col2;
    for(new f;f<5;f++){
    FactionCars[fc][fFaction][f] = faction[f];
    }
    FactionCars[fc][fPrice] = 0;
    for(new mood;mood<14;mood++)
    FactionCars[fc][fTuning][mood] = 0;
    FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
    #if defined FACTION_CARS_LOCKABLE
    FactionCars[fc][fLock] = true;
    #endif
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast das Fraktionsfahrzeug erfolgreich erstellt.");
    SendClientMessage(playerid,FACTION_COL_YELLOW,"Vergesse es nicht mit '/fpark' umzuparken.");
    PutPlayerInVehicle(playerid,FactionCars[fc][fCarid],0);
    return true;
    }
    }SendClientMessage(playerid,FACTION_COL_GREY,"Die Maximale Anzahl von Fraktionsfahrzeugen wurde bereits erreicht.");
    }else SendClientMessage(playerid,FACTION_COL_GREY,"Falsche Fraktion!");
    }else SendClientMessage(playerid,FACTION_COL_GREY,"Benutze: '/efa [Model] [Farbe(1)] [Farbe(2)] [Hauptfraktion]'.");
    }else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
    return true;
    }
    "


    Lg
    joa009

  • Ok, nach diesem Prinzip musst du es machen:
    if (strcmp("/opark", cmd, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 525 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24)
    {
    if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid, COLOR_GREY, " An deinem Abschleppwagen ist kein Auto angehängt!");
    return 1;
    }
    new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));
    // new trailercar = GetPlayerVehicleID(playerid);
    if(IsADtCar(trailercar))
    {
    //new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));
    new Float:X,Float:Y,Float:Z;
    new Float:z_rot;
    GetVehiclePos(trailercar, X,Y,Z);
    GetVehicleZAngle(trailercar, z_rot);
    new carowner = GetDtCarOwner(trailercar);
    new slot = GetDtCarOwnerSlot(carowner,trailercar);
    PlayerCar[carowner][slot][CarPos_x] = X;
    PlayerCar[carowner][slot][CarPos_y] = Y;
    PlayerCar[carowner][slot][CarPos_z] = Z;
    PlayerCar[carowner][slot][CarArrest] = 1;
    PlayerCar[carowner][slot][CarRotate] = z_rot;
    new fkasse = 2000 + random(2999);
    FraktionsKasse[23] += fkasse;
    if(carowner != 555)
    {
    OnPlayerCarUpdate(carowner);
    SendClientMessage(carowner, COLOR_WHITE, " Ihr Fahrzeug wurde abgeschleppt, Fahren zu zur Ordnungsamt Base, um ihr auto wieder Freizukaufen.");
    PlayerInfo[carowner][pRest] = 1;
    SetTimerEx("PlayerCarSpawn",1000,0,"i",carowner);
    }
    DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_YELLOW, " Du hast das Fahrzeug erfolgreich abgeschleppt!");
    return 1;
    }
    if(IsAFCar(trailercar))
    {
    //new trailercar = GetVehicleTrailer(GetPlayerVehicleID(playerid));
    new Float:X,Float:Y,Float:Z;
    new Float:z_rot;
    GetVehiclePos(trailercar, X,Y,Z);
    GetVehicleZAngle(trailercar, z_rot);
    new carowner = GetFCarOwner(trailercar);
    new slot = GetFCarOwnerSlot(carowner,trailercar);
    FactionCars[carowner][fPos][0] = X;
    FactionCars[carowner][fPos][1] = Y;
    FactionCars[carowner][fPos][2] = Z;
    FactionCars[carowner][CarArrest] = 1;
    FactionCars[carowner][fPos][3] = z_rot;
    new fkasse = 2000 + random(2999);
    FraktionsKasse[23] += fkasse;
    if(carowner != 555)
    {
    //OnFactionCarUpdate(carowner); -> Selbst machen
    SendClientMessage(carowner, COLOR_WHITE, " Ihr Fahrzeug wurde abgeschleppt, Fahren zu zur Ordnungsamt Base, um ihr auto wieder Freizukaufen.");
    //PlayerInfo[carowner][pRest] = 1;
    //SetTimerEx("PlayerCarSpawn",1000,0,"i",carowner);
    //Was mit diesen zwei Zeilen (oben) ist weiß ich nicht, kommt auf dein System an. Das musst du eventuell anpassen.
    }
    DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_YELLOW, " Du hast das Fahrzeug erfolgreich abgeschleppt!");
    return 1;
    }
    SendClientMessage(playerid, COLOR_GREY, "Du kannst dieses Fahrzeug nicht abschleppen!");
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Mitglied des Ordnungsamtes!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du musst einen Abschleppwagen fahren!");
    }
    return 1;
    }


    Function IsAFCar(car) //!CallRemoteFunction("IsAFCar","i",c)
    {
    for(new fc;fc<sizeof(FactionCars);fc++)
    {
    if (car == FactionCars[fc][fCarid])
    {
    return 1;
    }
    }
    return 0;
    }


    forward GetFCarOwnerSlot(playerid,veh);
    public GetFCarOwnerSlot(playerid,veh)
    {
    for(new fc;fc<sizeof(FactionCars);fc++)
    {
    if(FactionCars[fc][fCarid] == veh)
    {
    return fc;
    }
    }
    return 555;
    }


    Die Funktion GetDtCarOwner hat gefehlt, die musst du noch selbst zusammenbasteln, damit es für die FactionCars geht. Das OnFactionCarUpdate musst, falls du das dafür auch brauchst, auch noch erstellen (einfach das von den PlayerCars kopieren und die Werte ersetzen).


    Möglicherweise kannst du es nicht ohne Fehler kompilieren, das liegt dann daran, dass die Variablen für die FactionCars bei dir noch nicht deklariert sind. Da ich die aber nicht kenne, kann ich dir das auch nicht machen. Das solltest du aber hinbekommen.
    Bei Fragen kannst du dich gerne melden.