Kami's Palace

NOT IN THE MANGA™
★ Black Lounger ★
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Jan 5, 2008
Messages
3,276
Best answers
0
Location
Lithuania
You create an entity through code. You set its properties. You hook the event when the player's entity touches this custom entity. You teleport the player through code.

Either I don't get something or your knowledge is limited when it comes to entities, since you're more of a mapper than a coder.
 
Member
✔️ HL Verified
🌟 Senior Member
Joined
Oct 16, 2006
Messages
379
Best answers
0
Location
the Netherlands
You create an entity through code. You set its properties. You hook the event when the player's entity touches this custom entity. You teleport the player through code.

Either I don't get something or your knowledge is limited when it comes to entities, since you're more of a mapper than a coder.
I think Grega meant that the touch callbacks aren't working anymore and since you can't detect touches on non-brush entities(I think), it will be pretty much imposible for the mappers to create such a map.
Still I don't see any problems creating an AMXX script which can do this with a few lines of code, after all, the only thing we need is just to do a radius check if any player is near and change the player's position.
 
NOT IN THE MANGA™
★ Black Lounger ★
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Jan 5, 2008
Messages
3,276
Best answers
0
Location
Lithuania
I think Grega meant that the touch callbacks aren't working anymore and since you can't detect touches on non-brush entities(I think)
... That doesn't make any sense.
 
Member
✔️ HL Verified
🌟 Senior Member
Joined
Oct 16, 2006
Messages
379
Best answers
0
Location
the Netherlands
... That doesn't make any sense.
And why's that ? Like Grega stated, brush entities seem to be entities to which players can interact with. I would imagine the coders have reworked the collision detection system without implementing the old features like ontouch.
 
Freelance Mappzor
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Nov 21, 2003
Messages
17,065
Best answers
0
Location
Stairing at the Abyss
Brush entities are entities that you tie to a brush. They are physical objects in the map. They can be used as triggers in which case the entity takes the brush and if anything would collide with the brush it triggers an event without actually having a physical bounding box.

Now for a teleport to work in a HL1 map you need 2 entities.

The first is a teleport destination. This is a point based entity thats designated by a set of 3 coordinates followed by its settings. Those we can add with XML files.

The second is the trigger_teleport which needs to be tied to a brush in hammer. A cube that designates an area from where all players are tleported to the destination. But since we are no longer using brushes and are working outside the HL1 standard grid system (something that causes a map to not compile if you do with hammer) we would need to rewrite the entire brush based entity system to work for our maps AND make it interact with the existing point based entities of the old system.
 
NOT IN THE MANGA™
★ Black Lounger ★
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Jan 5, 2008
Messages
3,276
Best answers
0
Location
Lithuania
Brush entities are entities that you tie to a brush. They are physical objects in the map. They can be used as triggers in which case the entity takes the brush and if anything would collide with the brush it triggers an event without actually having a physical bounding box.

Now for a teleport to work in a HL1 map you need 2 entities.

The first is a teleport destination. This is a point based entity thats designated by a set of 3 coordinates followed by its settings. Those we can add with XML files.

The second is the trigger_teleport which needs to be tied to a brush in hammer. A cube that designates an area from where all players are tleported to the destination. But since we are no longer using brushes and are working outside the HL1 standard grid system (something that causes a map to not compile if you do with hammer) we would need to rewrite the entire brush based entity system to work for our maps AND make it interact with the existing point based entities of the old system.
But I'm talking exactly about the fact that you DON'T NEED BRUSH ENTITIES. Brush entities are set by the mapper and HL had some useful entities (that you mentioned) that the mapper could use for teleport in his map to happen. Such entities (with all the other ones) are now gone. Fine. BUT. Without that, it's still relatively easy through code, which is my entire point which apparently nobody seems to get.
 
Last edited:
Freelance Mappzor
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Nov 21, 2003
Messages
17,065
Best answers
0
Location
Stairing at the Abyss
Green was trying to integrate brush based entities to work with our XML system back when the maps were recreated. He wasnt able to do it. Because HL apparently uses a weird coordinate specification system for brush based entites. Not really sure about the details.

In any case as i guess AMXX code works by spawning a brush with a speciffic size and uses that as the entity. But thats still limited to the HL1 map area, which we are already out of.
 
NOT IN THE MANGA™
★ Black Lounger ★
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Jan 5, 2008
Messages
3,276
Best answers
0
Location
Lithuania
In any case as i guess AMXX code works by spawning a brush with a speciffic size and uses that as the entity. But thats still limited to the HL1 map area, which we are already out of.
What does AMXX have to do with anything here... And I think you can spawn entities outside the HL map area. EDIT: Yes, you can.
 
Last edited:
Freelance Mappzor
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Nov 21, 2003
Messages
17,065
Best answers
0
Location
Stairing at the Abyss
What does AMXX have to do with anything here... And I think you can spawn entities outside the HL map area. EDIT: Yes, you can.
Not with hammer. Just having an entity outside the skybox will crash the compiler.

