MMORPG Core - Deutsche Community für Online Rollenspiele - Powered by vBulletin

  • AAA
  • Aggressive
  • Alienated
  • Amazed
  • Amused
  • Angelic
  • Angry
  • Apelike
  • Artistic
  • Asleep
  • Balanced
  • Banhappy
  • Bashful
  • Bitchy
  • Blah
  • Bookworm
  • Bored
  • Breezy
  • Brooding
  • Busy
  • Buzzed
  • Chatty
  • Cheeky
  • Cheerful
  • Cloud 9
  • Cold
  • Coldturkey
  • Confused
  • Cool
  • Crappy
  • Creative
  • Curious
  • Cynical
  • Daring
  • Dead
  • Depressed
  • Devilish
  • Disagree
  • Doh
  • Doubtful
  • Dramaqueen
  • Dreaming
  • Drunk
  • Elated
  • Energetic
  • Fiendish
  • Fine
  • Flirty
  • Gloomy
  • Goofy
  • Grumpy
  • Happy
  • Horny
  • Hot
  • Hungover
  • In Love
  • Innocent
  • Inpain
  • Insomnious
  • Inspired
  • Lonely
  • Lucky
  • Lurking
  • Mellow
  • Mischievious
  • Mondayblues
  • Musical
  • Nerdy
  • Notamused
  • Notworthy
  • Paranoid
  • Pensive
  • Predatory
  • Procrastinating
  • Psychedelic
  • Question
  • Relaxed
  • Roflmao
  • Sad
  • Scared
  • Scurvy
  • Shocked
  • Sick
  • Sleepy
  • Sluggish
  • Sneaky
  • Snobbish
  • Spaced
  • Spooky
  • Sporty
  • Starving
  • Stressed
  • Sunshine
  • Sweettooth
  • Thinking
  • Tired
  • Torn
  • Twisted
  • Veggedout
  • Volatile
  • Woot
  • Worried
  • Yeehaw
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • DDos
  • Tweet   
    Ergebnis 1 bis 4 von 4
    1. #1
      Anfänger
       
      Avatar von Hepatitis C
      Registriert seit
      Dec 2009
      Beiträge
      30
      Danke
      2
      Danke erhalten: 11

      Standard [Release]Trade

      Die Werbung stört? Registriere dich hier!
      Okay well in the 5165 source, GM's and PM's cannot trade.
      Well yeah the fix for it is small but since alot of people were asking me about it I am going to release my trading code.
      Replace your entire Trade.cs with this code.

      Code:
      using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Text;
      using NewestCOServer.Game;
      
      namespace NewestCOServer.PacketHandling
      {
          public class Trade
          {
              static void CancelTrade(Main.GameClient C)
              {
                  if (C.MyChar.Trading)
                  {
                      Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
                      if (Who != null)
                      {
                          Who.MyClient.AddSend(Packets.TradePacket(C.MyChar.TradingWith, 5));
                          Who.Trading = false;
                          Who.TradingWith = 0;
                          Who.TradeSide.Clear();
                          Who.TradingCPs = 0;
                          Who.TradingSilvers = 0;
                          Who.ClickedOK = false;
                          Who.Silvers = Who.Silvers;//update the silvers
                          Who.CPs = Who.CPs;//update the cps
                          Who.MyClient.AddSend(Packets.ChatMessage(Who.MyClient.MessageID, "SYSTEM", Who.Name, "Trading failed!", 2005, 0));
                      }
                      C.AddSend(Packets.TradePacket(C.MyChar.TradingWith, 5));
                      C.MyChar.Trading = false;
                      C.MyChar.TradingWith = 0;
                      C.MyChar.TradeSide = new System.Collections.ArrayList(20);
                      C.MyChar.TradingCPs = 0;
                      C.MyChar.TradingSilvers = 0;
                      C.MyChar.ClickedOK = false;
                      C.MyChar.CPs = C.MyChar.CPs;//update the cps
                      C.MyChar.Silvers = C.MyChar.Silvers;//update the silvers
                      C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "Trading failed!", 2005, 0));
                  }
              }
              public static void Handle(Main.GameClient C, byte[] Data)
              {
                  uint UID = BitConverter.ToUInt32(Data, 4);
                  byte Type = Data[8];
      
                  switch (Type)
                  {
                      case 1:
                          {
                              Character Who = (Character)World.H_Chars[UID];
                              if (Who != null && !Who.Trading)
                              {
                                  if (!C.MyChar.Trading)
                                  {
                                      if (Who.EntityID != C.MyChar.TradingWith)
                                      {
                                          C.MyChar.TradingWith = UID;
                                          if (Who.EntityID == C.MyChar.TradingWith && Who.TradingWith == C.MyChar.EntityID)
                                          {
                                              Who.MyClient.AddSend(Packets.TradePacket(C.MyChar.EntityID, 3));
                                              C.AddSend(Packets.TradePacket(Who.EntityID, 3));
                                              C.MyChar.Trading = true;
                                              Who.Trading = true;
                                              break;
                                          }
                                          else
                                          {
                                              C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]Request for trading has been sent out.", 2005, 0));
                                              Who.MyClient.AddSend(Packets.TradePacket(C.MyChar.EntityID, 1));
                                          }
                                      }
                                      if (Who.EntityID == C.MyChar.TradingWith && Who.TradingWith == C.MyChar.EntityID)
                                      {
                                          Who.MyClient.AddSend(Packets.TradePacket(C.MyChar.EntityID, 3));
                                          C.AddSend(Packets.TradePacket(Who.EntityID, 3));
                                          C.MyChar.Trading = true;
                                          Who.Trading = true;
                                      }
                                  }
                                  else
                                      C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]Close the current trade before you take another one.", 2005, 0));
                              }
                              else
                                  C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]The target is trading with someone else.", 2005, 0));
      
                              break;
                          }
                      case 2:
                          {
                              CancelTrade(C);
                              break;
                          }
                      case 6:
                          {
                              Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
                              if (Who != null)
                              {
                                  if (C.MyChar.TradeSide.Count < 20)
                                  {
                                      if (Who.Inventory.Count + C.MyChar.TradeSide.Count < 40)
                                      {
                                          Game.Item I = C.MyChar.FindInvItem(UID);
                                          if (!I.FreeItem)
                                          {
                                              Who.MyClient.AddSend(Packets.TradeItem(I));
                                              C.MyChar.TradeSide.Add(I.UID);
                                          }
                                          else
                                          {
                                              C.AddSend(Packets.TradePacket(UID, 11));
                                              C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]Cannot trade items made with gm commands.", 2005, 0));
                                          }
                                      }
                                      else
                                      {
                                          C.AddSend(Packets.TradePacket(UID, 11));
                                          C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]Your trade partner can't hold any more items.", 2005, 0));
                                          Who.MyClient.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "[Trade]The one your trading with cant add anymore items on the table because you have no room in your inventory.", 2005, 0));
                                      }
                                  }
      
                              }
                              break;
                          }
                      case 7:
                          {
                              C.MyChar.TradingSilvers = UID;
                              Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
                              Who.MyClient.AddSend(Packets.TradePacket(UID, 8));
      
                              break;
                          }
                      case 13:
                          {
                              C.MyChar.TradingCPs = UID;
                              Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
                              Who.MyClient.AddSend(Packets.TradePacket(UID, 12));
      
                              break;
                          }
                      case 10:
                          {
                              Character Who = (Character)World.H_Chars[C.MyChar.TradingWith];
      
                              if (Who != null && Who.ClickedOK)
                              {
                                      if (C.MyChar.Silvers >= C.MyChar.TradingSilvers && C.MyChar.CPs >= C.MyChar.TradingCPs && Who.Silvers >= Who.TradingSilvers && Who.CPs >= Who.TradingCPs)
                                      {
                                          Who.MyClient.AddSend(Packets.TradePacket(C.MyChar.TradingWith, 5));
                                          C.AddSend(Packets.TradePacket(C.MyChar.EntityID, 5));
      
                                          Who.Silvers += C.MyChar.TradingSilvers;
                                          Who.Silvers -= Who.TradingSilvers;
                                          C.MyChar.Silvers += Who.TradingSilvers;
                                          C.MyChar.Silvers -= C.MyChar.TradingSilvers;
      
                                          Who.CPs += C.MyChar.TradingCPs;
                                          Who.CPs -= Who.TradingCPs;
                                          C.MyChar.CPs += Who.TradingCPs;
                                          C.MyChar.CPs -= C.MyChar.TradingCPs;
      
      
                                          foreach (uint Id in C.MyChar.TradeSide)
                                          {
                                              Game.Item I = C.MyChar.FindInvItem(Id);
                                              Who.AddItem(I);
                                              C.MyChar.RemoveItem(I);
                                          }
                                          foreach (uint Id in Who.TradeSide)
                                          {
                                              Game.Item I = Who.FindInvItem(Id);
                                              C.MyChar.AddItem(I);
                                              Who.RemoveItem(I);
                                          }
      
                                          Who.Trading = false;
                                          Who.TradingWith = 0;
                                          Who.TradeSide = new System.Collections.ArrayList(20);
                                          Who.TradingCPs = 0;
                                          Who.TradingSilvers = 0;
                                          Who.ClickedOK = false;
                                          Who.MyClient.AddSend(Packets.ChatMessage(Who.MyClient.MessageID, "SYSTEM", Who.Name, "Trading succeeded!", 2005, 0));
                                          C.MyChar.Trading = false;
                                          C.MyChar.TradingWith = 0;
                                          C.MyChar.TradeSide = new System.Collections.ArrayList(20);
                                          C.MyChar.TradingCPs = 0;
                                          C.MyChar.TradingSilvers = 0;
                                          C.MyChar.ClickedOK = false;
                                          C.AddSend(Packets.ChatMessage(C.MessageID, "SYSTEM", C.MyChar.Name, "Trading succeeded!", 2005, 0));
                                      }
                                      else
                                          CancelTrade(C);  
                                  } 
                              else
                              {
                                  C.MyChar.ClickedOK = true;
                                  Who.MyClient.AddSend(Packets.TradePacket(0, 10));
                              }
      
                              break;
                          }
                  }
              }
          }
      }

      Press thanks if it helped.

    2. Das folgende Mitglied bedankt sich bei Hepatitis C für diesen Beitrag:

      Lemmy111 (05.01.10)

    3. #2
      Neuling
       

      Registriert seit
      Jun 2010
      Beiträge
      6
      Danke
      0
      Danke erhalten: 0

      Cool


      Do you think this would work with the 5119 version of this source =P?

    4. #3
      Core
       
      Avatar von xDevil
      Registriert seit
      Jan 2010
      Ort
      Nürnberg
      Beiträge
      438
      Danke
      41
      Danke erhalten: 40

      Standard

      omg thats a big code i dont know anything of a Trading code ^^

    5. #4
      Neuling
       

      Registriert seit
      Jun 2010
      Beiträge
      6
      Danke
      0
      Danke erhalten: 0

      Standard

      Zitat Zitat von xDevil [Um Links zu sehen registriere dich bitte. Klicke hier.]
      omg thats a big code i dont know anything of a Trading code ^^

      Are you getting any problems with the code?
      If so just PM i can help fix it.

    Lesezeichen

    Berechtigungen

    • Neue Themen erstellen: Nein
    • Themen beantworten: Nein
    • Anhänge hochladen: Nein
    • Beiträge bearbeiten: Nein
    •