Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 7,250
» Latest member: PHantomeXe
» Forum threads: 2,377
» Forum posts: 12,288

Full Statistics

Online Users
There are currently 378 online users.
» 2 Member(s) | 373 Guest(s)
Bing, Yandex, Google, swuffted, tcharlesmeurer

Latest Threads
Second Generation Rolepla...
Forum: Advertisements
Last Post: JamesT
9 hours ago
» Replies: 0
» Views: 9
Servidor RPG profissões
Forum: Advertisements
Last Post: tcharlesmeurer
Yesterday, 11:35 PM
» Replies: 0
» Views: 10
EVO Anti-Cheat
Forum: Libraries
Last Post: Eduardo_AC
Yesterday, 11:05 PM
» Replies: 2
» Views: 30
Developer for Hire – Syst...
Forum: Pawn Scripting
Last Post: ejtamovic
2025-07-04, 08:35 AM
» Replies: 0
» Views: 43
Liberty City map
Forum: Pawn Scripting
Last Post: ziyadprogamer
2025-06-28, 04:55 PM
» Replies: 2
» Views: 2,170
GameText styles in open.m...
Forum: Pawn Scripting
Last Post: Miki
2025-06-28, 01:25 PM
» Replies: 1
» Views: 54
Script[gamemodes/gamemode...
Forum: Pawn Scripting
Last Post: Miki
2025-06-27, 05:08 PM
» Replies: 1
» Views: 434
Want to edit my profile n...
Forum: Chat
Last Post: Hera.
2025-06-26, 08:41 PM
» Replies: 1
» Views: 584
Farsi
Forum: Other
Last Post: acc.gangbeni
2025-06-25, 08:21 AM
» Replies: 2
» Views: 3,076
Las Venturas Gang Wars - ...
Forum: Advertisements
Last Post: lvgwgta
2025-06-22, 06:47 PM
» Replies: 0
» Views: 66

 
  y_hooks v4(ish)
Posted by: Y_Less - 2019-05-19, 02:57 PM - Forum: Pawn Scripting - Replies (10)

Right, so I've been thinking about y_hooks.

This is the current syntax:

PHP Code:
hook OnWhatever()
{


Chaining is implicit - the only control you get is returning `~0` instead `0` to stop the next hook being called. ?Only `0` or `1` can be returned; and only public functions can be hooked.

A while ago I came up with an extension:

PHP Code:
hook public OnWhatever()
{
}

hook stock MyFunc()
{
}

hook native SendCommand()
{


I don't like using `stock` in this context, as it reinforces the idea that so-called "stocks" are functions, and vice-versa, but any more accurate keyword would mean introducing additional new ones, which I don't want to do. ?Using the old `hook` syntax would continue to work in exactly the way it does now. ?For the new syntax, I may as well fix all the issues at once - return values as well. ?This means adding an explicit method of chaining:

PHP Code:
hook public OnPlayerConnect(playerid)
{
    if (
<= playerid MAX_PLAYERS)
    {
        return 
CallNextHook("OnPlayerConnect""i"playerid);
    }
    return 
0;
}

hook native random(max)
{
    if (
max 0)
    {
        return -
CallNextHook("random""i", -max);
    }
    if (
max 0)
    {
        return 
CallNextHook("random""i"max);
    }
    return 
cellmin;


I'd like some slightly nicer syntax for the chain call, and this is where I'm looking for feedback. ?There are several options:

  1. Exactly what's above, just an obvious function call. ?This has several downsides - verbose, variable parameters, string argument specifier (error-prone), string function name; and only one upside - not custom syntax.

  2. Using indirection.inc with the hook name:

    PHP Code:
    return @.OnPlayerConnect(playerid); 

    Advantages: Established syntax, compile-time specifier determination (can be part of the `hook whatever` line, don't worry about that), less verbose, more clear.

    Disadvantages: Still no compile-time parameter checking, but none of the proposals have that.

  3. Using indirection.inc with the `hook` keyword:

    PHP Code:
    return @.hook(playerid); 

    Basically the same as option "2", but more consistent across all hooks, and less likely to conflict with other variables. ?As for specifiers, there are two options - 1) none, which is not good, but means that the chaining is no longer tied to the hook function:

    PHP Code:
    Other(a)
    {
        return @.
    hook(a);
    }

    hook stock MyFunc(a)
    {
        return 
    Other(a);


    Or the other option is just make `hook` a local in exactly the same way as would be done in option "2a".

  4. `continue`.

    I like this for one reason - it is quite clear on meaning:

    PHP Code:
    hook stock MyFunc(a)
    {
        new 
    = continue(a  5);
        return 
    5;


    `continue()` cannot conflict with `continue`, so this is a completely unambiguous overload of an existing keyword.

  5. `hook continue`.

    Like "4", but using slightly more verbose, less confusing, syntax:

    PHP Code:
    hook stock MyFunc(a)
    {
        new 
    hook continue(a  5);
        return 
    5;


  6. `yield continue`.

    Again, like "4" and "5", but reusing the `yield` keyword, already existant in YSI. ?`y_iterate` uses `yield return`, so this would provide meaning to `yield continue` as well:

    PHP Code:
    hook stock MyFunc(a)
    {
        new 
    = yield continue(a  5);
        return 
    5;


  7. Completely custom syntax:

    PHP Code:
    hook stock MyFunc(a)
    {
        
    // Example custom syntax, probably not this, maybe `next()`.
        
    new next_hook::MyFunc<>!!!(a  5);
        return 
    5;


  8. Something I've not thought of.

My personal preference is actually for `continue()`. ?It is quite clear, unambiguous in usage (the normal use can't have brackets), and actually allows for slightly better code than that which would be run by using any of the indirection.inc options. ?However, they have the advantage of established practice. ?So my choices in order of preference would be: 4, 3, 5/6, 2, 1, 7. ?Unless, of course, someone has a better option 8.

Explicit chaining implicitly solves the return values problem - any value can be returned, and you don't need `~0` and `~1` reserved for chaining control because you now say exactly when the next function is called. ?You can also use the return of the next chained call.


  Suggestion for Burgetshot logo redesign
Posted by: MR.GHOST - 2019-05-19, 01:38 PM - Forum: General Discussions - No Replies

Well i done this?
[Image: received_1095766637273095.png]

It isnt that great but just to give some ideas
Well i can explain what it stands for
The burger u know the burger and a scope aim for shot so burgetshot

Tried to do something like this
[Image: Screenshot_20190519-084156.png]
Burgershot old school


  (Mapping Showcase)- Boo mappings
Posted by: Boo - 2019-05-19, 12:17 AM - Forum: Videos and Screenshots - Replies (1)

Hello everyone, I am a new mapper and I created a channel to present my maps, I hope you like it.

https://www.youtube.com/channel/UCiKcLLU...subscriber


Heart Please use Affero GPL or similar for the license
Posted by: ohmios - 2019-05-17, 08:35 AM - Forum: Questions and Suggestions - Replies (3)

Short version: Please use the?GNU Affero General Public License for open.mp

Long version:
If I understand correctly open.mp will be open source once it's released to the public. This is great! There's only a small detail I realize just now about the specific license terms open.mp choose and what it could mean for the players.

First, if open.mp uses a non strong copyleft license, this could allow for third parties to create closed source versions of open.mp, and with the correct marketing they could even become more popular than open.mp itself. This would be terrible for the players because they will lose the freedom, convenience and other advantages that only an open source development can give. To prevet this I suggest using a strong copyleft license such as the GPL. This way, third parties are still allowed to modify open.mp's source code to their heart's content. But they will required to share the full modified source code when distributing their modified version. This will be beneficial to the open.mp developers because they will be able to merge popular changes.

Second, the server part of open.mp will be just as important as the client part. Taking this into consideration, another point also related to the first?must be highlated. And this is the fact that most licenses?don't prevent server owners?from modifying the open.mp server source code and not?release the source code to their users. This is because connecting to a server does not count as distributing in the copyleft context. To prevent this I suggest using a license that prevents this, such as the?Affero GPL.?This way, third parties are still allowed to modify open.mp's server source code to their heart's content. But they will required to share the full modified source code to the players connecting to their server.

Using the?GNU Affero General Public License for free distribution?could allow open.mp a way of monetization?by selling non copyleft licenses, there's lots of companies developing open source using this kind of business model.

Finally, what I want to prevent is closed source forks of open.mp becoming incompatible with the original open source version, I dont have any issue with open source forks of open.mp being incompatible?because as long as they are open source too, then open.mp can simply merge the changes to keep? compatibility if necessary.

For more information on the?GNU Affero General Public License:?Why the Affero GPL


  I want a frend
Posted by: Wuds - 2019-05-16, 01:23 PM - Forum: Chat - Replies (5)

Frend me plis seir


  PAYDAY $A:MP - Multiple Guards Interaction & Civilians Preview
Posted by: TheSlenderman - 2019-05-16, 08:36 AM - Forum: Videos and Screenshots - Replies (7)

[Image: smt3fyl.png]



Information



PAYDAY $A:MP is an upcoming server which will feature the possibilities of the actual PAYDAY 2 game to be found in our lovely game, SA:MP. Today I will present you an update which I've been working on for the past days.







What is new?



Spotting'n Marking System

'Frightening' System?

Corpse System

Guard Corpse, Bodybags & Fellow cuffed guards detection


Civilians & Hostages







Spotting'n Marking System



Once you see a guard, you can mark him on the minimap by simply aiming at him and pressing the 'N' key. As in the PAYDAY series, this is a pretty useful feature, especially for your fellow robbers, as they will be able to see where the guards are located without being near them. Once a guard is marked, he will slowly start to disappear from the minimap, and will be vanished after 12 seconds, meaning that you will have to mark him again.







'Frightening' System



If a guard spots you, and you wish however to spare his life, you can try to 'frighten' him by simply aiming him and pressing the 'N' key. There is a 25% chance that you can actually 'frighten' him, and if you do, he will put his hands up. The pager however will still drop and you will have to answer it. Aiming and pressing again the 'N' key on the 'frightened' guard will make him handcuff himself and eventually lie down on the ground.





Corpse System



If you kill a guard, after answering his pager, you will get the chance to bag up his corpse in a duffle bag by using the 'Y' key. Taking the corpse from the crime scene is a good idea, as it won't alert any civilians or other guards that will pass on the crime scene. If they see the corpse however, they will call the police straight away. Once you got the corpse on the duffle bag, it will be shown on your back. You can choose to throw it anywhere using the 'N' key. There will be special locations where you can hide the corpses, as shown in the Video Presentation.





Guard Corpse, Bodybags & Fellow cuffed guards detection



Guards can now detect a corpse, a bodybag or a fellow cuffed guard if they are near. Once they see it, they will slowly go there and sound the alarm. A Video Presentation has been attached.





What are the civilians?




During your Heist, you will come across not only to guards, but to civilians too! Civilians are NPCs, just like guards, that will roam around the Heist map and try to call the Police if you don't control them. The best way so far to control them is by shouting at them using the 'N' key to sit down. Any civilian on a radius of 5.0 to you will hear you shouting and will get automatically on the ground.





What can I do to the civilians?



Since they work the same way as guards do ( Spotting Bar, etc. ), you will only be able to control them and prevent them calling the Police ( usually by tying their hands with the 'Y' key ). You can also choose to kill them, however it's not recommended as if you kill a certain number of civilians, the alarm will trigger.





What can civilians do?



At the beginning of the Heist, civilians will be around the map. They will be alerted and try to call the Police if:



- The Spotted Bar is filled

- You are near them aiming

- They see a Corpse, Bodybag or other fellow NPC ( Guard / Civilian ) tied or scared.






What can I do to the Hostages?



Hostages are basically tied civilians. They are called 'Hostages' because they have their hands tied and they will not be able to call the Police, thus means they are under your control. Any uncontrolled Civilian will not be a Hostage and you will see a '!' on top of their head, meaning that they can call the Police if you don't shout at them. You can make Hostages follow you anywhere by pressing the 'Y' key.







How can I stay updated with the server progress?



You can stay tuned with the server news by simply joining the Discord below!?










Video Presentation



https://youtu.be/iEn7YDOwnKA

https://youtu.be/yYNT7qQq_Tg

https://youtu.be/c7O85apFj88


  [SOLVED] Unread posts since last visit?
Posted by: gzxmx94 - 2019-05-15, 09:15 AM - Forum: Chat - Replies (7)

Am I blind or is there no button to list all unread posts since last visit here at burgershot? (I'm not talking about subscribed threads)


  y_va on linux
Posted by: mr_sacrimoni - 2019-05-15, 06:30 AM - Forum: Pawn Scripting - Replies (3)

My gamemode works fine on windows but when started on linux every function that uses y_va skips the formating and returns 'YSI Warning: Bare?___?usage found' in server_log.



Help??


  Allow Servers to Redirect player to another server.
Posted by: Faqahat - 2019-05-15, 05:55 AM - Forum: Questions and Suggestions - Replies (7)

Just a shower thought, Since many servers switch hosts , IP , ports and players have to add the server in lists again in my experience a server loses 30-50% of playerbase after a IP change. so instead of locking the server and changing name to alert users about IP change a server could just redirect user to another server when player joins (along with a prompt to add new IP or update existing server's IP in list).


Code:
Redirect(playerid,"192.168.1.1:7777")


  [WEB] Subscribe to forum
Posted by: DTV - 2019-05-14, 11:44 PM - Forum: Support - Replies (2)

Not sure if this is something on my end but when I attempt to subscribe to a section on the forum, I get brought to a 404 page.