Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Athanatos
1
Community Plugins / Whitelist plugin
« on September 24th, 2021, 11:59 PM »
Hello everyone!

I created a whitelist plugin that will allow only some specified IPs and players into your server.

Purpose


I wrote this plugin just to relax from other demanding projects like my own game engine and game projects. This took me few days to create because of stupid mistakes I made (reading the files, but not copying the data into the containers, as one example).

Now you might say, "passwording servers is enough" -> yes might be. But what if your friend that's scripting his server has a password made of a LaTeX equation? like this one :
Quote
\int e^{x^2} dx = \sum_{n=0}^{\infty}\frac{x^{2n+1}}{n!(2n+1)} + C
or that his password is an entire quote taken from an dubious barely known book? And he can't find the password in his 12k lines of code script that was made from forum snippets? (No one would do that ever (I mean the password thing))

Or maybe you're too lazy to use a single function call in your scripts (i.e SetPassword(string) )

Now again, you might say "I can make this in squirrel too" -> Well this one automatically gets the local IP lol (useless feature probably). Can you do that in Squirrel?

An other reason is that whitelisting is fairly common in multiplayer games like Minecraft, etc.

If you're not convinced f*ck you (/s). (slash s = sarcasm)  (I'm having fun writing this) (Can't wait for the mods to remove the hidden texts)

Well, if you're convinced, here's what you need : this plugin.

Usage


Installation:

Copy the plugin binary compatible with your server into <server root>\plugins\ .
You may need to install the latest MSVC redistributables. Link : https://support.microsoft.com/en-us/topic/the-latest-supported-visual-c-downloads-2647da03-1eea-4433-9aff-95f26a218cc0

First use:

Upon running the server for the first time, the plugin will automatically create 2 files called : allowed_ips.txt and allowed_nicks.txt .

The file allowed_ips is filled with all the local IPs (192.168.1.6 as a example)+ localhost IP (127.0.0.1) and allowed_nicks is filled with 2 example nicknames.

Modifying the whitelist:

Modifying the whitelist requires opening and editing the two created files ( allowed_ips.txt and allowed_nicks.txt ) with your editor of choice(ex. MS Notepad, Notepad++, VS Code, et cetera).

For performance reasons, unlike INIParser, this plugin will keep the whitelists in it's memory instead of continuously reading the files. Therefore modifying the whitelist would require restarting the server after the files are saved!



Future development


If needed Linux support might be taken in consideration. But until then (because probably no one would want this plugin)... That's like the single version that is ever released of this plugin.

Links


Links are here:

Github (source code): https://github.com/NicusorN5/VCMPWhitelistPlugin
Github releases : https://github.com/NicusorN5/VCMPWhitelistPlugin/releases/

2
Script Showroom / Athanatos's Anarchy Server
« on September 10th, 2021, 10:20 PM »
I had an idea to create a VC:MP server with no rules. Sounds horrible? Very good.

Anyway, I'm too lazy and broke to host this therefore I'm throwing the script here for people to "steal" or modify.

I bet no one will use this ever. Maybe newbs can learn something from this, but I doubt that. Maybe they will learn how to STOP USING  300000 LINES LONG IF-ELSE CHAINS FOR FUCKS SAKE. EVEN YANDERE DEV WOULD BE DISSAPOINTED OF YOU!!!! AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA (mods feel free to delete this, I'm not feeling good)

[I got DCMA'd therefore no links]
3
General Discussion / Do you guys miss 0.3?
« on September 2nd, 2021, 08:49 PM »
Just wondering, if nostalgia makes y'all think if 0.3 is better somehow than 0.4. I might try doing something interesting if y'all miss it or something. I won't reveal any details now, since it is just an idea in my own head.

Since either my brain cells are too low at this point to create a poll on this forum (or if I don't have permission) I created a poll using straw poll : https://www.strawpoll.me/45627790


I created a poll there in the forum. Maybe that's even useless with the joke answers like the quantum superposition answer.
4
Off-Topic General / Thank you for everything...
« on March 22nd, 2021, 12:41 PM »
   Hello, everyone™. As of today, I've decided actually leaving this community, because of the recent circumstances I'm in.

   I will try to keep this short: I've done some fuck ups related to my own personal and educational life, so I have to force myself to shift priorities from hobby projects (VC:MP servers, gamemodes, plugins I was making) to actually something that's worth some money (maybe make programming tutorials, or attempt making indie mobile and PC games).

    If I didn't commit so many mistakes in my life, I might have stayed here for a while, despite the low player counts, and toxicity. (ahem, ahem, to the guys spamming the forum with... the moderators here know what I'm talking about).
   
   Some of you may have noticed me not playing on public servers almost at all. Yes, while this being true, I've still worked on personal projects, like plugins, remaking RCNR, working on a private romanian server. You can name it...

    I'm releasing all my private VC:MP GitHub repositories to the public. Maybe the rest of the scripters that are actually capable of something might scavange something from there and over there...

   I know some of you might say that "I don't care about you leaving" or "Leave already for fcks sake" . I just want to know that your "opinion" won't shift my own view to any other direction... I don't know who would have said that, but I remember considering once leaving this community and I was insulted by some of the persons here. Fuck em' anyways.

   Still, the main point here, is that I want to thank persons like Zurix(for teaching me bits of reverse engineering), Xmair( teaching me bits of scripting, developing my favorite VC:MP server), SLC (one of the best programmers around here, I've learned some extra C++ stuff from him) and Sebastian (for being one of the nicest guys around there) for being so helpful towards me. Thanks to you all, I know so much more about programming. When I joined the 9th grade, I didn't know about FUCKING ARRAYS. The reason why the old RCNR code is filled with repeating variables.

    As a point of notice: If you think this post is made for attention, you're missing the point, and chances you are a moron too. It is only dedicated to the persons I'm thankful to.

     List of GitHub repositories I have archived:
    https://github.com/NicusorN5/Romania-Cops-N-Robbers (already published, but I archived it again)
    https://github.com/NicusorN5/VCMP-Romania-Roleplay (this was supposed to be RCNR's rewrite)
    https://github.com/NicusorN5/VCMP-Zombie-Survival ( I just published the final release)
    https://github.com/NicusorN5/VCMP-Infected-City-Survival (This was supposed to be the sequel to Zombie Survival

   Side note: I don't want my post censored in a way or another, but I bet that will happen.

So finally, thanks to the persons I mentioned, and good luck for everyone's life. Or whatever... You name it...
5
Script Showroom / [Final Release] Zombie Survival 0.4
« on March 22nd, 2021, 12:14 PM »
Since I had a awful time struggling to implement instead of object habi's NPCs and because I have no motivation, this is the final release of my gamemode, unless someone will continue my work. But I doubt that...
Quote
Added:
   ✓ Killstreak Icons
   ✓ Killstreak UI announce
   ✓ New killstreak: Osprey Gunner
Changed:
   ✓ How killstreaks generally work
   ✓ Fixed some player resetting issues when starting a new round
   ✓ Armour is now more useful
No video, because I'm too lazy. Just a direct link:

https://github.com/NicusorN5/VCMP-Zombie-Survival/releases/download/0.4/VCMP.Zombie.Survival.0.4.7z


7
Script Showroom / [Gamemode] Romania Cops N' Robbers
« on May 2nd, 2020, 07:38 PM »
Since I clearly have no more interest in VC:MP, (I didn't open VC:MP for 4 months), I decided, contrary to @Angelo (the other owner)'s intention to release my sh~tty server to this community that I don't think is going to last the next 5 years.

More details in the repository : https://github.com/NicusorN5/Romania-Cops-N-Robbers

To download the server, clone the repo as a ZIP.

Since the n00bs that wanted this server propably don't know how to use GitHub, then I don't mind people that use my server's code for other projects ( that won't happen, RCNR's code is just a mix between my bad, and worse code).

Yes, the entire code is awful because I didn't have enough experience as I have now, even if I shutted down the server on 30 dec 2019).

So yeah, anything else to say? No, excepts my regards. It's time for me to move on other projects and focus on game developing. Shortly: goodbye VC:MP community.
8
Bugs and Crashes / [BUG] Client side scripts randomly not working
« on January 7th, 2020, 05:23 PM »
Description
Uncompiled client side main.nut scripts dont work.

Reproducible
Sometimes.

What you were doing when the bug happened
Starting my script to 0. I got the following error:
Code: [Select]
MSG: Main Script line = (1) column = (1) : error expression expected

Warning in CScripting::Initialise: Loading main script file failed with error message: expression expected.
Warning in CScripting::Initialise: Attempting manual closure load.
Error in CScripting::Initialise: Loading bytecode stream failed with error message: invalid stream.

The code was the following:
Code: [Select]
::test <- "Test Message";

function Script::ScriptLoad()
{
    Console.Print(test);
}

I tried recreating the script file, rewriting the code, changing the line endings from \n to \r\n .Nothing worked.

What you think caused the bug
¯\_(ツ)_/¯ Client side maybe thinking the uncompiled script is maybe a compiled one?

WORKAROUND
Compile the script using the Squirreil Compiler. Fixed the issue, but still reporting because this is an awful bug.
9
General Discussion / [0.4rel006] VC:MP API Extended
« on October 4th, 2019, 01:17 PM »
(DO NOT USE THIS)



VCMP-API-Extender

An extension to the VC:MP's API that makes creating plugins hopefully easier by wrapping the original VC:MP API into a namespace with some classes, so the code will be hopefully easier to understand, read and write!

(Small note: the following code examples may not work, because they are not tested.)

How to setup


  • Clone or fork this repository..
  • Open the VS 2019 project
  • Well that's it, have fun.

Usage


  • Getters and setters are mostly named like this:
Code: (C++) [Select]
<field type> FieldName_g();
void FieldName_s(<field_type> param);
Atleast in my opinion, its good enough.
  •   Read only fields are often simple functions.
  •   Some fields use dynamic memory, so make sure to free the memory when needed. Example:
Code: (C++) [Select]
char* Name = VCMP::Player::FindPlayer(id)->Name_g();
VCMP::Server::Message(strcat(strcat("[#ff0000]Player ",Name)," joined our server!"));
delete Name;
  • Bug reports and feedback are highly appreciated!

Personal note

   I made this in hope to help persons that want to create their gamemode/plugins in C++ .  Writing this <plugin/extension/addition> took me less than a month as a total time, see the repositories.
   Any feedback, suggestions, they are all welcome since I didn't test this. (Before you say: omg you dont test your shit) I'm going to use this to remake my VC:MP server (RCNR).

   And if you say that the using the original SDK is a better idea, there are some proofs it isnt:
1.) Code is more organised than in the original SDK.
2.) This extension is made, as I said before to help persons that want to start making a server strictly in C++.
3.) This extensions also takes care of some of the possible errors can that happen runtime (if a player exists or not, etc).

Github Repository

https://github.com/NicusorN5/VCMP-API-Extender

10
Script Showroom / Zombie Survival 0.2
« on June 1st, 2019, 04:49 PM »
This is a rewrite of Zombie Survival 0.1 with more cool features like buyable perks, bonus pickups, perk sprites, and more!

Change log:
Quote
'✓'  <- (added)
   '--' <- (to be added)
   '' <- (not added)
   
   Added:
     ✓ Added GUIs :
        ✓ Perks are now visible!
       ✓ Shop GUIs
     ✓ Added Pickup Bonuses:
      ✓ Minigun
      ✓ Instakill (zombies die instantly)
      ✓ Immunity (you are almost invincible)
      ✓ Double Score (cash per kill is doubled)
      ✓ Freezer (all zombies stop moving)
      ✓ 500 Cash
      ✓ Just a message in case you are unlucky >:)
     ✓ Added More Perks:
      ✓ Fast Revive (no need to be revived if active)
      ✓ Extra Damage (increases bullet damage by 2 timeas)
      ✓ Fast Health Regeneration (health regenerates 5 times faster) (The original server only had Juggernaut as a perk )
       ✓ Added a simple Revive system
   Changed:
      ✓ This is a complete rewrite
      ✓ Less commands, just walk into the checkpoints to buy stuff! Gameplay is way easier to understand!
      ✓ The only commands are: /help, /skin and /stats
      ✓ Killstreaks list:
         ✓ Power : Activates the Shop! (10 kills)
         ✓ [NEW]Predator Missle : Control a missle fired from a AGM. (50 kills)
         ✓ Insta Heal : Heal everyone instantly (75 kills)
         ✓ Care Package (before named as 'Airdrop'): A plane flyes and drops a package containing either a new weapon, or a bonus pickup (100 kills)
         ✓ [NEW] Armour Package : Place a armour pickup that is usable by everyone! Armour only protects you from falling and explosions,(150 kills)
         ✓ [NEW] Ammo Package : Drop a pickup that gives ammo! (200 kills)
         ✓ [NEW] Chopper Gunner : Control a Hunter helicopter! (250 kills)
         ✓ Emergency Air drop : A airplane drops 2-5 Care Package bonuses (300 kills)
         ✓ [NEW] Reaper : Control a Reaper UAV (400 kills)
         ✓ Airstrike :(Named before as 'Bomb') An airplane drops a bomb that kills all the spawned zombies with an boom. (450 kills)
         ✓ Nuke: Same as Airstrike but it also skips the round, and resets the kill counter. You can't get this by buying a extra killstreak. (500 kills)
   Removed:
      ✓ Many killstreaks rewards were removed and replaced.
      ✓ Chat messages when damaging zombies (Result is less lag)
Installation:Download:
11
Bugs and Crashes / [BUG] Insane player desync
« on May 1st, 2019, 02:19 PM »
Description
After playing for about 1 hour on my zombie survival server with AlecuMadalin, he got invisible for some reason. His shadow is still visibile. Seems to be fixed by respawining or by rejoining.
Reproducible
Sometimes

What you were doing when the bug happened

https://www.youtube.com/watch?v=vaanL7IXQkE

What you think caused the bug
My revival system :
Code: [Select]
function Survivor::Revive(Saviour)
{
Saviour.player.Score += 1;
GetKillStreakReward(Saviour.player);
this.Up();
::Message(GREEN+Saviour.player+" revived "+this.player);
}
function Survivor::Update()
{
if(this.NeedToBeSaved == false)
{
if(this.player.Health < this.MaxHP)
{
this.player.Health += 1;
if(this.FastHealthRegen) this.player.Health += 4;
if(this.player.Health > this.MaxHP) this.player.Health = this.MaxHP;
}
if(this.player.Health <= 25) this.Down();
}
if(this.NeedToBeSaved)
{
this.player.Health -= 1;
if(this.player.Health == 1)
{
this.player.Frozen = false;
this.player.Kill();
::Message(RED+this.player+" was killed by zombies!");
}
if(this.FastRevive)
{
this.player.Health += 6;
if(this.player.Health >= 100)
{
this.Up();
this.player.Health = this.MaxHP;
this.FastRevive = false;
}
}
}
if(LOADEDMAP != null)
{
if(::DistanceFromPoint(this.player.Pos.x,this.player.Pos.y,::LOADEDMAP.pos.x,::LOADEDMAP.pos.y) > ::LOADEDMAP.distance)
{
::Announce("~o~GET BACK TO THE FIGHTNING ZONE COMRADE!",this.player,0);
this.player.Health -= 5;
}
else if(ZOMBIE_IMMUNITY >0 )
{
this.player.Health = this.MaxHP;
if(this.NeedToBeSaved) this.Up();
}
}
}
12
Description
The function Player::PlayerShoot isn't called when a hunter machine gun is used, same with shotguns, grenades, and molotovs...
And the function onObjectShot  isn't called when a Hunter guns are used too.

Reproducible
Always

What you were doing when the bug happened
Working on my Zombie survival server... Tried to reward players with a Hunter on a specific number of kills, but hits don't get detected.

I used this code to see if it is called:
Code: [Select]
function Player::PlayerShoot( player, weapon, hitEntity, hitPosition )
{
Console.Print("Player :"+player.Name+" "+weapon+" ");
}

What you think caused the bug
I don't know tbh
13
Script and Content Requests / [READ-ME] Before requesting content.
« on February 26th, 2019, 05:52 PM »
I'm going to keep this short and simple.

1.) Stop copy-pasting the scripts directly. It makes your code unreadable and confusing. Use
Code: [Select]
[code][ /code]
without the space  between the [ and / . Example:

This is bad:
player.Cash += 5000 + rand() % 5000;

This is good
Code: [Select]
player.Cash += 5000 + rand() % 5000;

2.) No one wants to fix your broken leaked and stolen pieces of code. You better go start learning to write code correctly. There are some links to get started.

There are some links to get you started... (Yes learning other languages is a great practice)

https://www.sololearn.com/

http://squirrel-lang.org/squirreldoc/


https://www.youtube.com/watch?v=vLnPwxZdW4Y

3.) Don't make thread titles like :
Code: [Select]
I wants scripst pls pls pls help me fast cuz imma gonna die if i get no scripts :((((
or
Code: [Select]
Pls scripts help

Writing forum threads like this makes you look like an absolute retard.

4.) If a plugin like the MySQL, INIParser or SQLite isn't loading , then stop making your server.

So, please newbies, keep these rules in mind.
15
Script Showroom / [OLD] Zombie survival 0.1 by Athanatos
« on January 5th, 2019, 03:38 PM »
Since this gamemode is soo laggy when there are more than 1 player, and I got bored of making it, there it is.

Download link in the video's description.


https://www.youtube.com/watch?v=y3RmBig5do0&index=10&list=PLGWhUKmXCmolfFOQkrilEh6EwYcw2qwYD

Installation:
(click to show/hide)
1.) Get a copy of sseebbyy's blank server
2.) Copy the files from the folder into the blank server
3.) Done!