/verkaufedrogen im Dialog

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
  • Hey, kann man einen Befehl wie z.B. /verkaufedrogen im Dialog machen?


    Also, im Dialog sollte stehen:


    "%s bietet dir %i Drogen für %i$ an."


    Dann kann man Annehmen und Ablehnen klicken...


    Aber immer noch die Frage:


    Geht das eig?


    und wenn ja, kann mir jemand das n bisl erklären?


    Wäre nett...
    Danke im Voraus!

  • hmm, also ich mache z.B.




    format(string,sizeof(string),"Drogen: %s bietet dir %i Gramm Drogen für %i$ an.",SpielerName(playerid),SpielerName(pID),drogen,betrag);
    ShowPlayerDialog(pID,DIALOG_Drogen,DIALOG_STYLE_MSGBOX,"Drogen",string,"Annehmen","Ablehnen");


    Aber wie ich das dann in OnDialogResponse hinkriege kapier ich immer noch nicht...

  • Hallo,


    bei OnDialogResponse ist es so, dass als return 1 zurück kommt, wenn er auf den linken Button geklickt hat und return 0, wenn er auf den rechten Button geklickt hat (jedenfalls bei dem MsgBox Dialog Type). Schau dir dazu das Callback mal in der SAMP Wiki an:

  • Ich weiss nicht, was du da meinst...


    Also:
    Brauche Hilfe beim Handysystem: ist eig genau die gleiche
    z.B. mache ich /call 937481 ...
    Dann muss der Spieler, den ich anrufe abnehmen können. Wie geht das? Brauche das auch für mein ticketsystem (Cop)
    Danke!

  • #define DIALOG_DROGENVERKAUF 523//Anpasse
    new DDealer[MAX_PLAYERS];
    new DAnzahl[MAX_PLAYERS];
    new DPreis[MAX_PLAYERS];


    dcmd_verkaufedrogen(playerid,params[])
    {
    new DrogenAnzahl, DrogenPreis, plid;
    new string[124];
    if(SpielerInfo[playerid][pJob] == 2)//Anpasse
    {
    if(SpielerInfo[playerid][pDrogen] >= DrogenAnzahl)//Anpasse
    {
    if(sscanf(params,"uii",plid,DrogenAnzahl,DrogenPreis))return SendClientMessage(playerid, BLAU,"Tippe: /verkaufedrogen [Id/Name][Drogen]");
    format(string,sizeof(string),"%s bietet dir %i für %i€ Drogen an.",SpielerName(playerid),DrogenAnzahl,DrogenPreis);
    ShowPlayerDialog(plid,DIALOG_DROGENVERKAUF,DIALOG_STYLE_MSGBOX,"Drogenverkauf",string,"Annehmen","Ablehnen");
    DDealer[plid] = playerid;
    DAnzahl[plid] = DrogenAnzahl;
    DPreis[plid] = DrogenPreis;
    }
    else
    {
    SendClientMessage(playerid,WEISS,"Sie sind besitzen zuwenig Drogen!");
    }
    }
    else
    {
    SendClientMessage(playerid,WEISS,"Sie sind kein DrogenDealer");
    }
    return 1;
    }


    if(dialogid == DIALOG_DROGENVERKAUF)
    {
    if(response)
    {
    GivePlayerMoney(DDealer[playerid],DPreis[playerid]);
    GivePlayerMoney(playerid,-DPreis[playerid]);
    SpielerInfo[playerid][pDrogen] += DAnzahl[playerid];
    format(string,sizeof(string),"Drogendealer %s verkauft dem Spieler %s %iGramm Drogen für %i€",SpielerName(DDealer[playerid]),SpielerName(playerid),DAnzahl[playerid],DPreis[playerid]);//Anpasse
    DrogenLog(string);
    DDealer[playerid] = 0;
    DAnzahl[playerid] = 0;
    DPreis[playerid] = 0;
    }
    else
    {
    DDealer[playerid] = 0;
    DAnzahl[playerid] = 0;
    DPreis[playerid] = 0;
    }
    }

  • Heey, habe hier bei meinem ticket kack n Fehler.


    Wenn ich nen Ticket gebe, und ihn annehmen will, steht immer "Du musst kein Ticket bezahlen!"


    Was ist Falsch?


    new ticketannehmen[MAX_PLAYERS];
    new TPreis[MAX_PLAYERS];





    ocmd:ticket(playerid,params[],string[256],string2[256])
    {
    new pID,preis,grund;
    if(!isPlayerInFrak(playerid,2) && (!isPlayerInFrak(playerid,3) && (!isPlayerInFrak(playerid,4))))return SendClientMessage(playerid,Rot,"Du bist kein Cop!");
    if(sscanf(params,"uds",pID,preis,grund))return SendClientMessage(playerid,Blau,"Benutzung: /ticket [Spieler] [Preis] [Grund]");
    format(string,sizeof(string),"Ticket: Du gibst %s einen Ticket für %d . Grund: %s",SpielerName(pID),preis,grund);
    format(string2,sizeof(string2),"Ticket: %s gibt dir einen Ticket in Höhe von %d . Grund: %s",SpielerName(playerid),preis,grund);
    SendClientMessage(playerid,Orange,string);
    SendClientMessage(pID,Orange,string2);
    SendClientMessage(pID,Orange,"Tippe /ticketbezahlen, um das Ticket zu bezahlen.");
    ticketannehmen[pID] = playerid;
    TPreis[pID] = preis;
    return 1;
    }


    ocmd:ticketbezahlen(playerid)
    {
    new string3[256];
    new pID,preis;

    if(ticketannehmen[playerid] == 1)
    {
    GivePlayerMoney(pID,-preis);
    format(string3,sizeof(string3),"Ticket: %s bezahlt das Ticket für %d .",SpielerName(playerid),preis);
    SendClientMessage(playerid,Orange,string3);
    GivePlayerMoney(playerid,GetPlayerMoney(playerid) +TPreis[playerid]);
    GivePlayerMoney(pID,GetPlayerMoney(pID) -TPreis[playerid]);
    ticketannehmen[playerid]= 0;
    TPreis[playerid] = 0;
    }
    if(ticketannehmen[playerid] ==0)
    {
    SendClientMessage(playerid,Rot,"Du musst kein Ticket bezahlen!");
    }
    return 1;
    }

  • ocmd:ticket(playerid,params[],string[256],string2[256])
    {
    new pID,preis,grund;
    if(!isPlayerInFrak(playerid,2) && (!isPlayerInFrak(playerid,3) && (!isPlayerInFrak(playerid,4))))return SendClientMessage(playerid,Rot,"Du bist kein Cop!");
    if(sscanf(params,"uis",pID,preis,grund))return SendClientMessage(playerid,Blau,"Benutzung: /ticket [Spieler] [Preis] [Grund]");
    format(string,sizeof(string),"Ticket: Du gibst %s einen Ticket für %i . Grund: %s",SpielerName(pID),preis,grund);
    format(string2,sizeof(string2),"Ticket: %s gibt dir einen Ticket in Höhe von %i . Grund: %s",SpielerName(playerid),preis,grund);
    SendClientMessage(playerid,Orange,string);
    SendClientMessage(pID,Orange,string2);
    SendClientMessage(pID,Orange,"Tippe /ticketbezahlen, um das Ticket zu bezahlen.");
    ticketannehmen[pID] = 1;
    TPreis[pID] = preis;
    return 1;
    }


    ocmd:ticketbezahlen(playerid)
    {
    new string3[256];
    new pID,preis;

    if(ticketannehmen[playerid] == 1)
    {
    GivePlayerMoney(pID,-preis);
    format(string3,sizeof(string3),"Ticket: %s bezahlt das Ticket für %i .",SpielerName(playerid),TPreis[playerid]);
    SendClientMessage(playerid,Orange,string3);
    GivePlayerMoney(playerid,GetPlayerMoney(playerid) +TPreis[playerid]);
    GivePlayerMoney(pID,GetPlayerMoney(pID) -TPreis[playerid]);
    ticketannehmen[playerid]= 0;
    TPreis[playerid] = 0;
    }
    if(ticketannehmen[playerid] ==0)
    {
    SendClientMessage(playerid,Rot,"Du musst kein Ticket bezahlen!");
    }
    return 1;
    }


    Wenn ichs so mache, steht es immer noch und ich bekomme iwi 1 Milliarde oder so