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.
Topics - schlumpf
16
« on: July 04, 2012, 05:45:46 pm »
In the past days, I have integrated the wiki and bug tracker into the forum more deeply. For example, you no longer have a different account for them.
This might have resulted in some bugs on those parts of the forum. If you encounter any, please reply to this thread with a description.
Have fun using those things more easily.
17
« on: June 05, 2012, 10:59:33 am »
There had been some requests for custom brushes, being squares, random or dependent on terrain height / slope. Well, that might be possible and come in the future. What is needed for this? LUA. function brush_random (_, _, _, _, _, _) return math.random() end
function brush_square (_, _, _, _, pos_x, pos_y) local radius = size_x local inner_radius = 0.8 local outer_radius = 0.2 if pos_x > 0.2 and pos_y > 0.2 and pos_x < 0.8 and pos_y < 0.8 then return 1.0 end return 0.0 end
function brush_circle ( center_x, center_y , size_x, _ , pos_x, pos_y ) local radius = size_x local inner_radius = 0.8 local outer_radius = 0.2 local dist = distance ( center_x, center_y , size_x, size_x , pos_x, pos_y ) if dist > radius then return 0.0 end if dist < inner_radius then return 1.0 end return (1.0 - (dist - inner_radius) / outer_radius) end
It is now required to think of a good API for the brushes to be able to make height dependent ones and register them nicely with noggit with supplying parameters like hardness or the range for random brushes etc.
18
« on: May 21, 2012, 01:55:03 am »
Usage scenarioFor the purpose of patching binaries like wow.exe, it is useful to have tools accepting a pattern with wildcards and data to put where the pattern was found. For example, you may want to change the first occurrence of "f*o" to start with "b" in the data "barf0obaz". To do so, you would create the binary pattern "66 ?? 6f", which equals to "f*o". You then want to replace that with "62", which equals "b". By applying that pattern replacement, you end up with "barb0obaz". With this tool, you can easily do that. Technical informationThe tool is written in C++11 and uses CMake to setup project files. It makes heavy usage of lambdas. DownloadsI recompiled this: https://www.dropbox.com/s/f1nqxp26bw9keyg/binary_pattern_replace.zip?dl=0
Some patternsAllow local files ( Forget MPQ: don't pack anymore) - Windows (tested on 12340): "E8 ?? ?? ?? ?? 6A 00 E8 ?? ?? ?? ?? 6A 02" "90 90 90 90 90 6A FF"
- OSX (tested on 15464, 15689): "E8 ?? ?? ?? ?? C7 04 24 00 00 00 00 E8 ?? ?? ?? ?? C7 04 24 02 00 00 00" "90 90 90 90 90 C7 04 24 FF FF FF FF"
Allow badly signed MPQs to be loaded ( Sending Patches To The Client Through The WoW App) - Windows (tested on 12340): "55 8b ec 8b 45 1c 8b 4d 18 8b 55 14 53 68 ?? ?? ?? ??" "55 8b ec b9 05 00 00 00 8b 45 0c 89 08 b8 01 00 00 00 5d c2 18 00"
- OSX (tested on 15689): "C7 44 24 18 ?? ?? ?? ?? 8b 45 1c 89 44 24 14 8b 45 18" "b9 05 00 00 00 8b 55 0c 89 0a b8 01 00 00 00 c9 c3"
19
« on: May 19, 2012, 08:18:02 pm »
Removing Particle Emitters From a ModelTo remove particle emitters from a model, you have to remove particle emitters from the model. This is done by setting the number of particle emitters to zero. To do so, use any hex editor you can find and set the number of particle emitters to zero. What To Do?Change the number of particle emitters to zero. Do so by opening the file in a hex editor and set the number at the offset for the number of particle emitters to zero. You may also set the offset to zero. You can find the offset in the wiki.Tool For The Lazy#include <cstdio> int main(int, char** argv) { FILE* f (fopen (argv[1], "rw")); const int null (0); fseek (f, 0x128, SEEK_SET); fwrite (&null, 4, 1, f); fwrite (&null, 4, 1, f); fclose (f); return 0; }
20
« on: May 19, 2012, 08:17:45 pm »
Removing Ribbon Emitters From a ModelTo remove ribbon emitters from a model, you have to remove ribbon emitters from the model. This is done by setting the number of ribbon emitters to zero. To do so, use any hex editor you can find and set the number of ribbon emitters to zero. What To Do?Change the number of ribbon emitters to zero. Do so by opening the file in a hex editor and set the number at the offset for the number of ribbon emitters to zero. You may also set the offset to zero. You can find the offset in the wiki.Tool For The Lazy#include <cstdio> int main(int, char** argv) { FILE* f (fopen (argv[1], "rw")); const int null (0); fseek (f, 0x120, SEEK_SET); fwrite (&null, 4, 1, f); fwrite (&null, 4, 1, f); fclose (f); return 0; }
21
« on: May 19, 2012, 08:16:59 pm »
Removing Lights From a ModelTo remove lights from a model, you have to remove lights from the model. This is done by setting the number of lights to zero. To do so, use any hex editor you can find and set the number of lights to zero. What To Do?Change the number of lights to zero. Do so by opening the file in a hex editor and set the number at the offset for the number of lights to zero. You may also set the offset to zero. You can find the offset in the wiki.Tool For The Lazy#include <cstdio> int main(int, char** argv) { FILE* f (fopen (argv[1], "rw")); const int null (0); fseek (f, 0x108, SEEK_SET); fwrite (&null, 4, 1, f); fwrite (&null, 4, 1, f); fclose (f); return 0; }
22
« on: May 19, 2012, 08:16:38 pm »
Removing Events From a ModelTo remove events from a model, you have to remove events from the model. This is done by setting the number of events to zero. To do so, use any hex editor you can find and set the number of events to zero. What To Do?Change the number of events to zero. Do so by opening the file in a hex editor and set the number at the offset for the number of events to zero. You may also set the offset to zero. You can find the offset in the wiki.Tool For The Lazy#include <cstdio> int main(int, char** argv) { FILE* f (fopen (argv[1], "rw")); const int null (0); fseek (f, 0x100, SEEK_SET); fwrite (&null, 4, 1, f); fwrite (&null, 4, 1, f); fclose (f); return 0; }
23
« on: January 31, 2012, 03:47:33 pm »
Please use this thread on synchronizing what you want to change in Noggit, which ideas are good etc.
Please implement the following construct to use settings somewhen soon. ("assigned" to Mjollna.)
class application { // ... public: QVariant setting (const QString& key) const { return _settings.get (key); } void setting (const QString& key, const QVariant& value) { emit setting_about_to_change (key, setting (key)); _settings.set (key, value); emit setting_changed (key, value); }
signals: void setting_about_to_change (const QString& key, const QVariant& value); void setting_changed (const QString& key, const QVariant& value); };
// examples on how to use:
class foo_bar : public QObject { Q_OBJECT
public: foo_bar (QObject* parent) : QObject (parent) { connect ( app() , SIGNAL (setting_changed (const QString& key, const QVariant& value)) , SLOT (setting_changed (const QString& key, const QVariant& value)) ); } public slots: void setting_changed (const QString& key, const QVariant& value) { if (key == "paths/game") { LogDebug << "game path changed to: " << value.toString().toStdString() << std::endl; } } };
class settings_dialog : public QWidget { // ... settings_dialog( ...) { connect (antialiasing_box, SIGNAL (valueChanged (int)), SLOT (set_antialiasing (int))); connect (app(), SIGNAL (setting_changed (const QString&, const QVariant&)), SLOT (setting_changed (const QString&, const QVariant&))); }
void set_antialiasing (int value) { app().setting ("antialiasing", value); }
void setting_changed (const QString& key, const QVariant& value) { if (key == "antialiasing") { antialiasing_box.setValue (value.toInt()); } } };
24
« on: January 12, 2012, 06:29:01 pm »
This might be a slightly older version though. No idea. http://d.pr/WKWs
25
« on: January 12, 2012, 10:09:09 am »
Well, most of the stuff done right now is getting stuff to work with a new UI framework. We are redesigning the whole interface and at the same time, cleaning up stuff. New features are mostly UI features.
There is no real roadmap though. People just do what the feel doing. Also, there are no deadlines or anything, so development also is randomly distributed.
26
« on: December 24, 2011, 12:13:14 am »
Changes will come to beta "soon".
27
« on: November 06, 2011, 03:04:12 pm »
Even if you really failed at describing the problem, the issue is, that the log of your modelviewer outputs differently than Noggit expects. This results in the path not being recognized correctly and therefor not finding it in an MPQ and not adding it.
There is no way to fix that except for finding the correct version of the modelviewer, that Steff used for writing that code or copying from the log to the textfile and importing that way.
28
« on: August 31, 2011, 09:59:17 pm »
You now have the possibility to follow the active development of the Noggit 3 Beta on twitter at @Noggit3 Changes we make and commit to the repository will be listed there immediately. You can also use this to communicate with the developers directly or ask questions.
29
« on: August 24, 2011, 07:59:03 pm »
For those wanting an "encryption" for their MPQs, take this. ----------------------------------------------- FuckItUp - Partly fuck up an MPQ to protect it. (c) Schlumpf 2011 -- DO NOT DISTRIBUTE. ----------------------------------------------- >> Usage: ./FuckItUp inputmpq [outputmpq]
30
« on: August 21, 2011, 02:06:03 pm »
Hej Folks, don't be surprised if this posting slightly varies from schlumpf's usual postings - it's not him posting but it's da me, tazjin. As some of you might be aware the world's largest gaming convention, the GamesCom, is currently taking place in Germany. Since both schlumpf and I live there we decided to attend it after my mother's wedding (yes, this part is entirely unimportant to the actual subject). We also decided to print t-shirts that have name <#wow.dev> on the front and the NoggIt logo on the back, just because fuck you. I paid a little over 60€ for that but it was well worth it. At the GamesCom we 'accidentally' stumbled upon Blizzard who, after a very interesting StarCraft II match (the Zerg always wins), decided to hold a signing session with several executives and developers including people such as Tom Chilton and Frank Pearce. Guess what we got them to sign? Here's a picture: Even though most of them didn't seem to know what they were signing (they certainly recognised it was the Noggenfogger icon) at least the last one (he looked a little like a dwarf but we couldn't see his nametag because some hysterical fat fan was jumping up and down right before it) definitely recognised what NoggIt was and leaned in to his colleagues to start talking about us. Then we left. Mission complete. tazjin & schlumpf
|