Advertisement
Guest User

dice

a guest
Aug 16th, 2016
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.32 KB | None | 0 0
  1. #define DICE_WAIT               1
  2. #define DICE_REQUEST            2
  3.  
  4. new Dice_PartnerID[MAX_PLAYERS];
  5. new Dice_State[MAX_PLAYERS];
  6. new Dice_Pot[MAX_PLAYERS];
  7.  
  8. ocmd:diceinvite(playerid, params[]) {
  9.     new partner, value;
  10.     if(sscanf(params,"ud",partner,value)) return SendClientMessage(playerid, -1, "/diceinvite [PlayerID/Name] [Betrag]");
  11.     if(GetPlayerMoney(playerid) < value) return SendClientMessage(playerid, -1, "Du hast nicht genug Geld");
  12.     if(value < 1000 || value > 10000) return SendClientMessage(playerid, -1, "Der Betrag muss zwischen 1000$ und 10000$ liegen");
  13.     if(!IsPlayerConnected(partner)) return SendClientMessage(playerid, -1, "Der Spieler ist nicht online");
  14.     if(Dice_State[partner] != 0) return SendClientMessage(playerid, -1, "Der Spieler würfelt bereits");
  15.     Dice_State[playerid] = DICE_WAIT;           // State: Wartet, dass der Spieler annimmt
  16.     Dice_PartnerID[playerid] = partner + 1;     // PartnerID wird zwischengespeichert
  17.     Dice_Pot[playerid] = value;                 // Der Betrag wird zwischengespeichert
  18.     Dice_State[partner] = DICE_REQUEST;         // State: Partner hat eine Anfrage bekommen
  19.     Dice_PartnerID[partner] = playerid + 1;     // PartnerID von dem Spieler wird ebenfalls gesetzt
  20.     Dice_Pot[partner] = value;                  // Der Betrag wird zwischengespeichert
  21.     SendClientMessage(partner, -1, "Du hast ein Dice-Request bekommen. Nutze /diceaccept oder /dicedecline");
  22. }
  23.  
  24. ocmd:diceaccept(playerid, params[]) {
  25.     if(Dice_State[playerid] != DICE_REQUEST) return SendClientMessage(playerid, -1, "Du hast keine Dice-Anfrage bekommen");
  26.     new pID = Dice_PartnerID[playerid] - 1; // PartnerID wird ermittelt
  27.     new value = Dice_Pot[playerid]; // Betrag wird ermittelt
  28.     GivePlayerMoney(playerid, value * -1); // Betrag wird mir abgezogen
  29.     GivePlayerMoney(pID, value * -1); // Betrag wird meinem Partner abgezogen
  30.     new myValue = random(6) + 1; // Ich würfle
  31.     new ptValue = random(6) + 1; // Mein Partner würfelt
  32.     if(myValue > ptValue) { // Ich würfle einen größeren Wert als mein Partner
  33.         GivePlayerMoney(playerid, value * 2); // Ich bekomme das ganze Geld
  34.         SendClientMessage(playerid, -1, "Du hast gewonnen");
  35.         SendClientMessage(pID, -1, "Du hast verloren");
  36.     } else if(myValue == ptValue) { // Unentschieden
  37.         GivePlayerMoney(playerid, value); // Ich bekomme mein Geld zurück
  38.         GivePlayerMoney(pID, value); // Mein Partner bekommt sein Geld zurück
  39.         SendClientMessage(playerid, -1, "Es ist unentschieden");
  40.         SendClientMessage(pID, -1, "Es ist unentschieden");
  41.     } else { // Ich würfle einen kleineren Wert als mein Partner
  42.         GivePlayerMoney(pID, value * 2); // Mein Partner bekommt das ganze Geld
  43.         SendClientMessage(playerid, -1, "Du hast verloren");
  44.         SendClientMessage(pID, -1, "Du hast gewonnen");
  45.     }
  46.     // Variablen werden zurückgesetzt
  47.     Dice_PartnerID[playerid] = 0;
  48.     Dice_State[playerid] = 0;
  49.     Dice_PartnerID[pID] = 0;
  50.     Dice_State[pID] = 0;
  51. }
  52.  
  53. ocmd:dicedecline(playerid, params[]) {
  54.     if(Dice_State[playerid] != DICE_REQUEST) return SendClientMessage(playerid, -1, "Du hast keine Dice-Anfrage bekommen");
  55.     new pID = Dice_PartnerID[playerid] - 1; // PartnerID wird ermittelt
  56.     // Variablen werden zurückgesetzt
  57.     Dice_PartnerID[playerid] = 0;
  58.     Dice_State[playerid] = 0;
  59.     Dice_PartnerID[pID] = 0;
  60.     Dice_State[pID] = 0;
  61.     SendClientMessage(playerid, -1, "Deine Dice-Request wurde abgelehnt.");
  62.     SendClientMessage(pID, -1, "Du hast die Dice-Request abgelehnt");
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement