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.


Topics - schlumpf

Pages: 1 [2] 3
16
General / Integration of wiki and bug tracker
« 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
Noggit / Custom Brushes
« 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.

Code: [Select]
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

Usage scenario


For 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 information


The tool is written in C++11 and uses CMake to setup project files. It makes heavy usage of lambdas.

Downloads


I recompiled this: https://www.dropbox.com/s/f1nqxp26bw9keyg/binary_pattern_replace.zip?dl=0

Some patterns


Allow 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
Tutorials / Removing Particle Emitters From a Model
« on: May 19, 2012, 08:18:02 pm »

Removing Particle Emitters From a Model


To 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


Code: [Select]
#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
Tutorials / Removing Ribbon Emitters From a Model
« on: May 19, 2012, 08:17:45 pm »

Removing Ribbon Emitters From a Model


To 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


Code: [Select]
#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
Tutorials / Removing Lights From a Model
« on: May 19, 2012, 08:16:59 pm »

Removing Lights From a Model


To 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


Code: [Select]
#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
Tutorials / Removing Events From a Model
« on: May 19, 2012, 08:16:38 pm »

Removing Events From a Model


To 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


Code: [Select]
#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
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.)
Code: [Select]
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
Noggit / Re: [BUG] 263 Mac Won't Launch
« on: January 12, 2012, 06:29:01 pm »
This might be a slightly older version though. No idea.

http://d.pr/WKWs

25
Noggit / Re: [QUESTION] Current state of Noggit development?
« 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
Noggit / Noggit development around christmas.
« on: December 24, 2011, 12:13:14 am »



Changes will come to beta "soon".

27
Noggit / TODO: Getting filename to import from model viewer is bugged
« 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
Noggit / Follow the active development on twitter.
« 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
Resources and Tools / [TOOL] [MPQ] FuckItUp
« on: August 24, 2011, 07:59:03 pm »
For those wanting an "encryption" for their MPQs, take this.
Code: [Select]
-----------------------------------------------
FuckItUp - Partly fuck up an MPQ to protect it.
 (c) Schlumpf 2011 --  DO NOT DISTRIBUTE.
-----------------------------------------------
>> Usage: ./FuckItUp inputmpq [outputmpq]

30
General / NoggIt-Shirts signed by Blizzard Execs
« 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

Pages: 1 [2] 3