Beiträge von Jeffry

    Dann kannst du das aber nicht über playerid steuern.
    ocmd:buyzollticket(playerid,params[])
    {
    new string[145];
    /*
    ZLV1L/auf CreateObject(968, 1648.6, -42.1, 36.4, 0, 0, 31.5);
    ZLV1L/zu CreateObject(968, 1648.5996, -42.09961, 36.4, 0, 268.25, 22.998);
    */
    if(IsPlayerInRangeOfPoint(playerid,5.0, 1648.6, -42.1, 36.4)) //Links in Fahrtrichtung nach LV
    {
    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LS_LV,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    else if(IsPlayerInRangeOfPoint(playerid,5.0, 1656.6, -35.6, 36.5)) //Rechts in Fahrtrichtung nach LS
    {
    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LV_LS,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist bei keiner Zollstation.");
    }



    Beim Dialog:
    LS_LV:
    GivePlayerMoney(playerid,-zInfo[0][z_preis]);


    LV_LS:
    GivePlayerMoney(playerid,-zInfo[1][z_preis]);



    Beim Befehl mit dem du den Preis änderst:
    if(IsPlayerInRangeOfPoint(playerid,5.0, 1648.6, -42.1, 36.4)) //Links in Fahrtrichtung nach LV
    {
    zInfo[0][z_preis] = WERT_DER_EINGEGEBEN_WIRD;
    }
    else if(IsPlayerInRangeOfPoint(playerid,5.0, 1656.6, -35.6, 36.5)) //Rechts in Fahrtrichtung nach LS
    {
    zInfo[1][z_preis] = WERT_DER_EINGEGEBEN_WIRD;
    }

    Da du ja gemeint hast, dass es fest gesetzt werden soll, würde es so aussehen:
    ocmd:buyzollticket(playerid,params[])
    {
    new string[145];
    /*
    ZLV1L/auf CreateObject(968, 1648.6, -42.1, 36.4, 0, 0, 31.5);
    ZLV1L/zu CreateObject(968, 1648.5996, -42.09961, 36.4, 0, 268.25, 22.998);
    */
    if(IsPlayerInRangeOfPoint(playerid,5.0, 1648.6, -42.1, 36.4)) //Links in Fahrtrichtung nach LV
    {
    zInfo[playerid][z_preis] = 250;
    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LS_LV,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    else if(IsPlayerInRangeOfPoint(playerid,5.0, 1656.6, -35.6, 36.5)) //Rechts in Fahrtrichtung nach LS
    {
    zInfo[playerid][z_preis] = 500;
    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LV_LS,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist bei keiner Zollstation.");
    }

    Schildpos[i][SchildObject2] = Create3DTextLabel("70\nKm/h", 0xFF002DFF, x, y, z-0.4,250.0,0,0);


    Außerdem muss SchildObject2 im enum so aussehen:
    Text3D:SchildObject2,

    GivePlayerMoney in den Parametern von format wird dir nicht den richtigen Wert zurückgeben, sprich das Geld wird falsch in der Datenbank stehen.
    Außerdem macht man allgemein keine sonstigen Wertzuweisungen in Parametern.


    Außerdem muss Level als Integer (%d) übergeben werden, und nicht als String.


    So wäre es richtig:
    SpielerInfo[playerid][pLevel] = 1;
    SpielerInfo[playerid][pMaxRP] = 12;
    GivePlayerMoney(playerid,15000);
    SpielerInfo[playerid][pBank] = 10000;
    format(querys, sizeof(querys), "UPDATE `accounts` SET `Level` = '%d', `MaxRP` = '%d', `VerheiratetMit` = '%s', `Geld` = '%d', `Bank` = '%d' WHERE Name = '%s'",
    SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pMaxRP],"Suchend",15000,SpielerInfo[playerid][pBank],SpielerName(playerid));

    GetPlayerName(i, pip, sizeof(pip));
    zu:
    GetPlayerIp(i, pip, sizeof(pip));


    Den Name kannst du dann rausfinden, wenn du die IP geprüft hast, bevor du die Nachricht ausgibst.



    if(success) //If the password was correct
    {
    for(new i=0; i<MAX_PLAYERS; i++) //Loop through all players
    {
    new pip[16];
    GetPlayerIp(i, pip, sizeof(pip));
    if(IsPlayerConnected(i) && !strcmp(ip, pip, true)) //If a player's IP is the IP that failed the login
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(i, name, MAX_PLAYER_NAME);
    printf("%s (%s) hat sich erfolgreich ins Rcon eingeloggt",name,ip);
    format(stringrcon, sizeof(stringrcon), "%s hat sich ins RCON eingeloggt",name);
    ABroadCast(COLOR_RED,stringrcon,1);
    }
    }
    }

    Du musst es über die IP machen, nicht über den Name. Wie es im Beispiel ist.
    Der Name wird nicht in dem Callback mitgegeben, die IP schon. Das liegt daran, dass man sich auch über eine externe Konsole einloggen kann, und da hat man ja keinen Name.


    Einen RCON LOGIN Befehl gibt es schon:
    /rcon Login


    Der ist standardmäßig in jedem Server.

    Kein Problem, deswegen sind wir ja hier. :)
    Jetzt müsste ich nur wissen, wie du die Dialoge an den unterschiedlichen Positionen anzeigst.


    Nämlich je nach dem wie du das machst, musst du auch das Geld anziehen.


    Ich nehme mal an, du zeigst unterschiedliche Dialoge an:
    if(dialogid == DIALOG_ZOLL_LV)
    {
    //...
    GivePlayerMoney(playerid, -300);
    }
    if(dialogid == DIALOG_ZOLL_LS)
    {
    //...
    GivePlayerMoney(playerid, -500);
    }


    Ist dir das soweit genug?
    Wenn nicht, kein Problem, dann poste nochmal den Code den du bis dahin hast, mit den zwei Schranken.

    Das musst du dann mit else if machen.


    ocmd:buyzollticket(playerid,params[])
    {
    new string[128];

    if(IsPlayerInRangeOfPoint(playerid,5,1648.6, -42.1, 36.4)) //Links in Fahrtrichtung nach LV
    {

    format(string,sizeof(string),"Möchtest du ein Zollticket im Preis von %i Euro kaufen?",zInfo[playerid][z_preis]);
    ShowPlayerDialog(playerid,DIALOG_ZOLL_LV,DIALOG_STYLE_MSGBOX,"Zoll - Ticket",string,"Ja","Nein, Abbruch");
    }
    else if(IsPlayerInRangeOfPoint(playerid,5, /*andere Position*/))
    {


    }
    return 1;
    }

    Dass du die Schranke nur an der speziellen Position öffnen kannst, oder was genau meinst du?


    Ein schon vorhandener Code und eine genauere Erklärung wären gut, damit ich dir da helfen kann. :)