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 - Toolwut

Pages: [1]
1
Bugs, Feature Requests, and Feedback / New game modes
« on: September 29, 2021, 03:14:57 PM »
It might allow for some cool custom game modes, if there would be more in-game events logged and admin commands had more influence on what happens in-game.

For example, trigger_multiple or func_buttons could automatically (or as an option) log Player, Team and targetname. Then on the other side, commands e.g. for killing a player with a certain ID or giving score to a team could be added. Maybe even a command to trigger entities from outside of the game by their targetname.

Overall, those features would empower rcon tools like DPLib and would allow for more complex logic and custom game modes that are not possible with the current entities (and don't require  being explicitly added to the game dll).

2
Let me start with a new error:

PB_droptofloor: item_pballhopper startsolid at (-... ... ...) - what does this mean?

As of right now, target_spawners can only spawn entities with "default settings". That means, only item_ entities and flags. Items throw that error above, but could be used as a sort of reward: Player gets behind enemy lines / reaches a certain position and team gets more ammo / some gun spawns disappear for the enemy team. Flags could be used to simply give more points per cap the longer you wait. This is pretty limited.

It would be far better, if you could give a target_spawner keyflags of the entity to spawn. You could e.g. "toggle" trigger_pushes, reset non-resettable entities, relocate spawns. Change spawns depending on team progress (build a counter for how many players spawn and give better or worse items when the number increases). Spawn more pong balls the further you are into a match. Trigger_spawns would then suddenly be super useful and some entity features wouldn't have to be implemented directly (-> resettable entities).

Also, while typing this I got
SZ_GetSpace: overflow
WARNING: msg overflowed for ___.
Netchan_Transmit: dumped unreliable
-> target_spawners are fun :)

3
Mapping / Flags falling through entities on round start
« on: October 23, 2020, 12:35:03 PM »
I'm conceptualizing a payload map where you would have a func_train shaped like a car or something having a flag on top. Defenders keep the attackers from grabbing the flag.

When I try to make the flag spawn on a func_train or func_wall it actually spawns on the floor. When I grab and drop it, it collides with entities as expected. When I reset it with a trigger_hurt it spawns on the floor again.

Is this a bug, or do I have to toggle some spawnflag?

4
http://panjoo.tastyspleen.net/rust/tutorials/func_button/func_button.html says "Lip is the length of the button that is offset after being activated. So if you have a large lip value then more of the button will stick out after being pressed in.". I understand this as "set a lip value equal to the length of the button in the direction it will move, it won't move at all".

I made a func_button with a size of (64 units)³, set "angle 90" and "lip 64" but the button moves. setting "lip 66" makes it entirely static.

5
Mapping / Need help: Toggleable way to (de-)accelerate pong balls?
« on: October 13, 2020, 11:14:16 AM »
Title says it all.

trigger_push with push_all set does what I want, but I can't toggle (de- and reactivate) it. Also, setting something other than info_notnull as target (like a func_wall which can be toggled) will make the trigger push you into a random direction. https://leray.proboards.com/thread/2553/info-null-notnull says that info_notnulls can move, is there such a possibility in DP2?

func_conveyor is toggleable but doesn't affect the pong ball (and apparently doesn't affect any entities https://forums.digitalpaint.org/index.php?topic=3131.msg36720#msg36720).

My plan B would be to accelerate them with func_trains / func_doors but that will be hacky and probably unreliable in terms of timing.


6
Beta / In-Progress Maps / Inprogress: tictactoe_a1
« on: September 26, 2020, 01:51:46 PM »
Intended for 1v1, pgp-only, no nades.

How to: Get 3 in a row to win.

Shoot a button on your side of the map to place a circle / cross. In the map version appended, the two rooms aren't separated so you can test the map solo (which can easily be exploited in 1v1, so be fair).

** Place cross.jpg and circle.jpg in pball/textures/test/ **

What is missing?

