Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.87 KB | None | 0 0
  1. public class Trader : BasePlayer
  2.     {
  3.         public DatabaseObject db;
  4.         public BigDB bigDB;
  5.         public string fbuid;
  6.         public string SItem;
  7.         public string imageLink;
  8.         public Trader buyer;
  9.         public Trader seller;
  10.         public IList<string> BItems;
  11.         public bool isAdmin = false;
  12.         public bool isVip = false;
  13.         public bool cantMsg = false;
  14.         public bool isSelling = false;
  15.         public bool isBuying = false;
  16.         public TradeInfo sellinfo = new TradeInfo();
  17.         public DatabaseObject GetUserData()
  18.         {
  19.             DatabaseObject pdb = new DatabaseObject();
  20.             bigDB.LoadOrCreate("Users", fbuid, delegate(DatabaseObject rdb)
  21.             {
  22.                 pdb = rdb;
  23.                 db = rdb;
  24.             }, delegate(PlayerIOError e)
  25.             {
  26.                 Console.WriteLine("error getting user db : " + e);
  27.             });
  28.  
  29.             return pdb;
  30.         }
  31.     }
  32.  
  33.     public class TradeInfo
  34.     {
  35.         public Trader seller;
  36.         public string sitem = "test_item";
  37.         public string sfbuid = "user_fbuid";
  38.         public string sfbname = "test_user";
  39.         public bool busy = false;
  40.     }
  41.  
  42.     [RoomType("marketplace")]
  43.  
  44.     public class marketplace : Game<Trader>
  45.     {
  46.  
  47.         public Dictionary<string, TradeInfo> roomTrades;
  48.         public IList<string> tradersInRoom;
  49.  
  50.         public override bool AllowUserJoin(Trader player)
  51.         {
  52.            
  53.             //if (InDevelopmentServer) { return true; }
  54.            
  55.             if (checkTraderJoin(player)) { return true; }
  56.  
  57.  
  58.  
  59.             return false;
  60.         }
  61.  
  62.  
  63.         public override void GameStarted()
  64.         {
  65.             checkVersion();
  66.             AddTimer(refreshTrades, 2000);
  67.             AddTimer(refreshTraders, 2000);
  68.  
  69.  
  70.         }
  71.  
  72.         public override void GotMessage(Trader player, Message message)
  73.         {
  74.             if (player.cantMsg) { player.Send("youAintProHacker!"); return; }
  75.             switch (message.Type)
  76.             {
  77.                 case "makeTrade" :
  78.                     addTrade(player, message.GetString(0));
  79.                     break;
  80.                 case "closeTrade" :
  81.                     removetrade(player.fbuid);
  82.                     break;
  83.                 case "joinTrade":
  84.                     joinTrade(player, message.GetString(0));
  85.                     break;
  86.                 case "chatMsg":
  87.                     if (player.isBuying) { player.seller.Send(message); }
  88.                     else if (player.isSelling)
  89.                     {
  90.                         if (player.sellinfo.busy) { player.buyer.Send(message); }
  91.                         else
  92.                         {
  93.                             Broadcast(message);
  94.                         }
  95.                     }
  96.                     break;
  97.             }
  98.         }
  99.  
  100.         public override void UserLeft(Trader player)
  101.         {
  102.             removeplayer(player);
  103.         }
  104.         public override void UserJoined(Trader player)
  105.         {
  106.             addplayer(player);
  107.         }
  108.  
  109.  
  110.        
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.             // custom funcs
  131.  
  132.  
  133.         public void joinTrade(Trader trader, string sfbuid)
  134.         {
  135.             if (!roomTrades.ContainsKey(sfbuid)) { Console.WriteLine("deal:" + sfbuid + " dont exist to join!"); return; }
  136.             if (!trader.isSelling && !trader.isBuying)
  137.             {
  138.                 if (roomTrades[sfbuid].busy) { Console.WriteLine("trader:" + sfbuid + " is busy!"); return; }
  139.  
  140.                 trader.seller = roomTrades[sfbuid].seller;
  141.                 trader.isBuying = true;
  142.  
  143.  
  144.             }
  145.             else { Console.WriteLine("player already in a deal!"); }
  146.  
  147.  
  148.  
  149.         }
  150.  
  151.         public DatabaseObject getPlayerDb(Trader trader)
  152.         {
  153.             DatabaseObject pdb = new DatabaseObject();
  154.             PlayerIO.BigDB.Load("Users", trader.fbuid, delegate(DatabaseObject db)
  155.             {
  156.                 trader.db = db;
  157.                 pdb = db;
  158.             }, delegate(PlayerIOError e)
  159.             {
  160.                 Console.WriteLine("error getting player " + trader.fbuid + ":" + trader.ConnectUserId + " db!");
  161.             });
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.             return pdb;
  169.         }
  170.  
  171.  
  172.         public void checkVersion()
  173.         {
  174.             PlayerIO.Web.Post("http://www.filedeliverer.com/stickrun_v2/version", null, delegate(HttpResponse response)
  175.             {
  176.                 Console.WriteLine("success post request !  " + response.Text);
  177.             }, delegate(PlayerIOError e)
  178.             {
  179.                 Console.WriteLine("error with post request !   " + e);
  180.             });
  181.         }
  182.  
  183.  
  184.         public void removeplayer(Trader trader)
  185.         {
  186.  
  187.             if (tradersInRoom.Contains(trader.fbuid))
  188.             {
  189.                 tradersInRoom.Remove(trader.fbuid);
  190.             }
  191.             else
  192.             {
  193.                 Console.WriteLine("player:" + trader.fbuid + " doesnt exist to remove him!");
  194.             }
  195.         }
  196.  
  197.  
  198.         public void addplayer(Trader trader)
  199.         {
  200.             if (!tradersInRoom.Contains(trader.fbuid))
  201.             {
  202.                 tradersInRoom.Add(trader.fbuid);
  203.             }
  204.             else { Console.WriteLine("player:" + trader.fbuid + " cant be added : player already exists!"); }
  205.         }
  206.  
  207.  
  208.  
  209.        
  210.         public void addTrade(Trader trader, string item)
  211.         {
  212.             trader.SItem = item;
  213.             TradeInfo sellinfo = new TradeInfo();
  214.             sellinfo.seller = trader;
  215.             sellinfo.sitem = item;
  216.             sellinfo.sfbuid = trader.fbuid;
  217.             sellinfo.sfbname = trader.ConnectUserId;
  218.             trader.sellinfo = sellinfo;
  219.             roomTrades.Add(trader.fbuid, sellinfo);
  220.         }
  221.  
  222.         public void removetrade(string puid)
  223.         {
  224.  
  225.             if (!roomTrades.ContainsKey(puid)) { Console.WriteLine("cannot remove a trade : trade not found!"); return; }
  226.             roomTrades.Remove(puid);
  227.  
  228.         }
  229.  
  230.  
  231.  
  232.  
  233.         public void addtrade(Trader trader, TradeInfo sellinfo)
  234.         {
  235.             if (roomTrades.ContainsKey(trader.fbuid)) { Console.WriteLine("trade already exists"); return; }
  236.             if (trader.PayVault.Has(trader.sellinfo.sitem))
  237.             {
  238.                 roomTrades.Add(trader.fbuid, sellinfo);
  239.             }
  240.             else { Console.WriteLine("player dont have item {" + trader.sellinfo.sitem + "} to trade with !"); }
  241.         }
  242.  
  243.  
  244.  
  245.         public void refreshTrades()
  246.         {
  247.             Message trades = Message.Create("tradesAvail");
  248.             foreach (KeyValuePair<string, TradeInfo> trade in roomTrades)
  249.             {
  250.                 trades.Add(trade.Value.sfbuid, trade.Value.sfbname, trade.Value.sitem, trade.Value.busy);
  251.             }
  252.             Broadcast(trades);
  253.         }
  254.  
  255.         public void refreshTraders()
  256.         {
  257.             Message traders = Message.Create("tradersOnline");
  258.             foreach (Trader trader in Players)
  259.             {
  260.                 traders.Add(trader.ConnectUserId);
  261.             }
  262.             Broadcast(traders);
  263.         }
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.         public bool checkTraderJoin(Trader trader)
  284.         {
  285.            
  286.             string puid;
  287.  
  288.             if (trader.JoinData.ContainsKey("fbuid"))
  289.             {
  290.                 puid = trader.JoinData["fbuid"];
  291.             }
  292.             else { return false; }
  293.  
  294.             if (tradersInRoom.Contains(puid)) { Console.WriteLine("player:" + puid + " is already in room!"); return false; }
  295.  
  296.             if (puid.Length > 6)
  297.             {
  298.                 foreach (char c in puid)
  299.                 {
  300.                     if (!char.IsDigit(c)) { return false; }
  301.                 }
  302.                 return true;
  303.             } else { return false; }
  304.         }
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement