Casino-Dice Befehl?

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. - Ich bins noch mal.


    //-Dice-//
    ocmd:dice(playerid,params[])
    {
    new cash2;
    new pID;
    if(sscanf(params,"i",cash2))return SendClientMessage(playerid,WEISS,"/dice [Betrag]");
    SendClientMessage(playerid,WEISS,"Du bietest %s an um %i zu würfeln. Warte auf Annahme",SpielerName(pID),cash2);
    SendClientMessage(pID,WEISS,"%s bietet dir an um %i zu würfeln. /Accept Dice.",SpielerName(playerid),cash2)
    return 1;
    }
    ocmd:Accept Dice(playerid,params[])
    {
    new pID;
    new randomnr = random(12)+1;
    SendClientMessage(playerid, WEISS, "%s würfelt eine %i",SpielerName(pID),randomnr)
    SendClientMessage(pID, WEISS, "%s würfelt eine %i",SpielerName(playerid),randomnr)
    GivePlayerMoney(playerid,cash2);
    GivePlayerMoney(pID, -cash2);
    return 1;
    }



    So, dem mit der höheren Zahl, soll dass Geld gutgeschrieben werden, und dem mit der nierigeren Zahl eben abgezogen.
    Z.b. TestSpieler1 würfelt eine 12, TestSpieler2 würfelt eine 8.
    TestSpieler1 + 5000$
    TestSpieler2 - 5000$
    Danke! :D


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Mach doch eine neue Variable.
    Also ganz oben:
    new DiceCash[MAX_PLAYERS];


    Im ocmd:dice
    DiceCash[playerid] = cash2;


    Im ocmd:Accept Dice
    GivePlayerMoney(playerid,DiceCash[playerid]);
    GivePlayerMoney(pID,-DiceCash[playerid]);


    Hoffe es funktioniert so :P


  • //-Dice-//
    ocmd:dice(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,50,2010.2696,1017.7790,996.8750))return SendClientMessage(playerid, ROT, "Nicht im Casino!");
    new pID;
    new string[100];
    new string2[100];
    new cash2;
    if(sscanf(params,"i",pID,cash2))return SendClientMessage(playerid,WEISS,"/dice [ID/Name] [Betrag]");
    format(string,sizeof(string),"Du bietest %s an um %i zu würfeln. Warte auf Annahme",SpielerName(pID),DiceCash[playerid] = cash2);
    SendClientMessage(playerid, WEISS, string);
    format(string2,sizeof(string2),"%s bietet dir an um %i zu würfeln. /acceptdice.",SpielerName(playerid),DiceCash[playerid] = cash2);
    SendClientMessage(pID,WEISS,string2);
    return 1;
    }
    ocmd:acceptdice(playerid,params[])
    {
    new pID;
    new string[100];
    new string2[100];
    new randomnr = random(12)+1;
    format(string,sizeof(string),"%s würfelt eine %i",SpielerName(pID),randomnr);
    SendClientMessage(playerid, WEISS, string);
    SendClientMessage(pID, WEISS, string);
    format(string2,sizeof(string2),"%s würfelt eine %i",SpielerName(playerid),randomnr);
    SendClientMessage(pID, WEISS, string2);
    SendClientMessage(playerid, WEISS, string2);
    GivePlayerMoney(playerid,DiceCash[playerid]);
    GivePlayerMoney(pID,-DiceCash[playerid]);
    return 1;
    }

    Ne geht nicht, und mann kann auch mit sich selbst dicen, also /accept dice durch spammen^^ auch wenn kein Angebot unterbreitet ist.


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Ja aber denn wäre immer noch dass Problem, dass das Geld nicht random 1-12 Verspielt wird, sondern beide Spieler die Nachricht kriegen, mit der gleichen Zahl.^^


    //Edit

    //-Dice-//
    ocmd:dice(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,50,2010.2696,1017.7790,996.8750))return SendClientMessage(playerid, ROT, "Nicht im Casino!");
    new pID;
    new string[100];
    new string2[100];
    new Angebot;
    new cash2;
    if(sscanf(params,"i",pID,cash2))return SendClientMessage(playerid,WEISS,"/dice [ID/Name] [Betrag]");
    if(pID == playerid)return SendClientMessage(playerid,ROT,"Du kannst nicht mit dir selber dicen!");
    if(Angebot == 0)
    {
    Angebot = 1;
    }
    {
    format(string,sizeof(string),"Du bietest %s an um %i zu würfeln. Warte auf Annahme",SpielerName(pID),DiceCash[playerid] = cash2);
    SendClientMessage(playerid, WEISS, string);
    format(string2,sizeof(string2),"%s bietet dir an um %i zu würfeln. /acceptdice.",SpielerName(playerid),DiceCash[playerid] = cash2);
    SendClientMessage(pID,WEISS,string2);
    }
    return 1;
    }
    ocmd:acceptdice(playerid,params[])
    {
    new pID;
    new string[100];
    new string2[100];
    new Angebot;
    new randomnr = random(12)+1;
    if(Angebot == 1)
    {
    format(string,sizeof(string),"%s würfelt eine %i",SpielerName(pID),randomnr);
    SendClientMessage(playerid, WEISS, string);
    SendClientMessage(pID, WEISS, string);
    format(string2,sizeof(string2),"%s würfelt eine %i",SpielerName(playerid),randomnr);
    SendClientMessage(pID, WEISS, string2);
    SendClientMessage(playerid, WEISS, string2);
    GivePlayerMoney(playerid,DiceCash[playerid]);
    GivePlayerMoney(pID,-DiceCash[playerid]);
    }
    return 1;
    }

    Meinst du dass so, mit der Variable?


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

    Einmal editiert, zuletzt von BOMBER ()

  • Was ist das denn für ein Mist ? Oo
    format(string,sizeof(string),"Du bietest %s an um %i zu würfeln. Warte auf Annahme",SpielerName(pID),DiceCash[playerid] = cash2);
    format(string2,sizeof(string2),"%s bietet dir an um %i zu würfeln. /acceptdice.",SpielerName(playerid),DiceCash[playerid] = cash2);