Notes |
|
(0009739)
|
Dusk
|
2014-06-25 12:27
|
|
|
|
|
That sounds like a good idea. Will look at the implementation in detail. |
|
|
|
Looks good, transplanted. We just have to keep in mind that we'll need to introduce a compatflag to restore the old behavior in case there are mods that break because of this change. |
|
|
(0009782)
|
Dusk
|
2014-06-29 12:54
|
|
This is undefined behavior we're addressing here... then again, all bugs kind of themselves already are that. I'll add a compat_clientacsexecute... |
|
|
(0009789)
|
Dusk
|
2014-06-29 17:09
|
|
|
|
|
|
|
(0009924)
|
Qent
|
2014-07-09 20:43
(edited on: 2014-07-09 23:59) |
|
This causes strange behavior in Russian Overkill (using 2.0, 2014.07.09-20.19.28:'http://l.xd.cm:8080/misc/zanfiles/windows/x86/zandronum-2.0-windows-x86-2014.07.09-20.19.28.zip [^]'), shown in the example test_serversidenonnetscriptfromclient.pk3. Connect to a server, switch to NewChainsaw, and attack. With the compatflag off, you will get the error "P_CheckClientToServerACS: Cannot run server-side non-NET script 123 from the client" and it will give you the wrong number of cells (should give cells equal to the number of bullets you currently have).
(The WADs used on the server were
hr2final.wad - dad338e1968aea4df05d465e864d78f3
hr2-final-fix.wad - 0949cc1a6745ed477e34029f8d21d235
ro_pb_2.2_zan_01.pk3 - f51227da2b2c5375f5076195d41e46be
ro_class_v3_zan_01.wad - 7946173686660ef61e662ee117f689cc
newtextcolours1_170.pk3 - 242ee38839ed48fdb36bda4794208e8b
'http://www.mediafire.com/download/u0rucuzme7ugd1e/RO_pb_2.2_zan_01.pk3#! [^]' is a link to Russian Overkill. The gun in question was the SchwarzerZwerg2. The compatflag does work to restore old behavior, however.)
|
|
|
|
My mod seems to break from ^.
My weapon w/o the compat. flag just prints the error into client's console (why? isn't it the server what decides how actors should act?) and with it enabled just plainly skips all calls to ACS from its states, I even made the script in question to PrintBold() a meaningless message just to check if the game skips the ACS call, and it indeed does, even tho the whole animation plays as if nothing went wrong. So I'd increase the severity of this ticket, it completely breaks game. |
|
|
(0009930)
|
Dusk
|
2014-07-10 13:12
(edited on: 2014-07-10 13:19) |
|
What I think is going on is that both peers executed the ACS script on their own and acted accordingly with the results just happening to be consistent. Now the mechanism doesn't allow the script to be executed on the client's end (but does on the server!), the server never tells the client how much ammo was recieved and the ammo counts go out of sync.
EDIT: Indeed appears to be an unrelated bug that the mechanism has revealed. The new example wad ammocountdesync.pk3 has a chainsaw that will desync the cell ammo even if the compatflag is on.
In case anyone's wondering, the "rcon printinv 0" is a debug build-exclusive feature which allows the server to peek at other players' inventories.
|
|
|
|
Hmm, ammocountdesync.pk3 reveals design problem of your new mechanism, in the sense that it changes behavior it was not supposed to change. Or did you intentionally want your mechanism also to cover DECORATE constructs like
TNT1 A 10 A_GiveInventory("Cell", ACS_ExecuteWithResult(1, 0))
?
And you are right, this example also shows a Zandronum bug unrelated to your mechanism. |
|
|
(0010014)
|
Ijon Tichy
|
2014-07-20 17:12
(edited on: 2014-07-20 17:14) |
|
Why are we hijacking current syntax to achieve this, now? Since this sort of client -> server behaviour can't exist in ZDoom's network model, there's no reason to worry about ZDoom compatibility with this. An ACS_RequestExecute(snum[, a1[, a2[, a3]]]) (does not get blocked the way ACS_Execute does) would avoid compatibility issues and make the client->server exchange explicit, rather than implicit, which would avoid /many/ headaches.
|
|
|
(0010063)
|
Dusk
|
2014-07-28 13:30
(edited on: 2014-07-28 13:40) |
|
The mechanism's been replaced with a new RequestScriptPuke ACS function now:
use the following to try it out:
special -122:RequestScriptPuke (1, 4);
|
|
|
(0010344)
|
Dusk
|
2014-10-05 22:22
|
|
Marking as resolved as 1.3 is now released. |
|