Besides as i said the problem is something green could explain better than me. I only know the gist of what he was saying.

It was something about translating geometry of the brush in to a coordinate system that would work. As far as i can remember he had trouble even finding out how HL itself does that.

Regardless any statement i make on the topic are only guesses from memories, since i was pushing green on the subject when the entities were being placed within the XML translations for the map. And back then he said he couldnt do it without recreating them.
 
NOT IN THE MANGA™
★ Black Lounger ★
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Jan 5, 2008
Messages
3,276
Best answers
0
Location
Lithuania
Not with hammer. Just having an entity outside the skybox will crash the compiler.

Besides as i said the problem is something green could explain better than me. I only know the gist of what he was saying.

It was something about translating geometry of the brush in to a coordinate system that would work. As far as i can remember he had trouble even finding out how HL itself does that.

Regardless any statement i make on the topic are only guesses from memories, since i was pushing green on the subject when the entities were being placed within the XML translations for the map. And back then he said he couldnt do it without recreating them.
But you're only talking about these brush entities, as if they're the only thing that can let you do stuff. I'm NOT talking about brush entities and not even about mapping...
Players themselves are entities, whose IDs range from 1 to <number of server slots (max 32)> with a class name of "player" (possibly different in ESFF) and you can create other entities with different class names (HL's limit was 4096, AFAIK). Some pre-defined class names were usable in Hammer (like "trigger_teleport"), to tell the game what actions to perform.
Now I somehow find it hard to believe that this entity thing was changed to an extent that you wouldn't be able to simply go and create new entities, set its properties (class name, model, origin and much more). Through code, you're free to spawn the entity anywhere you want, even let's say at (99999.9, 99999.9, 99999.9) coordinates, which are way outside of the default HL map boundaries.

Back to the point: I'm saying that it's easy to create a teleporter though code, and you're talking about mapping stuff. So what the ****?
 
Freelance Mappzor
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Nov 21, 2003
Messages
17,065
Best answers
0
Location
Stairing at the Abyss
Players are point based entities, teleports are brush based entities.

We can teleport players round with console commands at will, but that does not account for a working teleport system in a map.

The whole point of this debate was a map with a teleport. And not just making people teleport round at will though code, or did you miss that point?
 
NOT IN THE MANGA™
★ Black Lounger ★
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Jan 5, 2008
Messages
3,276
Best answers
0
Location
Lithuania
At will? What the ****?
You're totally not getting my point. Did you try re-reading?

You don't need a pre-defined (or "brush", like you say, but that's probably only used among mappers) entity like "trigger_teleport" to make a teleport. You can code all that shit!

It doesn't ******* matter what kind of entity it is. It doesn't matter if it's a "point-based entity". Hell, I can make PLAYERS work as teleporters.

"Or did you miss that point?"

Basically, this:

As long as there are entities, I see it easy to implement.
 
Last edited:
Project Manager
🌠 Staff
✔️ HL Verified
💻 Oldtimer
Joined
Nov 25, 2001
Messages
1,729
Best answers
0
uhm. We have a working teleporter system, just saying. Nonetheless as it is right now, Kami's Palace and Rosat have not been merged. One reason is that we have a more complicated system for the environment than a simple skybox. We could probably find a way to do it anyways but since we want to finish ESF some day we are focusing on other things these days.
 
Earth's Guardian
✔️ HL Verified
🚂 Steam Linked
Discord Member
Joined
Oct 23, 2010
Messages
290
Best answers
0
uhm. We have a working teleporter system, just saying. Nonetheless as it is right now, Kami's Palace and Rosat have not been merged. One reason is that we have a more complicated system for the environment than a simple skybox. We could probably find a way to do it anyways but since we want to finish ESF some day we are focusing on other things these days.
So can u make the teleporter a final priority (no pun intended)
 
Freelance Mappzor
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Nov 21, 2003
Messages
17,065
Best answers
0
Location
Stairing at the Abyss
It doesn't ******* matter what kind of entity it is. It doesn't matter if it's a "point-based entity". Hell, I can make PLAYERS work as teleporters.
Because using a single point entity thats invisible or a sprite where you have to be dead center of it to be used as a teleport is so efficient.

Im not saying its not possible, im saying it requires a rewrite of the entity system. But if you feel like its really so easy than why not join and do some coding?

Its simply to much work for something thats not needed. We are using only 1 HL entity. And thats the spawn point.
Doors: We dont have them
Water: We have our own
Effects: generated VIA FX manager using XMLs
Teleports: Never a good idea in ESF due to the way the game is. (abusable for runing away easily)

Thats all entities ever did. And we use the spawn point as the only thing. So a rewrite is just a waste of time unless like i said you want to do it.
 