I don't know how to reset all entities once the round is over. Maybe someone can help. Other option is to set fraglimit to 1 so after one round the match ends. Doesn't work for tie though ... how can I give both teams 1 point?

Nades spawning with the player destroy the whole concept - is there a way for a mapper to disable nade spawning?

How does this work?

After you have shot a button, your control panel is temporarily "disabled" aka hidden behind a brush. The button you shot gets permanently disabled, the corresponding button for the other player as well. Now the other player can make his move.
The field in the center works with func_trains teleporting up / down.
A winner is determined by using trigger_counters. 3 for all rows, 3 for all columns, 2 for diagonals and all of that for each team. Once a trigger_counter reaches 3, the loser is killed with a trigger_hurt so that the winner gets a point on the scoreboard (and the match ends when fraglimit 1 is set).

Things I noticed while building this:

As stated on other threads, wasn't able to make func_buttons with "health" "1" team-specific. Apparently on an older waits, team-specificity was introduced for trigger_multiple, also didn't work for me (maybe this was removed).
Trigger_hurts need to have the spawnflag toggle set to be toggle-able. Setting start_off and nothing else apparently makes them entirely useless.

... An entity (and a command) that can give a specified team points would be great, not only for this "gamemode" but also for others like whoa's oddball


7
General Development / Console Tricks
« on: August 02, 2020, 07:46:03 AM »
Might turn this into a guide at some point since the console is an important part of the game (especially since neither the official menu nor any menu mod contains all commands and cvars).

*Note: all the key specific things apparently only work for my (German) layout. Other layouts might require you to use different keys.*

Basic stuff:
- Console can be opened by pressing ^ or Shift+´
- Console allows changing your settings (console variables), calling functions (commands) and chatting. At some point everyone starts using it.
- You can get a list of all commands by typing "cmdlist" and a list of all console variables by typing "cvarlist". Incomplete explanations can be found at
    - http://web.archive.org/web/20090612040933/http://digitalpaint.therisenrealm.com/reference/commands
    - http://digitalpaint.org/testwiki1/pb2wiki.php?word=Commands+and+Settings
    - http://www.otb-server.de/wbblite/dp_commands.php?action=uebersicht&showall=1&sid=
- Didn't know this for a very long time: Start writing a command, then press TAB and it autocompletes the command / lists all possible commands
- Make a text italic by pressing Ctrl+i, underlined by pressing Ctrl+u, colored by pressing Ctrl+k and then a certain key that represents the color you want
- Change your name to a fun text by typing "name <fun text>" or for a multi word name "name '<fun text>'"
- Bind a fun text to a key by using "bind <key> '<fun message>'"
- Write to public chat, even if it's a command by writing "say" in front of your text, or "say_team" if you want to write it to your team mates only
- Ctrl+l (small L) clears the console history

More advanced stuff:
- You can get values of client-sided cvars by typing "$<cvarname>". If you want to insert that value into a string (e.g. for a bind), use "$<cvarname>$" if you want to add letters after the cvar value without a space in between.
- You can list directory contents of your gamedir (default is pball) using the "dir" command. If you want to list all beta maps, type "dir maps/beta/*.*". If you want to list all jpgs in your pics folder, type "dir pics/*.jpg". If you want to list all maps starting with t type "dir maps/t*.*". To list all maps with a t, any letters in between, and another t, type "dir maps/t*t*.*".

- To set custom integer variables, use "set <name> <value>". To remove it, type "unset <name>".
- To increase a cvar by a certain value, use "cvar_inc <name> <value to add> <optional: min value of the cvar> <optional: max value of the cvar>"
- To toggle a cvar, use "cvar_toggle <name>"
- To store a string or command in a variable, use "alias <name for the alias> <whatever to store>". This is for example useful for more complicated commands / scripts. Calling "<name of the alias>" will then executed whatever you stored inside.
- To bind multiple commands to a key / store in an alias, separate them with a ";". Sometimes you will have to insert one or multiple "wait;" between those so they're both executed and in the right order. (Thanks whoa)

- To get a list of binds, use "bindlist".
- To see what is bound to a certain key, type "bind <key>"
- To see what key a command is bound to, type "$bind(<command>)"
- To execute a command when a key is pressed or released, create an alias "alias +<name> <command>" (or "-<name>") and "bind <key> <alias>". If the alias name starts with "+" it will be triggered when a key is pressed, when it starts with "-" it's triggered when the key is released.

- To store your current settings to a separate config file, use "writeconfig <name>".
- To switch to a different config, use "exec <configname>".

- Directly go to a specific menu file: "menu <name>" (used that either for testing or to go to "menu setup_funname" :) ).

Commands I consider useful to know
- "info" returns server information (and related commands)
- "developer 1" will print debugging information
- "game <game>" switches to a different game dll, allows to use e.g. the Q2Jump mod locally (if you downloaded it and placed it in the right directory). This automatically changes "gamedir".
- Download stuff from a server that isn't autodownloaded (-> used by a different map): "download <path to file, relative to the server's 'gamedir'>"
- connect to the server you visited last: "connect $menu_server"
- "condump <filename>" writes all the current console history into a txt file
- Changing certain video settings requires to "vid_restart"
- As mentioned before, "wait" is useful for executing multiple commands in a row. Technically, it skips a frame / does nothing over the course of one frame.


Then there is obviously other stuff like changing your console appearance, making loc binds or creating locs, better look that up in a different thread or elsewhere ("loc_help" tells you all you need to know about that topic though).

Is there more about the console you wished you had known earlier as a player?

8
Paintball 2 Discussion / Promote map remakes | Overwrite maps
« on: August 01, 2020, 06:53:51 AM »
Posting this here because I think it's mostly relevant to players.

A lot of maps have been created in a time, when PCs were far more limited than nowadays. That's why many currently popular maps are geometrically more spartanic than necessary, have bad lighting etc. Also, excessive playing gives many clues about how maps could be improved. There are already a bunch of finished or abandoned map remakes, e.g. of crates, sandtrap, xbmap, shock, daylight, italy, wobluda, propaint1.

The issue nowadays is that map remakes are hardly accepted by the community. Using many maps that are far below even the DP2 engine's capabilities makes the game look far more ugly than it actually is. At the same time it suggests to mappers that they could also spend their time differently, players stick to what they know anyway.

My suggestion would be overwriting the original bsp file. For the extra nostalgia, it could be kept under a different name / in a different subdirectory. I think that many improved map versions are simply not played because everyone is used to typing "newmap <mapname>" instead of thinking for ages about the remake's name when it has the same gameplay anyway. If e.g. "newmap blitz" would be reserved for the latest accepted version of blitz, admins (/people with login on a matching server) wouldn't have to keep all the different versions in mind. Similar to an opt-out system that works better than opt-in in real life, this would promote the usage of map remakes.

This thread is NOT about who decides what *the* remake is nor about getting permission from the mapper.

I'd like to know what you think about this. DP could look a lot better if players wouldn't stick to the same ugly map versions they've played for decades which in turn could make the game more attractive for new players. This would also in theory allow for continuous refinement of maps so minor parts of maps could be adjusted to improve gameplay. The same system works in games like cs:go where popular maps are being maintained and keep the original name, while at the same time private servers can load whatever map version they want.

Some random eye candy of how much better this game could look with updated map versions.

Sandtrap:


Daylight:


Wobluda (the _fix could finally be removed then) sewers:

9
Always thought this game needs more (and at some point hopefully good) KOTH maps, this is my first attempt. Couldn't actually playtest it yet so I'm eager for feedback.

2 teams, stingray, spawns are on bottom of hill/mountain, hill obviously on top of it.

