This is a read only copy without any forum functionality of the old Modcraft forum.
If there is anything that you would like to have removed, message me on Discord via Kaev#5208.
Big thanks to Alastor for making this copy!

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Rimewynd

Pages: [1] 2
1
Tutorials / Re: [TUTORIAL] How to Have Base Player Attributes > 255
« on: September 18, 2014, 02:50:45 am »
Ohhhhhh.... I get it!

Glad to know that, in this case, everything's alright. Thanks for the swift reply, schlumpf.

Wow, that is going to make sending anything 'new' between the server and the client tricky and hacky at best, and a royal mess at worse.  I'm really beginning to understand now why so many people looking to expand functionality are starting to consider writing it into things like add-ons to 'float' above the client.

Thanks for the education, that really helped me understand a few critical things that I just didn't know about the whole WoW-client-server-ecology beforehand. Certainly makes what I've been trying to do trickier, if not downright non-feasible, but it's nice to know that that's the case (and *why* that'd be the case). It'll help me make a more informed decision about what, exactly, I'm trying to do.

Cheers.

2
Tutorials / Re: [TUTORIAL] How to Have Base Player Attributes > 255
« on: September 18, 2014, 02:01:01 am »
@kojak488:

Thank you! First time I really made one for public consumption. Glad you found it helpful!


@schlumpf:

Really? That's fascinating. I had no idea that this would force undefined behaviour on the client's end.

I'm not entirely sure how to test for that, as while I understand a decent bit about programming, I'm still struggling to come to terms with a lot of WoW-modding stuff. Would it be fair/a good idea to put that warning at the beginning of the guide?

RE: The WoW client: I'm kinda dissatisfied with it in a number of ways, and I feel like half of what I'm doing is trying to circumvent it. I thought this had in an acceptable manor, but if using this is potentially harmful I ought to post a warning. I'm not entirely sure how *how* it'd be harmful off the top of my head, so if you're willing to education me I'd be really curious.

3
Serverside Modding / Re: Altering the player_levelstats beyond 255 [SOLVED]
« on: September 17, 2014, 08:57:00 pm »
Hey liush000.

I actually did a while back. I just (in a fit of stupidity) only PM'd the first person who asked.

The tutorial is here. Probably should go and edit the first post.

viewtopic.php?f=61&t=3939

Cheers, and good luck.

4
That's what I thought!

I try to stay away from platform-specific code in either case, but I'll just make doubly sure. Thanks a bundle, Schlumpf!

Marking this as solved.

5
Serverside Modding / [SOLVED] Moving Code Between OSes (TrinityCore)
« on: July 23, 2014, 08:36:37 am »
So, this is a bit of an oddball question - and is far more about programming in general than TrinityCore specifically - but here goes.

A lot of the stuff I tend to want to do involves core modding, which isn't exactly a problem. The (potential) problem is that the server is running a linux core, and my dev workstation is on windows. I'm not great at linux, and while I can run a local test server in a virtual machine it's proving hard going for me.

I've looked over all the things, and while I think this is possible, I wanted to see if I couldn't get a double check on this:

In theory, I ought to be able to install the windows version of everything, and - since I'm building my own core - download and build all the project files myself, on windows. And then, when I'm ready to update the live, simply send the new versions over to the server and do the whole cmake thing through the console (I'm competent enough to handle those few commands, at least).

My question is, 'is my theory wrong?' Or does this actually work?

6
Yes! Sorry, I ought to have specified. I was really tired when I made that post.

That's wonderful news. Thank you very much Ascathos.

Marking this as 'Solved'.

7
Serverside Modding / Re: [QUESTION] How to disable arena cap in cataclysm
« on: February 15, 2013, 08:00:46 am »
I don't really know a lot about the new cata-cores, however under Trinity in 3.3.5 there's a table called `battleground_template`, which is where the data you're looking for is stored.

I've looked at some of the tables for the new Cata-cores and they seem to be set up mostly the same, so you're probably looking for a similarly named table.

Hope it helps!

-Rimewynd

8
As a bit of an off-the-wall question, I was wondering if it was possible to link a single spell to two different requirements.

IE:

Spell ID || Required ID
28675   ||   28596
28675   ||   25211

The ID numbers above are made up, but I'm just wondering if anyone knows if this would work offhand. If not, I'm sure I'll toy with it, but I was wondering if this sort of arrangement was possible without changing or adding additional functionality.

9
Serverside Modding / Re: [LUA] Mists Of Pandaria CharacterCreate.lua help
« on: February 15, 2013, 07:50:13 am »
Quote from: "holyleen"
all rigth what type of programming should i learn ?  

That's not exactly the right question Holyleen.

I'll try to explain, and hopefully this will make sense. If not, lemme know.

There's a large difference between programming and programming languages.

Programming languages are the actual method by which one implements programming. While they all have their different quirks, none of them, themselves, are actually programming. Much like how any particular system of written character isn't exactly a language. For instance: Japanese can be successfully written in at least four different written languages, and you could still read it more-or-less as the words should be said.

Programming - as I think stoneharry means it - refers to what's often called 'Programming Logic and Design' which is the actual act of developing how a program will work and function, and learning how to understand how to intemperate a program's functionality. It's the common skill set you use to program in any language.

The reason why it's important to learn programming v. a programming language is that without actually understanding the nitty-gritty of how programming works you'll only have a grasp on what the language does - and not how to understand the underlying design behind it or how to rearrange that design to fully suit your needs.

I haven't seen a lot of tutorials on the web, but there's books on it. I did also dig up the following links, and I hope they help.

Stoneharry, if I'm completely off my nut and that's not what you're referring too, please feel free to trouslap me.

Da Linkz:

http://evaluationtoolbox.net.au/index.p ... Itemid=136

http://www.cprogramming.com/tutorial/thinking.html

http://suntor.org/programming+logic+and ... rials.html

http://www.hit.ac.il/staff/leonidM/info ... /ch55.html

10
General / Re: What MMO player are you?
« on: February 09, 2013, 03:20:06 am »
Quote from: "Nortwin"
Definitely strict RP.

I love immersive, engaging worlds where nobody goes retard and ruins the atmosphere.

Basically the above.

Honestly, my favorite thing to do is actually go questing and RPing at the same time (or even better, RP through an instance!), but I've known very few people of late who like doing that sort of thing, and a lot of MMOs are starting up with these time-trial things that are making that harder.

11
Tutorials / [TUTORIAL] How to Have Base Player Attributes > 255
« on: February 08, 2013, 07:47:11 pm »

[Author's Note]:



Well it took bloody long enough, didn't it?

To anyone who was looking for this guide much earlier, I apologize. I've had a really crazy second half of the year and that's slowed down most things WoW-modding related to a crawl for me.

This guide goes out to marx, who was the one who first wanted it. I hope it's still not too late to help.

This guide was written for the TrinityCore, but given that that's a fork off of MANgOS (did I get that right?) I'd guess it'd work there as well. In theory, the same basic idea could work for ArcEmu but not knowing ArcEmu I have no idea where you'd want to look for it.

WARNING (EDIT):

While doing this shouldn't cause any problems between your server and your client, please consider reading the replies to understand more about the delicate connection between them and how doing this sort of thing can, potentially, cause problems. This information kindly brought to you via the ever-knowledgeable schlumpf.

[Warning]:
This does alter the base code of your server. So, if you upgrade your core, then you will lose the modifications and you'll have to start all over again.

With that in mind, Let's begin.

[]A Guide to Raising Base Attribute Limits[]



[CORE]: TrinityCore
[WoW Version]:3.3.5a (WoLK)

Quote from: "[Goal
:"]

   The goal of this guide is to show you how to alter the limits on the player's basic attributes and attributes-per-level. This sort of thing is only really useful if you're planning to make some alterations to gameplay, or for your own amusement. While it's not actually that hard, it will require a server recompile and restart. If you've never installed a server before you should probably take a look at that and get a bit of a feel for it.
   
   Please note, while it's entirely possible to do this without knowledge of programming or databases, and just on working knowledge of computers such knowledge will make it easier.

Quote from: "[Goal
:"]
[Required Tools]:

   An editor capable of editing .cpp and .h Files (having a find feature will also be useful)
I personally use Notepad++, which I'd recommend highly to anyone. It's got some basic highlighting in there, too, so that helps. Get it Here
   
Having a method of access and editing your Databases.
      There's a bunch of different tools out there for this. Personally, I just use phpMyAdmin that comes with MySQL. Maybe not the best solution, but it's easy for me to access and modify whenever I want to.

Quote from: "[Goal
:"]
[Editing Targets]:

   Sourcecode Files:
   *servergameEntitiesPlayerPlayer.ccp
   *servergameEntitiesPlayerPlayer.h
   
   Databases:
   (World Database) :: (player_levelstats)


[Altering the Code]:


{
   Alright. Now that we're all set up, let's get started.
   
   First thing you'll need to do is open the two files "Player.cpp" and "Player.h".
   
   Navigate to the folder in which you have your sourcecode files.
   
   Select the "server" folder.
   
   Select the "game" folder.
   
   Select the "Entities" folder.
   
   Select the "Player" folder.
   
   You should now see two files: "Player.cpp" and "Player.h". You'll want to open them both up. I'll be covering the changes to "Player.h" first.

[attachment=9:2ttfkmim]05.png[/attachment:2ttfkmim]
   
   Normally, when you open the files they'll look something like this (my view is from Notepad++)
   
[attachment=8:2ttfkmim]06.png[/attachment:2ttfkmim]
   
   To make it easier to highlight just the sections we want, I'm going to fold all the brackets up. If you're new to Notepad++ what you need to do is go to the 'View' menu at the told and select 'Fold All'. You can also use the shortcut "Alt-0".
   
   If you haven't played around with C++ that much, you might want to consider reading the following hidden section. Otherwise, you can overlook it.

   
Quote from: "[Relevant C++ Info
:"]
      In C++ - an object orientated language - programs are broken down into objects, which both store and process data. C++ uses two different file types - .h and .cpp - to describe what a class is and how it works.
      
      .h files - or header files - contain a list of everything within the class, and will ocassionally describe their functioning. Functions that are described in the header files are refered to as 'inline' functions.
      
      .cpp files - or dot-c-plus-plus files - when used for classes contain descriptions of the functioning of the elements of the class.
      
      Within the TrinityCore, all players are built using the Player class, and we'll need to change one of both types of functions to allow players to have base stats higher than 255.
   
   
   The reason we're in Player.h is because there's an inline function named "PlayerLevelInfo" We're going to do a search for it.
   
[attachment=7:2ttfkmim]10.png[/attachment:2ttfkmim]
   
   Once we're there, you'll notice two instances of a uint8 datatype. (As far as I know) this function is actually responsible for getting the data from the databases, and the uint8 are the datatypes responsible for holding those numbers. Unfortunately, no matter what gets put in the databases, uint8 can't store a value over 255.
   
[attachment=6:2ttfkmim]11.png[/attachment:2ttfkmim]

   Because I want to have a much wider range available, I'm going to use uint16, which will let me get up to  65,535. Since I only plan to use up to four digits maximum, this gives me plenty of room. And have lots of room to play around with stat ranges if I decide I want to scale up.
   
   If that's not going to be enough for you, you can always move up to a uint32, which should get you up to 4,294,967,295. If you need stats larger than that I'll be stunned.
   
   With the changes, my copy now looks like this:
   
[attachment=5:2ttfkmim]12.png[/attachment:2ttfkmim]
   
   I'd advise moving to the end of the line and adding a comment (type "//" then continue typing your message on the same line) to mark the place so you can find it in the future if you need to change it again.
   
   Once you're done save and switch over to "Player.cpp"
   
   This time, we're looking for a function that assigns the stats every level. You'll want to do a search for "Player::InitStatsForLevel". It's important to include the 'Player::' because otherwise you'll find not only where that function is described, but every single time the class would ever use it.
   
   Once you get there, you should more or less see this:
   
[attachment=4:2ttfkmim]13.png[/attachment:2ttfkmim]
   
   Once again, we need to go in and alter a pair of uint8s. There's more uint8s there than just these two, but these are the only ones we actually need to change.
   
[attachment=3:2ttfkmim]14.png[/attachment:2ttfkmim]
   
   Once again, I've set mine to be uint16s. Go ahead and save the file. Once you've done that, if you haven't been modifying the originals used to compile your server you'll need to overwrite the origins so that when you recompile the server will take these changes into affect.
   
   With that completed, let's move on to the databases.


[Changing the Database]:



   Now, before we begin to make some changes, let's take a look at some relevant data. Steer your browser on over to the following location:
   
   http://archive.trinitycore.info/Player_levelstats_tc2
   
   Scroll down (or do a find-search) until you reach "Description of the fields" What you want is the descriptions of the "race" and "class" fields, as show below:
   
[attachment=2:2ttfkmim]17.png[/attachment:2ttfkmim]
   
   With those two keys, we are ready to edit the hell out of the stats. :)
   
   Log into your database.
   
   Once logged in, select your 'World' table (usually named 'World') and scroll down until you see the table titled "player_levelstats"

[attachment=1:2ttfkmim]18oops.png[/attachment:2ttfkmim]

   Now, before we can change anything, we'll need to make sure that the actual datatypes for our database can hold the kind of number we want to put in there.
   
   Go ahead and use whatever method your database editor provides to edit the structure of this particular table. I believe default type for all the stats in this table is Tinyint(3), which caps them at a 3 digit number. You'll want to upgrade them all to smallInts. You should only really need a Smallint(3), which will let you have up to 32,767 inside each one.
   
[attachment=0:2ttfkmim]19oops.png[/attachment:2ttfkmim]

This allows you to store the larger numbers that your server can now accept. I've already made the changes to mine. Here's how you'll make the changes to yours.
   
   Open up whatever tab or method you use to execute SQL scripts for your database (mine's built into the interface) and prepare to do an update. What you'll need to enter is something like this:
   
   UPDATE `player_levelstats` SET `str`=[value-1],`agi`=[value-2],`sta`=[value-3],`inte`=[value-4],`spi`=[value-5] WHERE `race`=[race number],`class`=[class number], `level`=[level number]
   
   Each of the value-[number]s is where you'd insert whatever number you wanted (don't keep the bracket) that stat to be for whatever race, class, and level you specified. If you don't want one of the variables, simply remove it. For instance, I wanted my basic stats to be the same at every level for all races and classes, so I simply used the format:
   
   UPDATE `player_levelstats` SET `str`=[value-1],`agi`=[value-2],`sta`=[value-3],`inte`=[value-4],`spi`=[value-5] WHERE `race`=[race number],`class`=[class number]
   
   Once the update has been done, you'll need to recompile your server using your modified "Player.h" and "Player.cpp". Recompiling and restarting will also take care of the server accepting the changes you've made to the database.


   And voila! That's it!

Cheers!

~Rimewynd

12
Modelling and Animation / [QUESTION] M2Mod Error
« on: February 07, 2013, 06:41:11 pm »
So I've been looking around the forums to try and find a solution to this, but either it doesn't exist, my search-fu is weak, or I'm failing to recognize the answer where I see it.

I've tried everything I could think of - from getting a different copy of the original mesh, to changing the directory to having everything selected/deselect in blender. Hopefully the answer's really obvious and I'm just not seeing it.

[WoW Version]:
3.3.5a / WoLK

[What I've Been Trying to Do]:

I've been trying to convert the human male .M2 into a .m2i and bring it into blender to do some edits to it. Then I've been attempting to re-export it back out as a .m2i and re-convert it into a .M2.

I've been successful in converting it into a .m2i and opening it in blender. I've even managed the edits fine (reducing the enormous shoulder width) and appear to be exporting it as a .m2i fine.

[The Issue]:

Once I have the edited .m2i and the original .M2, I altered my .m2i settings to be the following:

[input]
InputM2 =   D:Temporary SwapfileHUMANMALEHumanMale.m2
#OutputM2I =   D:Temporary SwapfileHUMANMALEHumanMale.m2i
InputM2I =   D:Temporary SwapfileHUMANMALEHumanMaleUpdate.m2i
OutputM2 =   D:Temporary SwapfileHUMANMALEHumanMale.m2

[options]
#SubmeshPositionalTolerance = 1.0005
#SubmeshAngularTolerance = 60.0
#BodyPositionalTolerance = 0.0005
#BodyAngularTolerance = 90.0
#ClothingPositionalTolerance = 1.0005
#ClothingAngularTolerance = 45.0
#IgnoreExtras = 1
#MirrorCamera = 1

[debug]
ShowVersion = 1
Verbose = 1

('ve tried it with different options on and off, but that hasn't seemed to help)


Here's the results I end up getting. And it's always the same results, so at least I'm getting it consistently wrong.  :roll:



Not really having any experience with this before, I'm not sure what this is. If anyone could point me in the right direction with regards to solving this I'd appreciate it.

Cheers,

-Rimewynd

13
Serverside Modding / Re: Custom UI and Gameplay
« on: November 04, 2012, 07:46:59 pm »
Hey Jenova11.

Although I tend not to post much here (I tend to be both A) busy and B) an amateur in a lot of ways compared to these guys) I can offer you some answers (although not all of them) from my own research and attempts to modify a TC server to my liking.

I primarily speak English, and even then I'm not particularly good at understanding things if they're not spelled out to the letter, so if I end up answering something you didn't ask about I'm probably misunderstanding you. ^.^;;;


Question: Is it possible to radically change the gameplay in world of warcraft?

Answer: Almost certainly. All of the gameplay is controlled by the server with some assistance from the client. Both the server and the client need the same information in their shared files, but it's doable.

I'm currently working on getting my server to handle the player's primary and secondary stats very differently, and so far there's been no real problems (except when I mess up the code. :P)


Question:       Add one-fourth talent tree

Answer: Although I haven't done it myself, (I haven't gotten there yet) I know it's entirely possible to alter, remove, or even add talent tress. I actually read a how-to on this somewhere. I think I bookmarked it, so I'll start going through the bookmarks and trying to see if I can't turn it up.


Question:      -Radically changing the allocation system such talents as the game with allods ruby.

Example ruby on the game allods online.
Each lvl in addition to winning a talent point saves ruby to validate a checkbox.

Answer: You mean something like... Confirm that they want to spend a talent point there? There's already a system for that in place in WotLK, (3.3.5a) and although it seems a little glitchy under Trinity it seems like it could modified to server that purpose.

Question: And more generally through a client development Lua / XML interface for server and core (mangos) can add your new system?

Answer: I can't speak directly for MANgOS or however it's written, as I use Trinity. But Trinity forked from Mangos, so I expect that the answer's likely the same.

Trinity only currently has a prototype LUA scripting engine for the server, but you should be able to use LUA/XML to modify the client GUI as it's built on that. In fact, this is what Blizzard does: From what I've been able to figure out, most of the 'changes' to the Blizzard GUI are actually only 'Add-ons' that the client installs and automatically uses. You'd probably need to learn how to work with Add-ons, but with that knowledge you could alter the GUI.

If you wanted to make changes to the core descriptions and things (IE: races and classes information at the character select screen) that's trickery. The information is still in XML/LUA format, but it's stored within .MPQs in your data<region> folder (IE: for me it's dataenUS). That's a little trickier to modify as it  does seem to be validated - or possibly checked - by the client or the server in some way. But I've seen others bypass it, so I know you can change it. I'm just not sure how.

Not-Really-A-Question: If the answer is positive the possibility deviene truly infinite.
-Game Store
Novel mechanism-
New location-equipment ...

Answer:

At least with Trinity Core, you can write additional scripting to handle all sorts of things, and I've seen someone host a server before that allowed you to switch between resource mechanics, so I know all kinds of things are possible.

New locations and equipment aren't exactly easy, but the people on this board are experts about them, and you can see a lot of the awesome work they've done along with a few guides on various facets of it.

I'm not entirely sure what you meant by 'game store', but the most likely answer is that's possible to.

I hope this helps reassure you about what the actual limits of WoW-modding might be, as long as you're willing to put forth the time to actually effect the changes; and maybe even helps answer some of your questions.

Cheers,
-Rimewynd

14
Thank you both for your comments and thank you Eatos for pointing me on the right track!

It's been a while since I've been around and I've actually since figured it out entirely.  :lol:

To answer, in reverse order:

RE: Eatos

 Eatos, I did know about the storage thing, though I thank you for checking!  ;)

If I'm understanding you correctly, you're talking about the DB side of things, which wasn't the problem ultimately. If not, and you're referring to the core, then under Trinity the change in the core has to go from uint8 to uint16.

RE schlumpf:

I've found that it actually doesn't seem to connect through the client at any point. It might appear in the client but as far as I can tell all the operations seem to be running from Core to DB and then back to Core.

To anyone who's reading:

I've officially found my solution and it works thus far, so the issue could be considered solved. If anyone out there is interested in this I'd be happy to create a short little how-to on the steps I went through to do this.

I might not be around very much for the next couple weeks, but I'll check back as soon as I'm able and post up the solution I came up with for anyone that wants it.

Cheers!

15
Serverside Modding / Re: Item Balancer
« on: March 15, 2012, 12:29:55 am »
Interesting! I have two questions (one of which may reveal my semi-noobish nature).

1) In this equation the variable 'i' is itemLevel, right?

2) What language are you using? I don't seem to be able to place some of the command syntax.

Pages: [1] 2