Welcome, Guest |
You have to register before you can post on our site.
|
Online Users |
There are currently 355 online users. » 0 Member(s) | 352 Guest(s) Google, Bing, Yandex
|
Latest Threads |
Command does not work in-...
Forum: Pawn Scripting
Last Post: PANZEHIR_
2024-11-23, 06:36 PM
» Replies: 0
» Views: 41
|
White Screen
Forum: Support
Last Post: Phat202146_real
2024-11-21, 02:50 PM
» Replies: 0
» Views: 38
|
I get error 021 using y_h...
Forum: Pawn Scripting
Last Post: daniscript18
2024-11-18, 11:34 PM
» Replies: 0
» Views: 55
|
Il reste des français sur...
Forum: French/Fran?ais
Last Post: tysanio
2024-11-18, 05:39 AM
» Replies: 2
» Views: 465
|
Object creation issues
Forum: Programming
Last Post: K1271
2024-11-15, 11:51 PM
» Replies: 0
» Views: 56
|
Is the SAMP Hosting the s...
Forum: General Discussions
Last Post: OperaGX
2024-11-14, 09:33 PM
» Replies: 0
» Views: 74
|
Run time error 19: "File ...
Forum: Pawn Scripting
Last Post: Rexey
2024-11-14, 03:50 AM
» Replies: 0
» Views: 64
|
How to Compile Your Gamem...
Forum: Tutorials
Last Post: thelante
2024-11-13, 08:50 AM
» Replies: 3
» Views: 467
|
Modeller wanted
Forum: Development Updates
Last Post: acc.gangbeni
2024-11-11, 05:10 PM
» Replies: 9
» Views: 16,502
|
SA:MP forum offline
Forum: Portuguese/Portugu?s
Last Post: weslley_script
2024-11-09, 05:27 PM
» Replies: 7
» Views: 9,926
|
|
|
Server Crashing |
Posted by: Logan - 2019-07-07, 09:56 AM - Forum: Pawn Scripting
- Replies (2)
|
|
Greetings all, the problem has emerged on one of my RolePlay servers. One of the developers was sloppy, hasn't following server_log up to date as he had to do, and the whole shitpile culminated with random server crashes/restarts with this repeating piece of information before the crash itself:
Code: [18:29:15] [debug] Server crashed while executing coarp.amx
[18:29:15] [debug] AMX backtrace:
[18:29:15] [debug] #0 00000075 in ?? (... <29 arguments>) at <unknown file>:0
[18:29:15] [debug] #1 00000075 in public OnPlayerCommandText () at <unknown file>:0
Any ideas what could it be? Could it be memory leak, or what?
|
|
|
Some person spamming SA:MP forums member |
Posted by: Gforcez - 2019-07-06, 05:52 PM - Forum: General Discussions
- Replies (40)
|
|
Hey,
There's this person that's spamming private messages to people advertising for Burgershot and open.mp. I assume this person isn't from the open.mp team, but before the open.mp team gets blamed again for being 'toxic' and what not, I like to report it.?
Clearly this person sends it to people who respond to "sa:mp is losing players" type topics.?
I wasn't quite sure where to post this. so I hope this category is okay.
|
|
|
Some Suggestions for scripting for OMP |
Posted by: SkeeZy - 2019-07-06, 01:37 PM - Forum: Questions and Suggestions
- Replies (3)
|
|
Hey,
i got some more ideas for functions that could be very useful for scripters in OpenMP.
1. pause/sleep(time in s/ms)
I think everyone knows what i mean with that. If we had the ability to use this instead of timers directly in commands or functions it would be easier to
script time based stuff. EDIT: THIS SHOULD NOT REPLACE TIMERS BUT BE ADDITIONAL TO IT AS AN EXTRA FUNCTION
Example:
You send a message to the Player per command.
After that the function should stop for 3seconds and then the rest of the function can be done.
Code: SendClientMessage(playerid, COLOR, "Trying to tow the nearest Vehicle. ?Please wait");
sleep(3000);//3ms or 3 sec
AttachTrailerToVehicle(...);
SendClientMessage(playerid, COLOR, "Vehicle towed.");
2. AttachVehicleToVehicle(vehicleid, tovehicleid, offset:x, offset:y, offset:z)
I was wondering why this was not already implemented in samp. It could work the same way AttachTrailerToVehicle/AttachObjectToVehicle works and would be very useful for many servers e.g. on reallife or trucker servers, where you need to tow vehicles or transport them on the packer.
The only possible way i know for doing this since yet is using a timer, which teleports the vehicle again and again and is not that good for the servers performance.
3. Colorable Checkpoints (ARGB): SetCheckpointColor(checkpointid, a, r, g, b)
4. Vehicleobjects
Objects with the texture of gta sa vehicles. They could be very useful for mappers and serverowners to create new places and jobs with it.
I saw the first two points in a couple samp forums and also needed them for my own server.?
I think they could atleast be good for some updates after the official OpenMP release
|
|
|
DateTime |
Posted by: Sasino97 - 2019-07-05, 02:22 PM - Forum: Libraries
- No Replies
|
|
DateTime
By
SA-MP date time library include for pawn pawno San Andreas Multiplayer by Sasino by Sasinosoft
Introduction
This library provides useful functions to work with dates and times in Pawn. I've been?using it for?years now, together with other personal utility libraries, but today I decided to make this one available for everyone and?open source.
Description
The library was?inspired by?the .NET DateTime struct, however there are major differences. The most obvious difference is that Pawn is not an object oriented language, so all the functions would be considered static methods in a static class. Another important difference is that the information for one DateTime instance is stored in a 64-bit integer in .NET, while in this case I decided to store the value in an array of 6 (32-bit)?cells for simplicity (year, month, day, hour, minute, second), making each DateTime 192 bits in length. There are currently no functions to work with week days, nor functions to parse/print extended dates (with week day names or month names). The only calendar supported is the Gregorian (western) calendar.
Formats
In memory, DateTimes are all stored in the "YMDhms" format, and all the functions expect this format,?however, the library provides a way to parse and output strings in the major?formats, separated by?any 1-character separator.
The supported date formats are:
PHP Code: DateFormat.BigEndian?? ? // Year, Month, Day
DateFormat.LittleEndian? // Day, Month, Year
DateFormat.MiddleEndian ?// Month, Day, Year
The supported time formats are:
PHP Code: TimeFormat.H24, // 24 hours (0-23)
TimeFormat.H12 ?// 12 hours (1-12) AM/PM
Functions
Complete list of functions:
PHP Code: DateTime: DateTime.New(cell: year = 0, cell: month = 1, cell: day = 1, cell: hour = 0, cell: minute = 0, cell: second = 0);
DateTime: DateTime.NewDate(cell: year = 0, cell: month = 1, cell: day = 1);
DateTime: DateTime.NewTime(cell: hour = 0, cell: minute = 0, cell: second = 0);
DateTime: DateTime.Clone(const DateTime: other[DateTime.Size]);
DateTime: DateTime.Now();
DateTime: DateTime.Today();
DateTime: DateTime.CurrentTime();
cell: DateTime.GetYear(const DateTime: dateTime[DateTime.Size]);
void: DateTime.SetYear(DateTime: dateTime[DateTime.Size], cell: year);
cell: DateTime.GetMonth(const DateTime: dateTime[DateTime.Size]);
void: DateTime.SetMonth(DateTime: dateTime[DateTime.Size], cell: month);
cell: DateTime.GetDay(const DateTime: dateTime[DateTime.Size]);
void: DateTime.SetDay(DateTime: dateTime[DateTime.Size], cell: day);
cell: DateTime.GetHour(const DateTime: dateTime[DateTime.Size]);
void: DateTime.SetHour(DateTime: dateTime[DateTime.Size], cell: hour);
cell: DateTime.GetMinute(const DateTime: dateTime[DateTime.Size]);
void: DateTime.SetMinute(DateTime: dateTime[DateTime.Size], cell: minute);
cell: DateTime.GetSecond(const DateTime: dateTime[DateTime.Size]);
void: DateTime.SetSecond(DateTime: dateTime[DateTime.Size], cell: second);
cell: DateTime.Compare(const DateTime: dateTime1[DateTime.Size], const DateTime: dateTime2[DateTime.Size]);
bool: DateTime.Equals(const DateTime: dateTime1[DateTime.Size], const DateTime: dateTime2[DateTime.Size]);
cell: DateTime.GetNumberOfDays(cell: year, cell: month = 0);
void: DateTime.AddYears(DateTime: dateTime[DateTime.Size], cell: years);
void: DateTime.AddMonths(DateTime: dateTime[DateTime.Size], cell: months);
void: DateTime.AddDays(DateTime: dateTime[DateTime.Size], cell: days);
void: DateTime.AddHours(DateTime: dateTime[DateTime.Size], cell: hours);
void: DateTime.AddMinutes(DateTime: dateTime[DateTime.Size], cell: minutes);
void: DateTime.AddSeconds(DateTime: dateTime[DateTime.Size], cell: seconds);
DateTime: DateTime.ParseDate(const cell: dateString[], DateFormat: dateFormat = DEFAULT_DATE_FORMAT, cell: dateSeparator = DEFAULT_DATE_SEPARATOR);
DateTime: DateTime.ParseTime(const cell: timeString[], TimeFormat: timeFormat = DEFAULT_TIME_FORMAT, cell: timeSeparator = DEFAULT_TIME_SEPARATOR);
DateTime: DateTime.Parse(const cell: dateTimeString[], DateFormat: dateFormat = DEFAULT_DATE_FORMAT, TimeFormat: timeFormat = DEFAULT_TIME_FORMAT, cell: dateSeparator = DEFAULT_DATE_SEPARATOR, cell: timeSeparator = DEFAULT_TIME_SEPARATOR);
cell: DateTime.ToDateString(const DateTime: dateTime[DateTime.Size], DateFormat: dateFormat = DEFAULT_DATE_FORMAT, cell: dateSeparator = DEFAULT_DATE_SEPARATOR);
cell: DateTime.ToTimeString(const DateTime: dateTime[DateTime.Size], TimeFormat: timeFormat = DEFAULT_TIME_FORMAT, cell: timeSeparator = DEFAULT_TIME_SEPARATOR);
cell: DateTime.ToString(const DateTime: dateTime[DateTime.Size], DateFormat: dateFormat = DEFAULT_DATE_FORMAT, TimeFormat: timeFormat = DEFAULT_TIME_FORMAT, cell: dateSeparator = DEFAULT_DATE_SEPARATOR, cell: timeSeparator = DEFAULT_TIME_SEPARATOR);
note: both cell and void are defined as _ (no tag)
Example
As an example, here you are the test script?(included in the package):
PHP Code: /*
* Sasinosoft Utils
* Copyright (c) 2017-2019 - Sasinosoft
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <a_samp>
#include <sscanf2>
#include "../src/DateTime.inc"
main()
{
//
new DateTime: dt[DateTime.Size];
new DateTime: dt2[DateTime.Size];
//
printf("New(), NewDate(), NewTime()");
dt = DateTime.New(1997, 3, 29, 23, 18, 12);
printf(DateTime.ToString(dt));
dt = DateTime.NewDate(1997, 3, 29);
printf(DateTime.ToString(dt));
dt = DateTime.NewTime(23, 18, 12);
printf(DateTime.ToString(dt));
//
printf("\nClone()");
dt = DateTime.Clone(DateTime.New(2010, 5, 12, 6, 22, 12));
printf(DateTime.ToString(dt));
//
printf("\nNow(), Today(), CurrentTime()");
dt = DateTime.Now();
printf(DateTime.ToString(dt));
dt = DateTime.Today();
printf(DateTime.ToString(dt));
dt = DateTime.CurrentTime();
printf(DateTime.ToString(dt));
//
printf("\nGetters and Setters");
dt = DateTime.New(2017, 8, 12, 12, 50, 45);
printf(DateTime.ToString(dt));
printf("%d", DateTime.GetYear(dt));
printf("%d", DateTime.GetMonth(dt));
printf("%d", DateTime.GetDay(dt));
printf("%d", DateTime.GetHour(dt));
printf("%d", DateTime.GetMinute(dt));
printf("%d", DateTime.GetSecond(dt));
DateTime.SetYear(dt, 1956);
DateTime.SetMonth(dt, 6);
DateTime.SetDay(dt, 3);
DateTime.SetHour(dt, 15);
DateTime.SetMinute(dt, 22);
DateTime.SetSecond(dt, 12);
printf(DateTime.ToString(dt));
//
printf("\nCompare() and Equals()");
dt = DateTime.New(2019, 5, 11, 10, 10, 55);
dt2 = DateTime.New(2017, 8, 12, 12, 50, 45);
new cell: comparisonResult = DateTime.Compare(dt, dt2);
if (comparisonResult == 0)
printf("%s = %s", DateTime.ToString(dt), DateTime.ToString(dt2));
else if (comparisonResult < 0)
printf("%s < %s", DateTime.ToString(dt), DateTime.ToString(dt2));
else if (comparisonResult > 0)
printf("%s > %s", DateTime.ToString(dt), DateTime.ToString(dt2));
dt2 = DateTime.New(2022, 5, 1, 12, 2, 6);
comparisonResult = DateTime.Compare(dt, dt2);
if (comparisonResult == 0)
printf("%s = %s", DateTime.ToString(dt), DateTime.ToString(dt2));
else if (comparisonResult < 0)
printf("%s < %s", DateTime.ToString(dt), DateTime.ToString(dt2));
else if (comparisonResult > 0)
printf("%s > %s", DateTime.ToString(dt), DateTime.ToString(dt2));
if (DateTime.Equals(dt, dt2))
printf("%s = %s", DateTime.ToString(dt), DateTime.ToString(dt2));
else
printf("%s != %s", DateTime.ToString(dt), DateTime.ToString(dt2));
dt2 = DateTime.New(2019, 5, 11, 10, 10, 55);
if (DateTime.Equals(dt, dt2))
printf("%s = %s", DateTime.ToString(dt), DateTime.ToString(dt2));
else
printf("%s != %s", DateTime.ToString(dt), DateTime.ToString(dt2));
//
printf("\nGetNumberOfDays()");
printf("2017 has %d days", DateTime.GetNumberOfDays(2017));
printf("2018 has %d days", DateTime.GetNumberOfDays(2018));
printf("2019 has %d days", DateTime.GetNumberOfDays(2019));
printf("2020 has %d days", DateTime.GetNumberOfDays(2020));
printf("February 2017 has %d days", DateTime.GetNumberOfDays(2017, 2));
printf("February 2018 has %d days", DateTime.GetNumberOfDays(2018, 2));
printf("February 2019 has %d days", DateTime.GetNumberOfDays(2019, 2));
printf("February 2020 has %d days", DateTime.GetNumberOfDays(2020, 2));
//
printf("\nAddYears(), AddMonths(), AddDays(), AddHours(), AddMinutes(), AddSeconds()");
dt = DateTime.New(2002, 1, 1, 0, 0, 0);
printf(DateTime.ToString(dt));
DateTime.AddYears(dt, 5);
DateTime.AddMonths(dt, 4);
DateTime.AddDays(dt, 200);
DateTime.AddHours(dt, 120);
DateTime.AddMinutes(dt, 600);
DateTime.AddSeconds(dt, 5000);
printf(DateTime.ToString(dt));
// Check with https://www.timeanddate.com/date/timeadd.html to confirm
//
printf("\nParse(), ParseDate(), ParseTime(), ToString(), ToDateString(), ToTimeString()");
dt = DateTime.Parse("2019-05-02 22:50:10");
printf(DateTime.ToString(dt));
dt = DateTime.ParseDate("2050-02-06");
printf(DateTime.ToDateString(dt));
dt = DateTime.ParseTime("20:50:12");
printf(DateTime.ToTimeString(dt));
//
printf("\nParsing and producing strings with different/mixed formats and separators");
dt = DateTime.Parse("05/24/2019 10:50:10 PM", DateFormat.MiddleEndian, TimeFormat.H12, '/', ':');
printf("05/24/2019 10:50:10 PM -> %s", DateTime.ToString(dt, DateFormat.LittleEndian, TimeFormat.H24, '/', ':'));
dt = DateTime.Parse("26-05-2005 11.15 AM", DateFormat.LittleEndian, TimeFormat.H12, '-', '.');
printf("26-05-2005 11.15 AM -> %s", DateTime.ToString(dt, DateFormat.BigEndian, TimeFormat.H24, '/', ':'));
dt = DateTime.Parse("2000/03/20 16:05:54", DateFormat.BigEndian, TimeFormat.H24, '/', ':');
printf("2000/03/20 16:05:54 -> %s", DateTime.ToString(dt, DateFormat.MiddleEndian, TimeFormat.H12, '-', '.'));
//
printf("\nParse() benchmark");
new cell: t = GetTickCount();
for (new cell: i = 0; i < 1000000; i )
{
DateTime.Parse("2000/03/20 16:05:54", DateFormat.BigEndian, TimeFormat.H24, '/', ':');
}
printf("1000000 Parse() completed in %dms", GetTickCount() - t);
//
printf("\nToString() benchmark");
t = GetTickCount();
for (new cell: i = 0; i < 1000000; i )
{
DateTime.ToString(dt);
}
printf("1000000 ToString() completed in %dms", GetTickCount() - t);
}
Output:
Code: New(), NewDate(), NewTime()
1997-03-29 23:18:12
1997-03-29 00:00:00
0000-01-01 23:18:12
Clone()
2010-05-12 06:22:12
Now(), Today(), CurrentTime()
2019-07-05 15:48:53
2019-07-05 00:00:00
0000-01-01 15:48:53
Getters and Setters
2017-08-12 12:50:45
2017
8
12
12
50
45
1956-06-03 15:22:12
Compare() and Equals()
2019-05-11 10:10:55 > 2017-08-12 12:50:45
2019-05-11 10:10:55 < 2022-05-01 12:02:06
2019-05-11 10:10:55 != 2022-05-01 12:02:06
2019-05-11 10:10:55 = 2019-05-11 10:10:55
GetNumberOfDays()
2017 has 365 days
2018 has 365 days
2019 has 365 days
2020 has 366 days
February 2017 has 28 days
February 2018 has 28 days
February 2019 has 28 days
February 2020 has 29 days
AddYears(), AddMonths(), AddDays(), AddHours(), AddMinutes(), AddSeconds()
2002-01-01 00:00:00
2007-11-22 11:23:20
Parse(), ParseDate(), ParseTime(), ToString(), ToDateString(), ToTimeString()
2019-05-02 22:50:10
2050-02-06
20:50:12
Parsing and producing strings with different/mixed formats and separators
05/24/2019 10:50:10 PM -> 24/05/2019 22:50:10
26-05-2005 11.15 AM -> 2005/05/26 11:15:00
2000/03/20 16:05:54 -> 03-20-2000 4.05.54 PM
Parse() benchmark
1000000 Parse() completed in 2144ms
ToString() benchmark
1000000 ToString() completed in 838ms
License
Mozilla Public License
Download
GitHub
|
|
|
GetVehicleParamsEx |
Posted by: unbelievable_10 - 2019-07-01, 08:32 PM - Forum: Pawn Scripting
- Replies (1)
|
|
So what I want is that there is a check if the bonnet of the car (hood) is whether opened or closed, if its closed then player would receive a return SCM that he must open bonnet first in order to use the command, how can I make it?
|
|
|
command usage limit |
Posted by: unbelievable_10 - 2019-07-01, 12:23 AM - Forum: Pawn Scripting
- Replies (2)
|
|
So I made command /medkit use and buy, when player types /medkit buy, his tokens gets in -, while 1 medkit gets in , problem is that I put limit that they can use /medkit buy max 3 times and so that they cannot abuse it, but when they buy all 3 medkits, it will say "You can't buy more medkits this round!", when they use /medkit use, they will get Medkit -1, and they will have 2 medkits, which will make them to be ABLE to buy the medkit again and again and again if you understand, so I want to make that they can only write /medkit buy 3 times and when they spend third medkit that they cannot again buy it, how to fix? thanks[/size][/color]
Code: CMD:medkit(playerid, params[])
{
? ?new Float:HP;
? ?GetPlayerHealth(playerid, HP);
? ?if(playerTazed[playerid] == true || playerCuffed[playerid] == true || !IsPlayerSpawned(playerid) || playerWounded[playerid] > 0) return SFM(playerid, COLOR_ACMD, "[!] You cannot use this right now!");
? ?if(PlayerInfo[playerid][inGame] == false) return SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}You're not in the copchase!");
? ?new option[256];
? ?if(sscanf(params, "s[256]", option)) return SFM(playerid, COLOR_USAGE, "[USAGE] medkit <mymedkits/buy/use/help>");
? ?if(!strcmp(option, "mymedkits"))
? ?{
? ?SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}You currently have {FF6347}[{FFFFFF}%d{FF6347}] {FFFFFF}medkits!", PlayerInfo[playerid][MedKit]);
? ?}
? ?else if(!strcmp(option, "buy"))
? ?{
? ?if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && GetPlayerState(playerid) != PLAYER_STATE_PASSENGER) return SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}You can only buy medkits as a driver/passenger!");
? ?if(PlayerInfo[playerid][Tokens] < 250) return SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}You dont have enough tokens!");
? ?if(PlayerInfo[playerid][MedKit] >= 3) return SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}You can buy max 3 med kits per chase!");
? ?PlayerInfo[playerid][Tokens] -= 250;
? ?PlayerInfo[playerid][MedKit] = 1;
? ?cmd_me(playerid, "grabs some bandages from the vehicle");
? ?SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}You've sucessfully bought one medkit for 250 tokens!");
? ?}
? ?else if(!strcmp(option, "use"))
? ?{
? ?if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}You can only use medkits while onfoot!");
? ?if(gettime() < Cooldown[playerid]) return SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}Please wait before using a medkit again!");
? ?if(HP >= 100.0) return SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}You can only use med kits if your health is below 100%!");
? ?if(PlayerInfo[playerid][MedKit] == 0) return SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}You have no medkits!");
? ?PlayerInfo[playerid][MedKit] -= 1;
? ?SetPlayerHealth(playerid, HP);
? ?ApplyAnimation(playerid,"MEDIC","CPR",4.1, 0, 1, 1, 1, 5000, 1);
? ?SetTimerEx("Unfreeze", 5000, false, "d", playerid);
? ?cmd_me(playerid, "bandages himself up.");
? ?Cooldown[playerid] = gettime() 30 * 2;
? ?SFM(playerid, COLOR_ACMD, "[!] {FFFFFF}You've used one medkit and you've fixed your health for %! You've {FF6347}[{FFFFFF}%d{FF6347}] {FFFFFF}medkits left!", PlayerInfo[playerid][MedKit]);
}
else if(!strcmp(option, "help"))
{
? ?return cmd_medkithelp(playerid);
}
? ?return 1;
}
|
|
|
Getting Started |
Posted by: yusecozug - 2019-06-30, 08:36 AM - Forum: Chat
- Replies (4)
|
|
New guy here, I don't think you need an entire GTA:SA installation (with all the audio files and cut-scenes) if you're only doing multiplayer, how do I get started? What do I need to get?
I ask this so I don't go pirating a?4GB gta:sa game only to find out it's not 1.0 or something like that.
Anyone experienced enough to take me through the initial steps? I'm asking for help, not someone to hold my hand.
I don't want to go make time-wasting mistakes.
Thank you.
|
|
|
Docker-compose file for servers using a MySQL database |
Posted by: Freaksken - 2019-06-29, 03:50 AM - Forum: Releases
- Replies (1)
|
|
This small repository contains an example docker-compose file for SA-MP servers using a MySQL database.
- Put the docker-compose.yml file in the root folder of your server.
- Open the file and change the MYSQL_ROOT_PASSWORD to the root password of your MySQL database.
- Run?docker-compose up to start the docker containers.
|
|
|
[SA-MP 0.3.7] Santos Gaming | Role-Play Project |
Posted by: ShowTime - 2019-06-29, 02:40 AM - Forum: Serwery
- No Replies
|
|
Hej wszystkim!
Jestesmy w trakcie tworzenia projektu Santos Gaming, kt?ry ma na celu zrewolucjonizowac Polska scene Role Play na platformie SA-MP. Wiele serwer?w, kt?re znajduja sie na wersji 0.3.7 oraz 0.3 DL jest krytykowanych pod wzgledem braku zmian, oraz zlej administracji - Dlatego my chcemy wyciagnac pomocna dlon w strone graczy i stworzyc cos wyjatkowego, co stanie sie nowym domem dla wyjadaczy RP, oraz zwyklych niedzielnych graczy! Zachecamy do dolaczania na nasz serwer discord i pisania propozycji, oraz dyskusji. ??
?? Co oferujemy?
? Profesjonalna administracje z doswiadczeniem - nie popelniamy tych samych bled?w co inne serwery.
? Kilku Developer?w, kt?rzy codziennie pracuja nad rozwijaniem skryptu serwera, oraz forum.
? Ekipe, kt?ra jest pozytywnie nastawiona wobec kazdego gracza, bez wzgledu na to z jakiego serwera pochodzi.
? Mozliwosc dolaczenia do naszej ekipy i rozwijania projektu gry.
? Oryginalny skrypt serwera, oraz forum, kt?re zostanie stworzone na wlasnym silniku, kt?ry zostal stworzony przez nas.
?? Dolacz do nas juz dzis! ??
Serwer discord:?https://discord.gg/nNvfaXP
Strona WWW:?https://santosgaming.pl/
|
|
|
|