A client update has been released for 04rel004.
AddendumThis update was reissued on 2017-05-25 in order to fix a regression where the GUI system would fail to initialize on some systems, causing a crash.
- Added custom font loading. Windows font files can be placed in a new directory on the server, store/fonts/, and can then be used in GUIs.
- Added ability to hide and show HUD elements. New client-side scripting elements have been added:
- Hud.AddFlags(flags) — a function that enables a HUD element or multiple elements
- Hud.RemoveFlags(flags) — a function that disables a HUD element or multiple elements
- Hud.Flags — an integer representing the HUD elements enabled
- Several constants:
- HUD_FLAG_CASH
- HUD_FLAG_CLOCK
- HUD_FLAG_HEALTH
- HUD_FLAG_WEAPON
- HUD_FLAG_WANTED
- HUD_FLAG_RADAR
Examples
- Hud.AddFlags(HUD_FLAG_CASH) — shows the cash HUD element
- Hud.RemoveFlags(HUD_FLAG_CLOCK | HUD_FLAG_WEAPON | HUD_FLAG_RADAR) — hides the clock, weapon icon and radar all at once
- if (Hud.Flags & HUD_FLAG_HEALTH) { /* ... */ } — runs code if the health HUD element is on screen
- Added support for loading precompiled client-side scripts (i.e. .cnut files). These must be compiled on a 32-bit Squirrel instance.
- Prepared to fix vehicle locking. This fix requires a companion server update which will be released in the coming days.
- Fixed not being able to remove custom weapons from a player.
- Fixed SMGs turning invisible when entering and exiting vehicles on servers with driveby disabled.
- Fixed grenades disappearing from the player's hand after throwing one.
- Fixed players with prostitute skins (24, 43, 70) uncontrollably trying to enter cars when other players entered or drove cars near them.
- Fixed GUI elements being draggable after disabling the GUI_FLAG_DRAGGABLE flag.
- Fixed the client crashing when picking an excessively long nickname in the browser.
- Fixed player getting stuck in an attack loop when using some melee weapons while walking.
- Fixed passengers being unable to dive out of fast-moving vehicles.
- Fixed Listbox.RemoveItem hanging the game.
- Fixed objects such as barrels at Vercetti's mansion being rendered like pickups.
- Fixed remote players turning invisible and desynced after diving out of a moving vehicle that appears to explode for others.
- Fixed the client crashing on disconnect if GUI listboxes are present.
- Fixed /infgetmodelname and /infgetvehicleid showing incorrect results.
This update will take effect upon reloading the browser.
YESSSSSS
thank
Quote from: Stormeus on May 24, 2017, 04:42 PM- Added support for loading precompiled client-side scripts (i.e. .cnut files). These must be compiled on a 32-bit Squirrel instance.
Screw you.
Quote from: EK.IceFlake on May 24, 2017, 04:50 PMQuote from: Stormeus on May 24, 2017, 04:42 PM- Added support for loading precompiled client-side scripts (i.e. .cnut files). These must be compiled on a 32-bit Squirrel instance.
Screw you.
This is a technical limitation of the fact that the Squirrel runtime on the client, the client itself, and the game are all 32-bit applications. Running a 32-bit server (even if you're on a 64-bit system) and compiling from there works fine in my testing experience.
Finally!! :D :D
good job :)
Aww yeah! Devs are alive! BTW is possible to animate objects?
YAS!
This is great. You surprised us. Thanks.
P. S:- Good to know that you're alive.
Quote from: Stormeus on May 24, 2017, 04:52 PMQuote from: EK.IceFlake on May 24, 2017, 04:50 PMQuote from: Stormeus on May 24, 2017, 04:42 PM- Added support for loading precompiled client-side scripts (i.e. .cnut files). These must be compiled on a 32-bit Squirrel instance.
Screw you.
This is a technical limitation of the fact that the Squirrel runtime on the client, the client itself, and the game are all 32-bit applications. Running a 32-bit server (even if you're on a 64-bit system) and compiling from there works fine in my testing experience.
That was not what I meant.
Now I'll have to reverse engineer Squirrel and I already have so many projects on my stack that I'll have to wait quite a few months before I can sneak on any scripts again.
I copied my store folder over and now I have some scripts for hostage :D (no, I'm not about to leak them. that was a joke (the hostage part, the fact that I have them is real)).
where i can download new version?
Quote from: KAKAN on May 24, 2017, 05:17 PMThis is great. You surprised us. Thanks.
P. S:- Good to know that you're alive.
Quote from: Stormeus on May 24, 2017, 04:42 PM- Added support for loading precompiled client-side scripts (i.e. .cnut files). These must be compiled on a 32-bit Squirrel instance.
There's just one question about that. How are we (
excluding me since I can hijack the VM and perform an indirect save of the compiled closures) going to save the byte-code? Because I believe you have to be able to do that from the client itself. Probably an example is worth a thousand words:
Hud.AddFlags(HUD_FLAG_CASH)
In this case, `
HUD_FLAG_CASH` is a constant. That means it must be available at compile time. And the way you describe the process is that we can compile scripts with the regular Squirrel compiler (https://github.com/albertodemichelis/squirrel/blob/master/sq/sq.c) and simply instruct it to save the byte-code.
The issue here is that any other application that embeds the Squirrel language will be missing the these constants and the client API. So you'll be getting a bunch of "
index XYZ doesn't exist" when you try to compile it on anything other than the client.
In this case there are two choices that I foresee. First, implement a function like the `
Include()` one (
or add an optional boolean parameter) that after compiling and loading a certain script, it'll save the resulted byte-code into a similarly named file, except with the letter `c` prefixed to whatever extension the initial script name had. Would avoid hard-coding the extension as .
cnut in case some people (
don't underestimate some people!) use the extension .
cnut on the actual script.
The second one. Is to create a standalone compiler that mimics the client API. Which to be honest, seems like an undesired overhead on further development and an easy way to introduce bugs and outdated/mismatching API.
hashtag @Stormeus :P
Iam waiting for Attach Ped to Entity function. 0x4EF490
nice
Quote from: . on May 24, 2017, 05:41 PMQuote from: Stormeus on May 24, 2017, 04:42 PM- Added support for loading precompiled client-side scripts (i.e. .cnut files). These must be compiled on a 32-bit Squirrel instance.
There's just one question about that. How are we (excluding me since I can hijack the VM and perform an indirect save of the compiled closures) going to save the byte-code? Because I believe you have to be able to do that from the client itself. Probably an example is worth a thousand words:
Hud.AddFlags(HUD_FLAG_CASH)
In this case, `HUD_FLAG_CASH` is a constant. That means it must be available at compile time. And the way you describe the process is that we can compile scripts with the regular Squirrel compiler (https://github.com/albertodemichelis/squirrel/blob/master/sq/sq.c) and simply instruct it to save the byte-code.
The issue here is that any other application that embeds the Squirrel language will be missing the these constants and the client API. So you'll be getting a bunch of "index XYZ doesn't exist" when you try to compile it on anything other than the client.
In this case there are two choices that I foresee. First, implement a function like the `Include()` one (or add an optional boolean parameter) that after compiling and loading a certain script, it'll save the resulted byte-code into a similarly named file, except with the letter `c` prefixed to whatever extension the initial script name had. Would avoid hard-coding the extension as .cnut in case some people (don't underestimate some people!) use the extension .cnut on the actual script.
The second one. Is to create a standalone compiler that mimics the client API. Which to be honest, seems like an undesired overhead on further development and an easy way to introduce bugs and outdated/mismatching API.
hashtag @Stormeus :P
Which means we're safe for the time being.
:)
print the string, it'll be saved in the server logs :D
:edit: Oh, I guess VCMP won't recognize those characters and won't save it :P
The other way is to somehow save it to the debuglog file, which might store those characters. But, then,. TXT, notepad might remove it :P
good work stormeus
ps:Add bot system :e
__ __ _ _ ___ ___ ____ _ __ ___ __ __
\ \ ___ / / | | | |/ _ \ / _ \| _ \ / \\ \ / / | \ \ ___ / /
\ \ / _ \ / / | |_| | | | | | | | |_) | / _ \\ V /| | \ \ / _ \ / /
\ \ (_) / / | _ | |_| | |_| | _ < / ___ \| | |_| \ \ (_) / /
\_\___/_/ |_| |_|\___/ \___/|_| \_\/_/ \_\_| (_) \_\___/_/
Quote from: KAKAN on May 24, 2017, 06:43 PMprint the string, it'll be saved in the server logs :D
:edit: Oh, I guess VCMP won't recognize those characters and won't save it :P
The other way is to somehow save it to the debuglog file, which might store those characters. But, then,. TXT, notepad might remove it :P
Which string?
Waiting for player.Gravity function in 0.4 :) or do add functions like changing players gravity in other worlds only.
Quote from: PunkNoodle on May 24, 2017, 06:55 PM
__ __ _ _ ___ ___ ____ _ __ ___ __ __
\ \ ___ / / | | | |/ _ \ / _ \| _ \ / \\ \ / / | \ \ ___ / /
\ \ / _ \ / / | |_| | | | | | | | |_) | / _ \\ V /| | \ \ / _ \ / /
\ \ (_) / / | _ | |_| | |_| | _ < / ___ \| | |_| \ \ (_) / /
\_\___/_/ |_| |_|\___/ \___/|_| \_\/_/ \_\_| (_) \_\___/_/
Finally . I said that stormeus will not be active for 3 months for vain :v
Not so dead. Regards to all the haters who have been moaining since now ;)
cool and mind fixing ghost shots so they're able to be made as they were back in the older versions? :D
Fucking finally! For a long time!
Quote from: jUan* on May 24, 2017, 08:41 PMcool and mind fixing ghost shots so they're able to be made as they were back in the older versions? :D
you mean
breaking?
Ghost shooting was a game breaking bug, which ruined game modes where ammo is limited. I'm glad it is hard to pull off in 0.4
Quote from: . on May 24, 2017, 05:41 PMQuote from: Stormeus on May 24, 2017, 04:42 PM- Added support for loading precompiled client-side scripts (i.e. .cnut files). These must be compiled on a 32-bit Squirrel instance.
There's just one question about that. How are we (excluding me since I can hijack the VM and perform an indirect save of the compiled closures) going to save the byte-code? Because I believe you have to be able to do that from the client itself. Probably an example is worth a thousand words:
<snip>
The Squirrel bytecode compiler does a bit less work than you think. compilestring/writeclosuretofile work fine when compiling client-side scripts on a server or even a generic compiler like squirrel's sq program. The reason for that is when compiling the program, Squirrel is only checking for syntactic correctness, and will not try to resolve or execute any constants or functions until the compiled bytecode is actually run.
Quote from: StormeusPrepared to fix vehicle locking. This fix requires a companion server update which will be released in the coming days.
Ugh, I will need to update the blank server...
[spoiler]
BUT I'm totally ok with it ! :D
Welcome back, and thanks for the update !
I have some wonders though: will setting custom vehicles' handling be posible with this next server update ?
[/spoiler]
I waiting for fix this bug, its annoying :x
http://forum.vc-mp.org/?topic=4131.0
@Stormeus seems like the the compiled client scripts are kinda broken.. Not working for many people including me.
:edit: Got it.. http://forum.vc-mp.org/?topic=4670.0 ..Thnx
wow great :D
CooL
Force servers to convert into rel 0.4
Where is the download link, please? or how do i update?? thanks
Quote from: axelnieves2012 on Feb 02, 2018, 03:20 AMWhere is the download link, please? or how do i update?? thanks
Not this shit again. I tought there was an other update.
It does work.
Quote from: vitogta on May 06, 2018, 03:52 PMQuoteAdded custom font loading. Windows font files can be placed in a new directory on the server, store/fonts/, and can then be used in GUIs.
Is it not working for me only or for all?
Please move to an other board.
Quote from: vitogta on May 06, 2018, 07:13 PMStrange, it seems it working for me only with installed fonts (in windows) like Impact but not working with FjallaOne (in store/fonts dir)
label <- ::GUILabel();
label.Text = "[TEST]TestFont";
label.FontName = "FjallaOne";
label.Colour = Colour(0,0,0,220);
label.TextColour = Colour(255,80,80,255);
label.Position = VectorScreen(0,0);
label.Size = VectorScreen(100,100);
label.FontSize = 32;
It works good for me.
Open a new board and ask for more details if needed, but I don't believe there is anything else to disscuss.
Just be sure you write the correct font name you have added inside store/fonts/...here
Also, be sure it is a good .ttf file