Idea was to have a layout similar to stack but where holding the hill is more complicated (maybe too complicated: hill isn't all of the hilltop, more ammo only further down, additional walls to block visibility + you have a stingray).  Ideally I'd want this to be dynamic, hill possession often changes and noobs can enjoy a low skill ceiling.

Also released the .map file, you can do with it whatever you want.

The map is my very first try on koth, I'll try again later in the future :p

10
Not sure how motivated you are in terms of handling unlikely stuff like this but md2 models where the header information regarding size and offsets of lumps is too large crashes my dp client (using wine on linux) so maybe same happens for windows clients or even servers. If someone ever happens to have a map containing such a model on his server that might cause some trouble. In case I'll ever finish my blender exporter people might start producing tons of those broken model files

11
I just thought, that md2 import script I released today (https://forums.digitalpaint.org/index.php?topic=28727.0) can be well used to re-texture models .. e.g. the local view model is free to modify for everyone. Unfortunately, for some models, regions used from the skin file are used by multiple faces, so you couldn't easily give the barrel in the front of a gun a certain color without also changing the color of other parts of the model. Hard to explain, see the screenshots.

My question is - is there a reason for it, and could this nowadays with hr4 be resolved? Would be cool to have more high quality gun skins like the one from promarijan (https://forums.digitalpaint.org/index.php?topic=27139.msg247385;topicseen#msg247385) but without weird fragments later in-game.

(BTW blender has this texture paint mode where you can easily draw on the skin and the model changes and vice versa, perfect for editing skins)

12
I didn't figure the details out yet but I think all the important parts.

general information about the format and how to load such files:
http://tfc.duke.free.fr/old/models/md2.htm
https://linux.ucla.edu/~phaethon/q3a/formats/md2-schoenblum.html#glCommandVertex_st

specific information about animations:
http://www.mbsoftworks.sk/tutorials/opengl3/24-animation-pt1-keyframe-md2/
MD2 files don't store animations as a list of frames with a set frame rate but stores "keyframes". Frames in between are generated by linear interpolation, you just have to know how many frames there are to generate when loading an MD2 object. Quake 2 has a predefined list of animations so you couldn't simply animate a tree or something. Those animations are defined for player models (citing myself: https://forums.digitalpaint.org/index.php?topic=28720.0). Also, not sure yet if the keyframe labels (e.g. "wave1") are actually required.

For lighting, the dp2/q2 engine needs surface normals (to calculate how light bounces off a surface). MD2 files don't store them directly as a vector, but (probably for keeping the file size low?) stores indices to a normal list. Those indices are probably generated by finding the normal that's most similar to the actual one. The normal list (https://www.gamedev.net/forums/topic/511911-does-md2-contain-normals--where-are-they/) is

static const float MD2_NORMAL_TABLE[162][3] = {   {-0.525731f, 0.000000f, 0.850651f},   {-0.442863f, 0.238856f, 0.864188f},   {-0.295242f, 0.000000f, 0.955423f},   {-0.309017f, 0.500000f, 0.809017f},   {-0.162460f, 0.262866f, 0.951056f},   {0.000000f, 0.000000f, 1.000000f},   {0.000000f, 0.850651f, 0.525731f},   {-0.147621f, 0.716567f, 0.681718f},   {0.147621f, 0.716567f, 0.681718f},   {0.000000f, 0.525731f, 0.850651f},   {0.309017f, 0.500000f, 0.809017f},   {0.525731f, 0.000000f, 0.850651f},   {0.295242f, 0.000000f, 0.955423f},   {0.442863f, 0.238856f, 0.864188f},   {0.162460f, 0.262866f, 0.951056f},   {-0.681718f, 0.147621f, 0.716567f},   {-0.809017f, 0.309017f, 0.500000f},   {-0.587785f, 0.425325f, 0.688191f},   {-0.850651f, 0.525731f, 0.000000f},   {-0.864188f, 0.442863f, 0.238856f},   {-0.716567f, 0.681718f, 0.147621f},   {-0.688191f, 0.587785f, 0.425325f},   {-0.500000f, 0.809017f, 0.309017f},   {-0.238856f, 0.864188f, 0.442863f},   {-0.425325f, 0.688191f, 0.587785f},   {-0.716567f, 0.681718f, -0.147621f},   {-0.500000f, 0.809017f, -0.309017f},   {-0.525731f, 0.850651f, 0.000000f},   {0.000000f, 0.850651f, -0.525731f},   {-0.238856f, 0.864188f, -0.442863f},   {0.000000f, 0.955423f, -0.295242f},   {-0.262866f, 0.951056f, -0.162460f},   {0.000000f, 1.000000f, 0.000000f},   {0.000000f, 0.955423f, 0.295242f},   {-0.262866f, 0.951056f, 0.162460f},   {0.238856f, 0.864188f, 0.442863f},   {0.262866f, 0.951056f, 0.162460f},   {0.500000f, 0.809017f, 0.309017f},   {0.238856f, 0.864188f, -0.442863f},   {0.262866f, 0.951056f, -0.162460f},   {0.500000f, 0.809017f, -0.309017f},   {0.850651f, 0.525731f, 0.000000f},   {0.716567f, 0.681718f, 0.147621f},   {0.716567f, 0.681718f, -0.147621f},   {0.525731f, 0.850651f, 0.000000f},   {0.425325f, 0.688191f, 0.587785f},   {0.864188f, 0.442863f, 0.238856f},   {0.688191f, 0.587785f, 0.425325f},   {0.809017f, 0.309017f, 0.500000f},   {0.681718f, 0.147621f, 0.716567f},   {0.587785f, 0.425325f, 0.688191f},   {0.955423f, 0.295242f, 0.000000f},   {1.000000f, 0.000000f, 0.000000f},   {0.951056f, 0.162460f, 0.262866f},   {0.850651f, -0.525731f, 0.000000f},   {0.955423f, -0.295242f, 0.000000f},   {0.864188f, -0.442863f, 0.238856f},   {0.951056f, -0.162460f, 0.262866f},   {0.809017f, -0.309017f, 0.500000f},   {0.681718f, -0.147621f, 0.716567f},   {0.850651f, 0.000000f, 0.525731f},   {0.864188f, 0.442863f, -0.238856f},   {0.809017f, 0.309017f, -0.500000f},   {0.951056f, 0.162460f, -0.262866f},   {0.525731f, 0.000000f, -0.850651f},   {0.681718f, 0.147621f, -0.716567f},   {0.681718f, -0.147621f, -0.716567f},   {0.850651f, 0.000000f, -0.525731f},   {0.809017f, -0.309017f, -0.500000f},   {0.864188f, -0.442863f, -0.238856f},   {0.951056f, -0.162460f, -0.262866f},   {0.147621f, 0.716567f, -0.681718f},   {0.309017f, 0.500000f, -0.809017f},   {0.425325f, 0.688191f, -0.587785f},   {0.442863f, 0.238856f, -0.864188f},   {0.587785f, 0.425325f, -0.688191f},   {0.688191f, 0.587785f, -0.425325f},   {-0.147621f, 0.716567f, -0.681718f},   {-0.309017f, 0.500000f, -0.809017f},   {0.000000f, 0.525731f, -0.850651f},   {-0.525731f, 0.000000f, -0.850651f},   {-0.442863f, 0.238856f, -0.864188f},   {-0.295242f, 0.000000f, -0.955423f},   {-0.162460f, 0.262866f, -0.951056f},   {0.000000f, 0.000000f, -1.000000f},   {0.295242f, 0.000000f, -0.955423f},   {0.162460f, 0.262866f, -0.951056f},   {-0.442863f, -0.238856f, -0.864188f},   {-0.309017f, -0.500000f, -0.809017f},   {-0.162460f, -0.262866f, -0.951056f},   {0.000000f, -0.850651f, -0.525731f},   {-0.147621f, -0.716567f, -0.681718f},   {0.147621f, -0.716567f, -0.681718f},   {0.000000f, -0.525731f, -0.850651f},   {0.309017f, -0.500000f, -0.809017f},   {0.442863f, -0.238856f, -0.864188f},   {0.162460f, -0.262866f, -0.951056f},   {0.238856f, -0.864188f, -0.442863f},   {0.500000f, -0.809017f, -0.309017f},   {0.425325f, -0.688191f, -0.587785f},   {0.716567f, -0.681718f, -0.147621f},   {0.688191f, -0.587785f, -0.425325f},   {0.587785f, -0.425325f, -0.688191f},   {0.000000f, -0.955423f, -0.295242f},   {0.000000f, -1.000000f, 0.000000f},   {0.262866f, -0.951056f, -0.162460f},   {0.000000f, -0.850651f, 0.525731f},   {0.000000f, -0.955423f, 0.295242f},   {0.238856f, -0.864188f, 0.442863f},   {0.262866f, -0.951056f, 0.162460f},   {0.500000f, -0.809017f, 0.309017f},   {0.716567f, -0.681718f, 0.147621f},   {0.525731f, -0.850651f, 0.000000f},   {-0.238856f, -0.864188f, -0.442863f},   {-0.500000f, -0.809017f, -0.309017f},   {-0.262866f, -0.951056f, -0.162460f},   {-0.850651f, -0.525731f, 0.000000f},   {-0.716567f, -0.681718f, -0.147621f},   {-0.716567f, -0.681718f, 0.147621f},   {-0.525731f, -0.850651f, 0.000000f},   {-0.500000f, -0.809017f, 0.309017f},   {-0.238856f, -0.864188f, 0.442863f},   {-0.262866f, -0.951056f, 0.162460f},   {-0.864188f, -0.442863f, 0.238856f},   {-0.809017f, -0.309017f, 0.500000f},   {-0.688191f, -0.587785f, 0.425325f},   {-0.681718f, -0.147621f, 0.716567f},   {-0.442863f, -0.238856f, 0.864188f},   {-0.587785f, -0.425325f, 0.688191f},   {-0.309017f, -0.500000f, 0.809017f},   {-0.147621f, -0.716567f, 0.681718f},   {-0.425325f, -0.688191f, 0.587785f},   {-0.162460f, -0.262866f, 0.951056f},   {0.442863f, -0.238856f, 0.864188f},   {0.162460f, -0.262866f, 0.951056f},   {0.309017f, -0.500000f, 0.809017f},   {0.147621f, -0.716567f, 0.681718f},   {0.000000f, -0.525731f, 0.850651f},   {0.425325f, -0.688191f, 0.587785f},   {0.587785f, -0.425325f, 0.688191f},   {0.688191f, -0.587785f, 0.425325f},   {-0.955423f, 0.295242f, 0.000000f},   {-0.951056f, 0.162460f, 0.262866f},   {-1.000000f, 0.000000f, 0.000000f},   {-0.850651f, 0.000000f, 0.525731f},   {-0.955423f, -0.295242f, 0.000000f},   {-0.951056f, -0.162460f, 0.262866f},   {-0.864188f, 0.442863f, -0.238856f},   {-0.951056f, 0.162460f, -0.262866f},   {-0.809017f, 0.309017f, -0.500000f},   {-0.864188f, -0.442863f, -0.238856f},   {-0.951056f, -0.162460f, -0.262866f},   {-0.809017f, -0.309017f, -0.500000f},   {-0.681718f, 0.147621f, -0.716567f},   {-0.681718f, -0.147621f, -0.716567f},   {-0.850651f, 0.000000f, -0.525731f},   {-0.688191f, 0.587785f, -0.425325f},   {-0.587785f, 0.425325f, -0.688191f},   {-0.425325f, 0.688191f, -0.587785f},   {-0.425325f, -0.688191f, -0.587785f},   {-0.587785f, -0.425325f, -0.688191f},   {-0.688191f, -0.587785f, -0.425325f},};

The worst thing in the end: md2 files contain a list of GL_TRIANGLE_FAN and GL_TRIANGLE_STRIP commands. Those increase the fps by rendering less vertices or something. Obsolete in modern engines according to people in the internet. This might show how they work https://i.stack.imgur.com/sfQdh.jpg . I don't know yet what might be a good / the best way to calculate these commands but just SOMETHING should be enough in 2020.

These are probably just notes for my future self or nobody at all, but when I started working with .md2 files I hated the lack of actually relevant information in these forums so I'm sharing what I found out. If someone decides to give this a try he might want to know that the only animated MD2 model in this game is the flag model which jitspoe also wants to replace by a .skm model for getting better animations.


13
I bookmarked some useful pages when I worked on my .md2 import script (https://forums.digitalpaint.org/index.php?topic=28727.0). Since blender likes doing API changes e.g. many from 2.7x to 2.8x and python does the same (blender 2.8x uses python 3.7) scripts and add-ons always have to be kept up-to-date.

https://blender.stackexchange.com/questions/61879/create-mesh-then-add-vertices-to-it-in-python - The bottom answer (dunno how to link replies from stackexchange without an account) shows how to create an object in blender from a list of vertices and faces

https://blender.stackexchange.com/questions/162256/bpy-prop-collection-object-has-no-attribute-link - Shows an API change that caused trouble for me when I copy and pasted some old code

https://devtalk.blender.org/t/selecting-an-object-in-2-8/4177/2 - same here

https://blenderartists.org/t/module-dev-reloading-a-module/359775/5 - (the reply below the linked one) explains how to reload a module. Since the blender text editor isn't super comfortable I wrote most of the code in an external file in a different IDE (Pycharm is good for python). Changing that file requires manually reloading it in the main file in blender. Also explains importing modules from custom directories.

https://blender.stackexchange.com/questions/36902/how-to-keyframe-mesh-vertices-in-python and https://blender.stackexchange.com/questions/78262/animation-of-dupliverts-with-shape-keys-with-python-api - In blender you can animate individual vertices, necessary when you're importing animated 3D models

https://blender.stackexchange.com/questions/53709/bmesh-how-to-map-vertex-based-uv-coordinates-to-loops/53808 - shows how to assign uv coordinates to faces. required later assigning a uv map

https://blender.stackexchange.com/questions/27001/mesh-object-has-no-attribute-uv/27003 - don't remember why I needed this, I think it says that you assign uv coordinates to triangles (aka. each vertex in a triangle) instead of directly assigning them to a vertex

https://blender.stackexchange.com/questions/118646/add-a-texture-to-an-object-using-python-and-blender-2-8 - to add the uv texture/skin

https://docs.blender.org/manual/en/latest/files/media/image_formats.html - why jitspoe should remove all pcx images: modern software doesn't support that format anymore

https://blenderscripting.blogspot.com/2012/08/adjusting-image-pixels-internally-in.html - you can still edit an image pixel by pixel in blender or even create a new one. This way you could build a pcx loader / import any unsupported format

14
Sorry don't know how to call this. How to reproduce:

Start new post
Attach a non-supported file type (or probably something else like exceeding the file size limit)
Hit submit
Get an error
Go back
Fix and try posting again -> nothing will happen

Unfortunately means that you have to reload and attach all the files again. I think I already experienced this before the forum migration ..

15
General Development / WIP Blender 2.8x MD2 Importer
« on: April 15, 2020, 02:47:33 AM »
Since there has been no native .md2 support in blender since version 2.4x (2009!) or something and there apparently are no working community made .md2 add-ons for later versions I thought I'd start writing my own one.

What can this importer (!) do so far?
load an MD2 object in blender
either attach the skin linked in the .md2 file or a custom one
load and run animations (in DP2 all animated .md2 files are the flag models in pball/players/male and pball/models/items/flag)

What is missing?
proper error handling (some .md2 files store broken skin pathes (some of the gun models) or ones to files that don't exist)
aligning the animation keyframes to the fps used for the different animations (see https://forums.digitalpaint.org/index.php?topic=28720.msg259085#new)
.pcx is no longer natively supported by blender so I used a different package that unfortunately loads all skins as grayscale ... instead of fixing this I'd prefer jitspoe to finally replace all remaining pcx skins with jpg/png (or tga)

How to install the importer?
put the (extracted) script (attached) somewhere and follow this guide: https://github.com/rlguy/Blender-FLIP-Fluids/wiki/Addon-Installation-and-Uninstallation
install PIL (for loading .pcx files) - use the ensurepip answer here: https://blender.stackexchange.com/questions/5287/using-3rd-party-python-modules

So far this importer isn't useful for anything else but inspecting models (.skm aren't supported btw so you cannot load those models). But it can probably be turned into an import/export script easier than by starting from scratch. Oh and you can export the UV layout in blender and replace a model skin with it, gives a wireframe-ish effect (only on offline servers of course) :).

I'd be thankful for feedback regarding the installation, errors during execution, code readability (coding in blender isn't much fun) etc.

16
General Development / Flag animation frames
« on: March 25, 2020, 09:21:23 AM »
Hello there,

I started looking a bit into md2's and realized that they don't contain the times between two frames .. I tried finding them in the dp code but didn't have any success with finding them (please don't tell me they're in the .dll ...).

Can someone post them please?

Also, just wondered, are flags the only animated md2 models in the game, is everything else static or .skm?

One last thing: Are flag models (6 frames) limited to exactly these 6 frames or could you add more to create more complex animations?

Thanks in advance :)

17
When I filter the feature vote list for only open ones it is dominated by requests from far before build 41. If someone requests an actually good feature it will never be possible to reach 327 upvotes, or at least reach enough upvotes to be displayed on the first page.

If features haven't been included in the last build they should be marked as "in progress" or "closed" or something similar, indicating that the idea is so bad/unrealistic that it will NEVER be included or that it is already decided to include it. I don't like seeing "open" votes from 2008 (that's already 11 years ago btw!!). In 2019 it will be an astonishing majority to reach 5-10 upvotes on a feature request, so these should have a chance to be displayed on top then.

To keep it short: Remove old feature requests, mark them as something else than "open" or remove the whole feature vote system if they don't have an impact anyway please :)

(I know this means work but I don't like the feature voting as it is)

18
Beta / In-Progress Maps / New map: botanic garden
« on: March 21, 2019, 10:20:25 AM »
Game mode CTF, 1 flag per team, pgp-only, 3 points per cap

Contains more or less hard (speed) jumps for fast gameplay and to motivate players to spend some time learning the map, relatively open layout to ensure some good fights and to prevent a focus on capping instead of fighting. Some less complex brushes were added outside of the playable area so the map hopefully feels a bit larger than it actually is.

On last social saturday many people experienced the bug of getting kicked for having corrupt files, this got fixed by shortening the "requiredfiles" string (thank you, jitspoe).

This is my very first map for dp or any other game so I learned most stuff on the fly and hope to learn more about good mapping now through proper feedback on my map :) .

A huge thank you to whoa for teaching me all I wanted to know about mapping and providing his server for testing early versions of my, and to all the guys in the Level Design channel on Discord who answered my many questions and helped me fix some bugs in my map (JMR, FourthX, Unibonger, sort, jitspoe etc.)!

Plans for the next version:
- Make the map a bit easier for beginners (e.g. provide an easy way out of the lower ice path, thank you for that suggestion, jitspoe)
- Properly align the planket textures (Thanks 3lf)
- Fix floating brushes (Thanks 3lf)

Pages: [1]