Jump to content
Eternal Lands Official Forums

DogBreath

Members
  • Content count

    489
  • Joined

  • Last visited

Posts posted by DogBreath


  1. There are now 300 storage slots, so two bytes are needed.

    Ty for the clarification.

    I looked into this a little further, to try and understand it completely, and I noticed that (the client) for PUT_OBJECT_ON_TRADE it's using a variable length record (depending on the size of pos.) Is it possible for me to use a fixed length for all of these (two bytes for all pos?) It seems like that's how the client is approaching WITHDRAW, using two bytes no matter what the size of pos is.

     

    I'm still a bit new at this and it's kind of fuzzy to me what the server will accept (I didn't know it'd accept variable length data for the same transaction type.)

     

    EDIT: got things working now, ty for the help :)


  2. Hi,

     

    I'm trying to get WITHDRAW_ITEM working, and based on what I can see in the WIKI/client it's supposed to be something like this:

     

    *((Uint8*)(str+0))=WITHDRAW_ITEM;

    *((Uint16*)(str+1))=length;

    *((Uint8*)(str+3))=storage_pos;

    *((Uint32*)(str+4))=quantity;

     

    Similar to DEPOSITE_ITEM:

    *((Uint8*)(str+0))=DEPOSITE_ITEM;

    *((Uint16*)(str+1))=length;

    *((Uint8*)(str+3))=inventory_pos;//Position in the items_list

    *((Uint32*)(str+4))=quantity;

     

    Deposit seems to work, but withdraw isn't... So, I went to look at the cheat sheet (the client code) and found something odd there:

     

    Uint8 str[6];

     

    str[0]=DEPOSITE_ITEM;(1)

    str[1]=item_list[item_dragged].pos;(2)

    *((Uint32*)(str+2))=SDL_SwapLE32(item_quantity);(3-6)

    my_tcp_send(my_socket, str, 6);

    --------------------------------------------------------------

    Uint8 str[100];

     

    str[0]=WITHDRAW_ITEM; (1)

    *((Uint16*)(str+1))=SDL_SwapLE16(storage_items[storage_item_dragged].pos); (2-3)

    *((Uint32*)(str+3))=SDL_SwapLE32(item_quantity);(4-7)

    my_tcp_send(my_socket, str, 6);

     

    According to the wiki, these are supposed to be formatted the same (I realize the wiki could be out of date...) What seems odd is the withdraw seems to be using a 16 bit for the pos and the deposit an 8 bit. But what seems even more odd is it seems to be sending the same length message to the server yet deposit appears to have one less byte in it.

     

    Is the withdraw really supposed to have one more byte in it (16 bit pos instead of 8 bit?) If so, shouldn't it be passing a length of 7 with the message?

     

    Could anyone please help clear this up for me? Or at least let me know how far off base I am here?

     

    Thanks,

     

    DB

    (I assume this is working right because the byte swapping is leaving space at the end of the number and the server is accepting it because it's a valid number where it 'should' be (or maybe the client is adjusting the size before it acutally sends it based on the array?))


  3. Yesterday i used speed hax on PK, and to be honest i could run from anyone even when they are using ttr, w/o summons they wouldnt even catch me, and i dont think bots can summon :evilgrin:

     

    If you can diss the bot (which wont be that hard coz bots hit around 230-240 if you have armor) you would prolly be able to run away inside and kill those pvp'ers easily :P

     

    -Kaddy

    Well, if it is such a concern, why not have the bot guard shout out and warn people that a speed demon is coming through? It could perhaps even warn everyone that it knows is in their domain (and white listed) that the speed demon is there. #gm messages would surely be appropriate. The only trick is......how to determine if the person is on speed hax? If you can't determine that, then warning whenever any intruder is in the area would have to do.

     

    Good luck to you guard bot programmers and guard bot owners in figuring out how to overcome this.

    I'm pretty sure the ADD_ACTOR_COMMAND tells you how far the actor has moved, if it's more than one square and wasn't a spell, one would think one could assume (yeah, I know assuming is bad) that the actor is using speed hax (just my first guess at this, but I think that's what you're after...)

     

    Can the gaurd bot also be speed haxed?

    Hrm, why not? it might even be able to 'detect' as stated above, and react in kind if needed...


  4. Ok, after some further investigation it looks like the bot did get enough exp to advance it, but I'm wondering if it it's because it never spent its initial pick points. I just double checked and it's still getting the hints and appears to have 0/N overall level.


  5. Found a new version of the driver today (seems it was posted yesterday...) Everyone cross your fingers, lol :P It hasn't crashed so far (v 182.2 or something like that....)

     

    EDIT: update, still no crashes since I installed this new driver, I think this is the one we've been waiting for :)


  6. Maybe it's just me, and lack of coffee... But...

     

    Can't you just buy up all the stuff the undercutters are selling and then resell it for a better price later after they run out? If they're truely undercutting they won't be able to keep it up forever at a loss.. If they can afford to do it forever some how, then maybe they're not really undercutting?

     

    I personally see it as wholesale vs. retail (in a way...) What you're calling undercutters, I see as wholesalers, they have LOTS want to get rid of so they can make LOTS more. Retailers buy it up and sell at retail price (profit) when they can :whistle:

     

    I'm not sure you can blame bots at all, they're just an extension of the ebul user behind them, aren't they? :D

     

    Just my 2gc


  7. hey, every now and then the game randomly crashes, anyone know what could be the problem?

     

    from #glinfo

     

    Video card: GeForce 8600 GT/PCI/SSE2/3DNOW!

    Vendor ID: NVIDIA Corporation

    OpenGL Version: 3.0.0

     

    thanks :icon13:

    Not sure if this'll be helpful or not but I have similar problems with a GeForce 8500. It seems the video driver is locking up/freezing and then resetting itself (it only seems to happen with this game...) and results in the client crashing after that. I'm unsure of the cause, hence my not posting about it prior to now. I haven't tried compiling this version of the client on my machine and running it, so I'm not sure if that'd fix this or not.. Just some clues, hopefully :)


  8. you looking at mapfiles ? .elm ?

    or object files ? .e3d ?

     

    Makes a huge difference, otherwise checkout NEHE's openGL tutorial on the e3d format

    http://nehe.gamedev.net/

    I'm reading the elm files. It seems to be working fine now with what I noted in the above edit. Ty for the replies. Now I just have to figure out how to dig up the object_id(s)... I know there's a server message but I don't know how to get the server to send it to me (lol.) I figured around change_map it would but I don't seem to bet getting the list of objects from it. I've been putzing around in the client code but I haven't quite figured out how it's doing it yet, lol...

     

    As you might guess, I'm trying to get the information I need to send the use_map_object to the server... At this point I can find the object and even its coordinates, just not the object_id yet :)

     

    If anyone wants to cut this down to a 4 or 5 hour job from the days it might take me, please feel free to spoil my fun and give me a hint :medieval: (I'm suffering from lack of sleep over this, lol) :medieval:

     

    Thanks,

     

    DB


  9. I searched for a while on this and couldn't really find an answer in the sea of search results I readh through.

     

    I'm sure it's just from working on it too long but I'm stuck here... I've been trying to read the map files into a c# program and when I'm going after the 3d map objects I'm having trouble converting the data from the file into something that looks right, heh...

     

    From looking at the client code I see these are supposed to be float (single) and it appears to be byte swapping them (4 bytes) before it comes up with the actual number... I tried to read through the SDL inline functions for the SDL_Swap32 function and found it endlessly confusing.

     

    So, what I have is this (code below).. (I'm looking for the location of the banner...)

     

    The results are as follows: (x,y are defined as float)

    ./3dobjects/structures/banner2.e3d (so I know I'm at the right spot...)

     

    X = : 10.24555

    C3-ED-23-41 (the 4 bytes from the file...)

    Y = : 10.80228

    25-D6-2C-41

     

    EDIT: I suddenly noticed if I take these two numbers and mutiply them by 2, I get the right coordinates (and it seems to work in all cases...) I'm not quite sure why, but it seems to have given me the solution (after about 8 hours of studying it, lol)

     

    I realize I'm supposed to move those bytes around but for the life of me I can't figure it out :) or even what order they should be in... I figured the number should be some where around 22,19 (or so...) Could anyone please explain what this should look like? (I don't need the code, just how I should be flipping the bytes....) I'm think I understood what I'm supposed to be doing I could get the code working right.

     

    Thanks,

     

    DB

     

    /----- code snippet....

    for (int count = 0; count < myMapHeader.obj_3d_no; count++)

    {

    object3D my3DObject = new object3D();

    my3DObject.objectFileName = myReader.ReadBytes(80);

    byte[] myX = myReader.ReadBytes(4);

    byte[] myY = myReader.ReadBytes(4);

    my3DObject.x_pos = BitConverter.ToSingle(myX,0);

    my3DObject.y_pos = BitConverter.ToSingle(myY,0);

    my3DObject.z_pos = myReader.ReadSingle();

    my3DObject.x_rot = myReader.ReadSingle();

    my3DObject.y_rot = myReader.ReadSingle();

    my3DObject.z_rot = myReader.ReadSingle();

    my3DObject.self_lit = myReader.ReadByte();

    my3DObject.blended = myReader.ReadByte();

    my3DObject.padding = myReader.ReadBytes(2);

    my3DObject.r = myReader.ReadSingle();

    my3DObject.g = myReader.ReadSingle();

    my3DObject.b = myReader.ReadSingle();

    my3DObject.reserved = myReader.ReadBytes(24);

    string objectFileName = System.Text.Encoding.ASCII.GetString(my3DObject.objectFileName);

    if (objectFileName.Contains("banner"))

    {

    //debugging... remove later

    Console.WriteLine(objectFileName);

    Console.WriteLine("X = : " + my3DObject.x_pos);

    Console.WriteLine(BitConverter.ToString(myX));

    Console.WriteLine("Y = : " + my3DObject.y_pos);

    Console.WriteLine(BitConverter.ToString(myY));

    break;

    }

    }


  10. At 53a/59d/20p/20c I couldn't dodge them at all... I could kill them, but I got no defense exp. I have 10 more coordination now so I'll have to go back and try again but they seem a bit too strong on the attack side to me... (but I'm far from a pr0 fighter...)

     

    UPDATE: with the extra 10 coord I can dodge them now... so, perhaps it was just too low :P


  11. I bought a SoP back a bit (maybe 2 months at best) and it seems to be holding up great. I've probably killed a few hundred trolls/ogres with it and I love it so far (I do hate the idea that when it does degrage, poof... lol but oh well)

     

    I rarely have to heal using it so I'm getting about 5-10x the nomral experience over the same amount of reagents for fighting (health esses, SRs, etc...) With the new, lower price it seems well worth it to me...


  12. There are 2 points that no one has brought up yet. First up is the loony leopard. Who wants to risk life and limb (or gc and items) to trade with bots on C2 when they could lose everything they're carrying to lenny. That reduces trades to the time when lenny is asleep. Secondly, this bot free-for-all seems to have started when 'free hosting' started. If bots are to be moved, choose the ones that are getting a free ride. Between myself and LadyBea we have our own tiny 'shopping mall' in Tarsengaard. Tarsengaard is a scantily bot-populated map; loads of room for more bots or a marketplace.

    While I don't relish the idea of yet another arguement over this, I think you're giving free hosting the blame when you're not considering its positive effects.

     

    First, you may be right, free hosting may have indeed resulted in more bots. I'm not sure why this is seen as bad, I see it as an oppurtunity for those who can't afford to pay for hosting a chance to have a bot. Also, this _should_ mean that with more bots, more bricks to radu. Instead of paying 100$ a year for hosting, many of the 'previous' users of the pay services are now having more than one bot and buying more blessings with the money they save (more bricks...) Secondly, I'm not sure it's a good assumption that just because you pay, you're getting more.... That may indeed be a fact, but unless you've tried all the services (or at least have a good base knowledge of their differences,) it's probably not safe to compare them. Thirdly, as Pie pointed out, why should people get the bad end of the stick because they choose not to pay for hosting, the money paid for hosting doesn't benefit the game at all, so why would not paying detract?

     

    We're trying to help people with free hosting, not hurt people (or the game...) Please don't make us the scapegoat :)


  13. Would it be possible to have an option that made bots not visible if you turn the option to off? (kind of like ignore bots...) I know this is almost off-topic, and that I'm possibly smoking from the pipe of dreams again, but it seems like it could solve the issue without actually having to do much... If I walk through NC with ignore bots and "don't show bots" on, I'd see it as bot free :lurker:

     

    Just a thought...


  14. Josi's 2009 fees should be paid up. I thought she was due in Jan so I may have paid up a week late or so, sorry. (Here's the payment details in case you need them.)

     

    This email confirms that you have paid Eternal Lands Development Team (chaos_rift@yahoo.com) $20.00 USD using PayPal. (Dated 1/4/2009)

     

    --------------------------------------------------------------------------------

     

    Payment details

     

    Transaction ID: 4Y912695T07828205

    Item Price: $20.00 USD

    Total: $20.00 USD

    Order Description: Josi's annual bot payment


  15. To all the bot owners who say they like their bots current location:

     

    I am more likely to go to a marketplace, where I know there will be many bots selling many items at competitive prices than make a separate excursion to your bot.

     

    I'd rather go to a mall to go shopping then to a store in the middle of the boonies.

     

    as would many people i guess from seeing the votes.. but it kills any stratagy in running a bot.

     

    with so many bots in EL its very hard to find ways to make it profitable to keep up.. if you put all the bots together it kills strategy and would just start a evil price war with bots in a particular market..

    Evil price wars often add a nice new twist to games :( lol


  16. I voted yes, but I have an alternative suggestion for how to set this up. It might be one map for all the bots, and have lots of easy access to it from many maps. This way people could just pop into the marketplace and never see bots any where else (tradebots anyways...)

     

    I've seen this implemented on another game and it worked quite well... It really levels the playing field for all bots if the access to it is convenient enough... Maybe a marketplace teleporter on all/most maps... and a hub for exiting to certain maps.

     

    Just a thought :(


  17. I suspect that if anything new is coded based on number of items in inventory, something would be changed in the illegal multi rules to accomodate manipulating your storage to have 0 so you have better odds to get something good. Otherwise it defeats the whole purpose of coding it in the first place. Rules are always subject to change because new things get added ingame, people find new ways to manipulate them to get around them, etc etc etc. Never ever ever assume the rules are in stone especially when you are talking about coding new things that would make new major loopholes.

     

    Edit: That said, I also doubt something that easily manipulated would be ever coded. As mentioned, it isn't like we are going to say you can't trade with your friends now too, not to mention hyperspace bags...bots...I would doubt anything depending on what you have at any given time in inventory or storage would be a good option. Way too hard to control.

    Arg, never thought about hyper bags either, lol, good point ;)


  18. How would giving stuff to a third party be illegal multiplay? Should the artificer cape/perk be removed because that increases your chances too?

    Yeah I guess having a friend hold them does poke a hole in this, oh well, I tried... As far as the comment about the cape, like, wtf? I don't know what part of left field that came from but whatever...


  19. Anyway 2 of 3 points was negged from what i said about this suggestion:

     

    - It is illegal to interact with alt char (which i knew, just gave an example for people 'no risk, no fun' philosophy) so can't keep them there...

    - Bots are not available for everybody to keep thair stuff.

     

    But how about 3rd option ?

    Just give all of them to a friend before go to harvest ? So you will have 0 (and always best chance to get one) while harvesting, or more extremly you take all of them to harvest area, and drop to a bag or hyperbag = still you are seen by script that you have 0 :lurker:

    I you did that it might be considered illegal 3rd party to skirt the rules (at least that's what I'm thinking) also against the rules :P

     

    Well, I believe we miss the main point - what is a root cause of hoarding.

     

    A root cause of hoarding is always scarity, never abundance.

     

    So no matter what type of restriction you come up with, as long as there will be a shortage of rare items, people will be "hoarding" them, as much as they can afford.

     

    In order to stop hoarding you need to reach a balance of availability and demand. When people realize that they can get what they need any time at reasonable price, they will automatically stop hoarding.

    Aye, my hope was that this would make people want to sell them, to increase their chance of making more. Hence making them easier to get for everyone. But, for those that keep them for personal use 'later' they would have to buy them as they'd have little chance of making them :)


  20. I think I have the solution for this :)

     

    Would it be possible to base the odds of making rare items based on the number of that item you have in storage+inventory? So, a person 'hoarding' would have very little chance of making a rare, but the average joe, who can't find one, would have the best chance of making one.

     

    I think this would solve this issue at its core.

     

    Please don't flame me over this, just think it over and post your thoughts :) thanks....

     

    It might have a formula like this: if the standard odds were 1/10000, the modified odds would be 1/(number you have x 10000).

     

    It doesn't make sense to me for a very simple reason - no one who seriously produces anything that uses rare ingredients can rely on getting them without purchasing. Due to low chances of making EME & EFE or harving enrichment stones and binding stones probably all serious manuers and crafters need to buy these on the market. Also they need to gather quite a large amounts which are being considered hoarding by many, but for them are just minimum required for a small project to excel in their skill. Read ads on channel 3 where people ask to buy 20 bindings, 30 EFE's and 20k steel bars in one batch. And this is just for one "small project", in a few days they are be back trying to buy the same amount again. Not only that they struggle to get what they need to progress in their skill, shall they be additionally punished by lowering their chances to get anything rare by themselves?

     

    Disussion about hoarding in EL is like endless problem of lack of toilet paper in the former Soviet Block countries during communism era. Instead of creating circumstances that would allow to produce more and meet market needs, governments and the party were focusing on evil profiteers hoarding it ... :P

     

    Edit: spelling

    But this would make the person who uses them up have a better chance of making them than the person that 'hoards' them. I think that was what we're after here :)

     

    No, because before making just one dragon armor set for instance he'd have to gather 10 bindings and 4 EME's in sto, while others will have zero. So chances of skilled manuer will be decreasing with each rare item put in sto and will almost always be lower than that of a random non-manuer. What if he's stuck with 9 and unable to get 10th ? Shall he mix with 9 bindings taken away from sto annd put in a bag ? :lurker:

    Agreed, but that's the point. This would give them incentive to sell their stuff before making more. And would force them to buy more rare items hence stimulating the market more. As well as making hoarding for 'use' still make sense, but hoarding for 'profit' not make sense.

     

    To avoid hoarding RARE items on bots, they could be limited to the number of RARE items they could hold (not normal items....)

×