Last edited:
NOT IN THE MANGA™
★ Black Lounger ★
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Jan 5, 2008
Messages
3,276
Best answers
0
Location
Lithuania
Because using a single point entity thats invisible or a sprite where you have to be dead center of it to be used as a teleport is so efficient.

Im not saying its not possible, im saying it requires a rewrite of the entity system. But if you feel like its really so easy than why not join and do some coding?

Its simply to much work for something thats not needed. We are using only 1 HL entity. And thats the spawn point.
Doors: We dont have them
Water: We have our own
Effects: generated VIA FX manager using XMLs
Teleports: Never a good idea in ESF due to the way the game is. (abusable for runing away easily)

Thats all entities ever did. And we use the spawn point as the only thing. So a rewrite is just a waste of time unless like i said you want to do it.
You create a single entity. And set its properties so it would call a function when a player touches that entity. In that function, you teleport the player to certain coordinates which were set for that entity. It's that easy. Seriously, what system rewrites are you talking about when it's a matter of a few lines... And the efficiency wouldn't be a tad worse than what it was with "trigger_teleport".
The "spawn point" entity is all that's needed for this.

... Unless it's for some reason no longer possible to get when the player touches the entity.
 
Last edited:
Freelance Mappzor
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Nov 21, 2003
Messages
17,065
Best answers
0
Location
Stairing at the Abyss
... Unless it's for some reason no longer possible to get when the player touches the entity.
You know im not sure about that one. Especially since the player collisions have been rewritten with the new map system.

As for the entity. Again i pushed green on making brush based entities possible, but sadly he said he cant do it. And since we are not using any entities except for spawn points (which havent really been placed in any maps yet so all people spawn at the origin point) i dont see a sufficient enough reason to add something like that when all teleports do is hinder gameplay. There was a reason why they were not used by mappers in the previous versions when ever that could be avoided. They simply mix badly with gameplay. So unless you are making a map that wont be used but will make people go "wow" the first time playing it, teleports are useless in ESF.

But thats my opinion. If any coder decides otherwise, its their choice. And if you want to write those "few lines of code" as you say, go ahead and contact Raven about it.
 
NOT IN THE MANGA™
★ Black Lounger ★
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Jan 5, 2008
Messages
3,276
Best answers
0
Location
Lithuania
I'm against the teleport idea. I'm just saying that it's relatively easy to do, even without "trigger_teleport". I could give you an AMXX example without "trigger_teleport", though. Want it?
 
Freelance Mappzor
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Nov 21, 2003
Messages
17,065
Best answers
0
Location
Stairing at the Abyss
AMXX doesnt help with the SDK. It works differently. Especially since it works like one big hack in between the engine and the DLL files ^^

Besides anything we do would need to be set up to work with the XML system so people could actually use it.
 
NOT IN THE MANGA™
★ Black Lounger ★
✔️ HL Verified
🚂 Steam Linked
💻 Oldtimer
Joined
Jan 5, 2008
Messages
3,276
Best answers
0
Location
Lithuania
AMXX doesnt help with the SDK.
If you're able to do something with AMXX, then obviously you can do it with SDK, as AMXX derives from SDK. I didn't say that the AMXX way would work, I just suggested to give you an example so you'd understand what I mean. Anyway, here it is.

PHP:
// This is where the plugin is initialized
public plugin_init()
{
	// Create a custom entity.
	// Not sure what's the exact classname for the said
	// spawn point entity, so I used "spawn_point".
	new ent = create_entity("spawn_point");
	
	// Set its coordinates.
	// Can be any values, like 99999.9, 99999.9, 99999.9.
	entity_set_origin(ent, Float:{13561.0, 64262.0, 4362346.0});
	
	// Now we set the coordinates of where the entity
	// teleports the player to.
	entity_set_vector(ent, EV_VEC_vuser1, Float:{53252.0, 252523.0, 12312.0});
	
	// Alter the entity's classname.
	// This should get rid of its initial function to work
	// as a spawn point for players. If not, some additional
	// actions should be made to identify this entity as not
	// a spawn point.
	entity_set_string(ent, EV_SZ_classname, "my_teleport");

	// There are other properties that need to be set, like entity's model
	// (invisible), size, if it's solid or not, etc. But I don't find it necessary
	// to do this here since it's only an example.
	
	// Now we hook the event when
	// "player" entity touches "my_teleport" entity.
	register_touch("my_teleport", "player", "OnPlayerTouchTeleport");
}

// This is called when player touches teleporter
public OnPlayerTouchTeleport(ent, client)
{
	// All what's left is to teleport the player to
	// the desired coordinates.
	new Float:origin[3];
	entity_get_vector(ent, EV_VEC_vuser1, origin);
	entity_set_origin(client, origin);
}
Again, this wouldn't necessarily work as I'm not even sure if AMXX works with ESFF itself. I'm showing you how it's possible to make a teleporter manually, as long as entities exist.
 
Last edited:

Users who are viewing this thread

Top Bottom