Geld abziehen beim Auto-Einstieg

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
  • Halllo Leute ich hab schon wieder ein Problem ^^


    Ich will das wenn man /duty eingibt und eine fremde Person steigt in deinen Bus ein, das er dann 12$ abgezogen bekommt und ich bekomme 12$.


    So habe ich das bis jetzt (ich habe keine tutorials oder so ich mache es einfach so wie ich denke aber es stimmt meistens nicht, also nicht lachen):


    new duty[MAX_PLAYERS];


    if (strcmp("/duty", cmdtext, true, 10) == 0)
    {
    if(GetPlayerSkin(playerid) == 122) // Das ist der Busfahrer Skin
    {
    SendClientMessageToAll(0x33AA33AA,"Es ist nun ein Busfahrer im Dienst.");
    duty[playerid] += 1;
    }
    else
    {
    SendClientMessage(playerid, 0x33CCFFAA,"Du bist kein Busfahrer!");
    }
    return 1;
    }


    Und hier nun der Problem Code:


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(duty[playerid] == 1){
    SendClientMessage(playerid, 0xAA3333AA, "Du hast dem Busfahrer Geld bezahlt!");
    GivePlayerMoney(playerid, -12);
    }


    return 1;
    }


    XD, naja ich zieh mir mit diesem code selbst das Geld ab wenn ich aus meinem Bus aussteige...

  • Naja:
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(duty[playerid] == 1){//in dieser zeile...
    SendClientMessage(playerid, 0xAA3333AA, "Du hast dem Busfahrer Geld bezahlt!");
    GivePlayerMoney(playerid, -12);
    }


    return 1;
    }
    ...fragst du ja ab, ob derjenige im Dienst ist, und ziehst ihm dann geld ab..
    Mach einfach so:
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(duty[playerid] == 1){
    SendClientMessage(playerid, 0xAA3333AA, "Willkommen im Bus Herr Busfahrer (oder sou :P)");
    }
    else{
    SendClientMessage(playerid,0xAA3333AA,"Du hast dem Fahrer Geld bezahlt");
    GivePlayerMoney(playerid, -12);
    GivePlayerMoney(busfahrer,12);
    }
    return 1;
    }
    wobei du in der Zeile von
    GivePlayerMoney(busfahrer,12);
    Beachten musst, dass du die ID ausgelesen hast.
    okay??
    MfG
    Maxx


  • public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    if(duty[playerid] == 1){
    SendClientMessage(playerid, 0xAA3333AA, "Willkommen im Bus Herr Busfahrer (oder sou :P)");
    }
    else{
    SendClientMessage(playerid,0xAA3333AA,"Du hast dem Fahrer Geld bezahlt");
    GivePlayerMoney(playerid, -12);
    GivePlayerMoney(busfahrer,12);
    }
    return 1;
    }


    Das solltest du über Bord werfen UND anstelle davon das hier machen:

    public OnPlayerStateChange(playerid,newstate,oldstate)
    {
    new model = GetVehicleModel(GetPlayerVehicleID(playerid));
    if(newstate == PLAYER_STATE_PASSENGER && model == 431 || model == 437)
    {
    if(duty[playerid] != 1)
    {
    SendClientMessage(playerid,0xAA3333AA,"Du hast dem Fahrer Geld bezahlt");
    GivePlayerMoney(playerid, -12);
    GivePlayerMoney(busfahrer[GetPlayerVehicleID(playerid)],12);
    }
    } else
    if(newstate == PLAYER_STATE_DRIVER && model == 431 || model == 437)
    {
    if(duty[playerid] == 1)
    {
    SendClientMessage(playerid, 0xAA3333AA, "Willkommen im Bus Herr Busfahrer (oder sou :P)");
    }
    }
    return 1;
    }

    Oben im SCript:

    new busfahrer[MAX_VEHICLES];


    /duty:
    [pwn]
    if (strcmp("/duty", cmdtext, true, 10) == 0)
    {
    if(GetPlayerSkin(playerid) == 122) // Das ist der Busfahrer Skin
    {
    new model = GetVehicleModel(GetPlayerVehicleID(playerid);
    if(model != 431 && model != 437 || !IsPlayerInAnyVehicle(playerid))
    {
    return SendClientMessage(playerid,RED, "*** Du musst in einem Bus sein!");
    }
    SendClientMessageToAll(0x33AA33AA,"Es ist nun ein Busfahrer im Dienst.");
    duty[playerid] += 1;
    busfahrer[GetPlayerVehicleID(playerid)] = playerid);
    }
    else
    {
    SendClientMessage(playerid, 0x33CCFFAA,"Du bist kein Busfahrer!");
    }
    return 1;
    }

    //Die variable "busfahrer" löschen + habe in /duty gemacht dass man in einem Bus SEIN MUSS und dann wird dem Bus die Fahrerplayerid zugewiesen und beim einsteigen wird der Fahrerplayerid Geld gegeben.