Ideas for CS2D - READ THE FIRST POST (OP)!
3,231 replies @
DC:
inentityzone: I see, understandable.
Unforunatly I wanted to be able to use those zones as rooms instead of having to do the rooms through Lua (which I consider slower to loop through rooms on the
movetile hook, rather than just checking if the player is in the right room (with entity name) through one command.
But that's not a dealbreaker.
turretscan:
In that case, I suggest adding these two commands:
hasinrange(x,y,range,type) -- Checks if a player is in range of a position.
inrange(x,y,range,type) -- Lists the players in range.
This will make sure the players are close AND do not have a raycast wall between them and the position.
The
Another nice addition would be
isinside(sx,sy,x1,y1,x2,y2) so we can easily check if something is inside a room.
All of these are easily done with Lua, but that means they're also slower.
Currently, in order to achieve the same result, it's non practical in Lua, at least for heavy servers such as mine.
EDIT:
closemenu(p)
Will close a player's menu, and call the menu hook with button 0 (cancel).
EDIT:
An option to enable pistol auto-fire when
mp_recoil is enabled? Something like
mp_pistols_auto_fire.
EDIT:
Can we have some kind of
pre_connect hook? Or perhaps move the
connect hook a bit earlier in the connection process?
There's many reasons to have that, one of which is that the
leave hook can still be called even if the player never actually joined, and that shouldn't really happen IMO.
Also, there's more benefits to the
connect hook actually get called when the player attempts to connect, rather than a few steps before the
join hook.
There's a few more reasons, but if any of the developers are interested, I can explain the rest through PM/DM.
EDIT:
projectile_throw hook.
player ID (0 if thrown by server (
parse))
projectile ID
weapon type ID
And possibly player rotation and position, to make the hook more efficient.
returns:
0 - default - continue as normal
1 - cancel - don't throw (will still consume the item (to not delay player throwing projectiles))
Why?
There's no way to receive a projectile ID using the
attack hook, this would act as a workaround.
EDIT:
stats(0, 'count') - Count of U.S.G.N. entries.
steamstats(0, 'count') - Count of STEAM entries.
If that's too complicated, perhaps
statscount().
And, perhaps,
stats(0, 'table') and
steamstats(0, 'table') which will return all the accounts' IDs, as such:
Of course, the first entry should be the highest ranked player.
And then, using the respective functions, it would be possible to get the rest of the data, depending on what is needed.


Unforunatly I wanted to be able to use those zones as rooms instead of having to do the rooms through Lua (which I consider slower to loop through rooms on the

But that's not a dealbreaker.

In that case, I suggest adding these two commands:


This will make sure the players are close AND do not have a raycast wall between them and the position.
The
type
parameter can be used to specify if the players should be considered in range either raycasting everything (walls and obstacles) or only walls (obstacles won't count).Another nice addition would be

All of these are easily done with Lua, but that means they're also slower.
Currently, in order to achieve the same result, it's non practical in Lua, at least for heavy servers such as mine.
EDIT:

Will close a player's menu, and call the menu hook with button 0 (cancel).
EDIT:
An option to enable pistol auto-fire when


EDIT:
Can we have some kind of


There's many reasons to have that, one of which is that the

Also, there's more benefits to the


There's a few more reasons, but if any of the developers are interested, I can explain the rest through PM/DM.
EDIT:





And possibly player rotation and position, to make the hook more efficient.
returns:


Why?
There's no way to receive a projectile ID using the

EDIT:


If that's too complicated, perhaps

And, perhaps,


Code:
1
2
3
4
2
3
4
{
[1] = 99153,
[2] = '76561198087950619'
}
[1] = 99153,
[2] = '76561198087950619'
}
Of course, the first entry should be the highest ranked player.
And then, using the respective functions, it would be possible to get the rest of the data, depending on what is needed.
edited 11×, last 20.07.21 05:31:27 pm
It's hard being the best girl in the whole entire world

dynamic sounds (the sound source changes its position during playback)
Moreover, there's a bug: some sounds have poor stereo balance. For example, the RPG rocket sounds plays more loudly in the left earpiece than in the right.
edited 1×, last 28.07.21 07:00:41 pm
You received a game ban because you seem to be a cheater. You are not able to log-in in-game anymore.


p

action

Will return a string containing the key of which the action is binded to from the client.
Examples:
Code:
1
2
3
4
5
2
3
4
5
print(playerbind(1, 'say'))
> 'ENTER'
print(playerbind(1, 'serveraction1'))
> 'F2'
> 'ENTER'
print(playerbind(1, 'serveraction1'))
> 'F2'
Use cases:
No longer needing a hook for every action, the ability to add a bind for every key used by a player and act appropriately.
Such as:
Code:
1
msg2(1, 'Press ' .. playerbind(1, 'say') .. ' to chat.')
Instead of:
Code:
1
msg2(1, 'Press Z to chat.')
The latter only applying to
some
of the players.The actions should be the same text as the commands (such as



It's hard being the best girl in the whole entire world
@
Mami Tomoe: The server doesn't know the client bindings because it does not need to know them. They would have to be requested asynchronously. Also they can be changed at any point by the client. Therefore implementing and using this comes with many problems and would be quite a lot of work. Most likely won't happen.
In general it's quite unlikely that complex things will be added to the game.

In general it's quite unlikely that complex things will be added to the game.
Perhaps requesting that with
reqcld?
If I for example want to know the server action 1 key of a player, I can just request it every time they join.
If they change it in-game, no biggie, it's not a deal breaker.

If I for example want to know the server action 1 key of a player, I can just request it every time they join.
If they change it in-game, no biggie, it's not a deal breaker.
It's hard being the best girl in the whole entire world

sv_utf8 0/1 command
If it's enabled, it effectively turn every text aspect of the server to UTF-8 aware. Not sure if this is trivial to do for the client however. If it's disable, it revert back to Windows-1252 encoding.
Can only be set on server startup (either server.cfg or after script pointed by
mp_luaserver is executed)
If it's enabled, it effectively turn every text aspect of the server to UTF-8 aware. Not sure if this is trivial to do for the client however. If it's disable, it revert back to Windows-1252 encoding.
Can only be set on server startup (either server.cfg or after script pointed by

I support this idea!
CS2D Chinese Station(CS2DCN) Founder。Chinese language translation submitter!As you see,We are the second largest player group of CS2D! | Our Discord
Maybe a way to have players respawn on ctf and dom maps so the objectives are played? Alot of the time it just ends in 10 seconds because the teams rushed eachoter.
Alot of games that have a ctf and dom gamemode make players do the objectives by having players respawn so you can't end the round in 10 seconds.
Alot of games that have a ctf and dom gamemode make players do the objectives by having players respawn so you can't end the round in 10 seconds.
Skippdybap
@
The Uplink Experiment:
sv_gamemode exists.
Set it to construction.
EDIT:
An option to have an image appear below a player's equipment but above a player's legs and shadow.
This is for custom skins purposes, because currently there's no way of doing that without the mods feature, which restricts up to 4 skins per team, and for bigger mods, this isn't as useful.
Plus, Lua can't control which skin a player will have, not easily at least.
Examples:
EDIT:
flash hook.
Example use case:
As described above, when the
flashplayer command is used on a player, the default source ID would be 0.
In addition to this, if this does gets added, a "source" parameter for
flashplayer would be great.


Set it to construction.
EDIT:
An option to have an image appear below a player's equipment but above a player's legs and shadow.
This is for custom skins purposes, because currently there's no way of doing that without the mods feature, which restricts up to 4 skins per team, and for bigger mods, this isn't as useful.
Plus, Lua can't control which skin a player will have, not easily at least.
Examples:
Code:
1
2
2
cs2dlua:image("gfx/cs2d.bmp", 0, 0, 5) -- For map image.
cs2dlua:image("gfx/cs2d.bmp", 3, 0, id + 500) -- For player image.
cs2dlua:image("gfx/cs2d.bmp", 3, 0, id + 500) -- For player image.
EDIT:

Example use case:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function flash_hook(victim, source, intensity)
if source == 0 then
-- Server command.
return 0
end
if player(victim, 'team') == player(source, 'team') then
-- Team flash.
return 1
end
return 0
end
if source == 0 then
-- Server command.
return 0
end
if player(victim, 'team') == player(source, 'team') then
-- Team flash.
return 1
end
return 0
end
As described above, when the

In addition to this, if this does gets added, a "source" parameter for

edited 2×, last 11.08.21 04:23:42 pm
It's hard being the best girl in the whole entire world
Cs2d doesn't refresh avatar data so if people change their usgn account avatar in game avatar doesn't change
Pls fix it.
Pls fix it.
@
KATANAZERO: You need to clean your avatar cache in CS2D/sys/cache/avatars



edited 1×, last 15.08.21 07:23:24 pm
It's hard being the best girl in the whole entire world
remove quick play since its going bad like brazilians are being redirected to europeans/asians servers which is bad and the brazilians servers are empty due to this, also make the serverlist sort by ping instead of players, this also make newcomers to play the game in the worst way since most are kids and doesnt understand how latency works
a brazilian just said to me he didnt liked the game because he shoot everyone and cant kill, complaining about hit and lag, and I asked how he joined the server and he said by quick play, imagine how many players we lost because of this, srsly, something must be done
a brazilian just said to me he didnt liked the game because he shoot everyone and cant kill, complaining about hit and lag, and I asked how he joined the server and he said by quick play, imagine how many players we lost because of this, srsly, something must be done
edited 1×, last 17.08.21 09:59:50 pm
@
mrc:
It makes perfect sense. Why pay for Facebook and Google ADS ad campaigns to lure players in, and when they join the game, they experience the worst possible lag experience?
I think it should work like any other game, for the smallest ping and localization. Not all servers have Lag Compensation compatible with PING.
Maybe CS2D lost too many players coming from steam because of this.

It makes perfect sense. Why pay for Facebook and Google ADS ad campaigns to lure players in, and when they join the game, they experience the worst possible lag experience?
I think it should work like any other game, for the smallest ping and localization. Not all servers have Lag Compensation compatible with PING.
Maybe CS2D lost too many players coming from steam because of this.
@
mwxL: I agree. we also dont like someone anonymous unfriendly guy come to our server and insult our country. and we have to ban he. right?

CS2D Chinese Station(CS2DCN) Founder。Chinese language translation submitter!As you see,We are the second largest player group of CS2D! | Our Discord
The
hit hook should return the flat damage as well.
If a player has 50 health, and they take 100 damage, the
hit hook will set the flat damage to 100, and the rest of the values will remain the same (50~).
This would help for people who want to use custom armour values (like 30%).

If a player has 50 health, and they take 100 damage, the

This would help for people who want to use custom armour values (like 30%).
It's hard being the best girl in the whole entire world
@
Mami Tomoe: I am confused. Isn't that what

rawdmg
does? Shit your pants:
Outlast II Mod (29) | Create your UI faster: CS2D UI Framework


@
Masea, rawdmg gives the raw damage taken.
Not the total damage taken.
EDIT:
A way to create the effect of a
info_radaricon entity using Lua.
This is good for custom game modes where you have custom objectives (like flags in ctf_ maps or bombs on de_ maps) and you need to tell the players where to go to find the objective.
This cannot be made through the editor, as the objective can change position (if it is picked and dropped somewhere that is not its spawn point.
EDIT:
spawned(p)
Currently it's not a great idea to set player values like held weapon, ammo, health, armour, speed, ETC. using the
spawn hook.
Having this hook will allow to set those values without the use of a timer.
EDIT:
The ability to request HTTPS data.
Using either
reqhttp or
reqhttps (with the addition of
httpsdata).
Much of the internet is based around HTTPS nowadays which makes this hook much less relevant than it used to be.
If this is an engine limitation, then a similar implementation of this can be made using CURL.
CURL can be used to simulate the same concept.
Currently it's not possible to use CURL asynchronously using pure Lua, which means the server will halt until the request returns.
This is not optimal in most cases.

Not the total damage taken.
EDIT:
A way to create the effect of a

This is good for custom game modes where you have custom objectives (like flags in ctf_ maps or bombs on de_ maps) and you need to tell the players where to go to find the objective.
This cannot be made through the editor, as the objective can change position (if it is picked and dropped somewhere that is not its spawn point.
EDIT:

Currently it's not a great idea to set player values like held weapon, ammo, health, armour, speed, ETC. using the

Having this hook will allow to set those values without the use of a timer.
EDIT:
The ability to request HTTPS data.
Using either



Much of the internet is based around HTTPS nowadays which makes this hook much less relevant than it used to be.
If this is an engine limitation, then a similar implementation of this can be made using CURL.
CURL can be used to simulate the same concept.
Currently it's not possible to use CURL asynchronously using pure Lua, which means the server will halt until the request returns.
This is not optimal in most cases.
edited 4×, last 18.09.21 07:13:07 pm
It's hard being the best girl in the whole entire world
19.09.21 04:13:15 pm
omg i hope they add Railgun and make the Flamethrower flames will stay for 5 sec just like Molotovs and add some vehiclces like robot or some cars
International Galactic Peacekeeper