Jump to content
Eternal Lands Official Forums


  • Content count

  • Joined

  • Last visited

About DogBreath

  • Rank

Recent Profile Visitors

918 profile views
  1. Step by Step how to

    I did. Unfortunately it's still giving the same error. I'm now trying to install ix on a new partition and trying to compile it from that direction. As I understand it there's a converter that will produce a window's exe from the ix build.
  2. Step by Step how to

    If I try to put .net 4.0 on my machine it says a higher version already exists...
  3. Step by Step how to

    C:\Users\Josista\OneDrive\Desktop\BotCode\CS-ELBot\CS-ELBot>msbuild cs-elbot.csproj Microsoft (R) Build Engine version 16.10.1 for Mono Copyright (C) Microsoft Corporation. All rights reserved. Build started 8/15/2023 5:21:23 AM. Project "C:\Users\Josista\OneDrive\Desktop\BotCode\CS-ELBot\CS-ELBot\cs-elbot.csproj" on node 1 (default targets). C:\Program Files\Mono\lib\mono\msbuild\15.0\bin\Microsoft.Common.CurrentVersion.targets(1232,5): error MSB3644: The ref erence assemblies for .NETFramework,Version=v4.0 were not found. To resolve this, install the Developer Pack (SDK/Targe ting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks [C:\Users\Josista\OneDrive\Desktop\BotCode\CS-ELBot\CS-ELBot\cs-elbot.csproj] Done Building Project "C:\Users\Josista\OneDrive\Desktop\BotCode\CS-ELBot\CS-ELBot\cs-elbot.csproj" (default targets) - - FAILED. Build FAILED. "C:\Users\Josista\OneDrive\Desktop\BotCode\CS-ELBot\CS-ELBot\cs-elbot.csproj" (default target) (1) -> (GetReferenceAssemblyPaths target) -> C:\Program Files\Mono\lib\mono\msbuild\15.0\bin\Microsoft.Common.CurrentVersion.targets(1232,5): error MSB3644: The r eference assemblies for .NETFramework,Version=v4.0 were not found. To resolve this, install the Developer Pack (SDK/Tar geting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs a t https://aka.ms/msbuild/developerpacks [C:\Users\Josista\OneDrive\Desktop\BotCode\CS-ELBot\CS-ELBot\cs-elbot.csproj] 0 Warning(s) 1 Error(s) Time Elapsed 00:00:02.07 I get a similar error trying to compile the game client. As I stated. Not really sure how much more information I can provide.
  4. Step by Step how to

    PM from Duck: [Hello, I am a C# bot by DogBreath. ] [PM from Duck: [Version: 2011.2.17.7 ] [PM from Duck: [--------------------------------------------------] Was talking about this bot code, to be specific. Or, an example of compiling the actual game client would suffice as it's raising the same issues. Thanks for the reply, DB
  5. Step by Step how to

    Can someone please make a step by step on how to compile the bot code please? It's been so long since it's been compiled that I'm having issues with Visual Studio 4.0 errors... Thanks in advance, DB P.S. I'm interested in both IX and windows compilations
  6. bugged storage

    Oddly enough, I ran into this same exact problem, today I think there's another possible solution to leaving it on. It'd work if it would take a parameter, instead of being a toggle. E.G.. "#item_uid 1". This way it wouldn't break bots on _old_ code and would allow you to assure it's on by setting it (if indeed you want it on...)
  7. Changes to EL-Services bots

    The bot will tell you what you owe (or are owed) and provide you a way to get a detailed listing of the transaction. The biggest change is that it won't put coins into the window until you've 'commited' to your side of the transaction by clicking trade once (and it won't EVER take coins out of the window, it would cancel first...) This doesn't mean the trade is final, until you click accept a second time (and you can always cancel before the second "accept".) It's simply a change to how the bots used to do it that we wanted you to know about.
  8. Changes to EL-Services bots

    The bots hosted by el-services will be working a bit differently in the near future... The biggest difference you'll notice is the bots will not put coins into the trade until the last 'step' in the trade (so basically when you indicate to the bot you're "done" it will put its coins in...) The bots will also provide more information about the trade using a new command: #total, that may be entered at any time during the trade. The #total command will provide you with complete details of the trade (what you've put in, what the bot's put in and how much is owed and to whom it's owed...) The #total command will execute automatically when you click accept, if you don't want to enter it yourself. It's really not a "huge" change, just some minor re-ordering of how it trades but we figured it best to let people know ahead of time. DogBreath

    If you need to give the bot items, or take items off the bot, you'll still be needing the trade_item protocols, no? I realize you won't need it for buying and selling, but trading isn't exclusive to buying and selling... I guess if you're logging it on by hand to trade items then it's a mute point Just didn't wanna see ya miss something DB

    You're right but then you don't need to know the length until you're actually dealing with an item. I realize it might be easier to calculate the size, remember it, and reuse it, but it's not really that difficult to keep recalculating the size as you need it (and probably safer...) This is also a good way to test, as you can flip the switch on the bot (#item_uid) to be sure it doesn't have a problem either way... The other place(s) you need to check are GET_TRADE_OBJECT and GET_NEW_INVENTORY_ITEM (if you use this last one, many bots don't as best as I can tell...) Check to see if there are the extra bytes at the end (if not, then the assumption is there's no item id provided by the server...) private static void newItem(Bot Bot, byte[] itemInfo) { uint pos = itemInfo[9]; uint flags = itemInfo[10]; int image_id = BitConverter.ToInt16(itemInfo, 3); int quantity = BitConverter.ToInt32(itemInfo, 5); int serverItemID = 0; try { serverItemID = BitConverter.ToInt16(itemInfo, 11); } catch { serverItemID = -1; } public static void GET_TRADE_OBJECT(Bot Bot, byte[] buffer) { Bot.tradeItem myTradeItem = new Bot.tradeItem(); myTradeItem.pos = buffer[10]; myTradeItem.imageID = BitConverter.ToInt16(buffer, 3); myTradeItem.quantity = BitConverter.ToInt32(buffer, 5); myTradeItem.toInventoryInd = buffer[9]; myTradeItem.playerName = Bot.tradePartner; myTradeItem.fromMe = ((buffer[11] == 1) ? false : true); bool alreadyInList = false; try { myTradeItem.serverItemID = BitConverter.ToInt16(buffer, 12); } catch { myTradeItem.serverItemID = -1; } Coded like this, you don't have to know the length before you need it (and don't need to remember it as you're really only after the server item id.) This works, as I have a bot on the main server using it and it was first used on test with both lengths (it just doesn't care what the length is, mosly...) Hope this helps DB

    I can confirm this. I don't think it's new though. I have my code checking to see if they're trading before I process this command. The first time it processes it and sets trading to false so it just ignores the second time. EDIT: it doesn't seem to do much more with this anyways except setting the trade partner to ""... case Constants.GET_TRADE_EXIT: { Bot.addText("GET_TRADE_EXIT(" + protocolType + ")!"); if (Bot.trading) { Bot.addText("Trade complete!" + Environment.NewLine, System.Drawing.Color.Gold); Bot.tradePartner = ""; Bot.trading = false; } break; }

    It'd be nice if we'd switch over on test first (completely, so that it's a more true test...) Right now, we have to issue a command to make sure it's working correctly. It'd be a good idea to have a full test first, for maybe a week. If there are client changes associate with this, they could be fully tested as well... But yes, an ETA on the final switch would be good too. I have some code swapping/database changes that I'll have to do on "switching day" and would like to ensure I can be around in case anything goes wrong. Thanks, DB
  13. Prefered database for a bot

    I like mysql, but whatever works tbh.... "If it's for free, it's for me!" I've used oracle, db2, progress, mysql, mssql, and some others I can't even remember the names of... Each has their advantages/drawbacks. I'd have to say orcale is on the top of the heap, but it ain't free and it ain't cheap... I agree with piper, if you're only going to have a single bot (or two) then, a database probably isn't necessary... However, if you're going to host a large number of bots, it can be quite handy. Databases can also be nice if they support triggers and stored procedures. These allow you to share the processing load with the database where it makes sense. Often you can do some work on the database and save a lot of I/O by providing the answer instead of the raw data. Being able to do adhoc queries is also a nice advantage to using a database. My rule of thumb is: "best tool for the job". Whatever is the best fit for what you're doing...

    Is there going to be only one list of items for all three servers?
  15. Traffic in NC Near Storage

    Yeah, no disagreement there... But since the bots were brought into this idea, I thought why not kill two birds with on stone I agree, the rock is painful