[GameMode] Freeroam/Stunt/DM v.1.0
#1

Introduction

I have been developing a small beginners freeroam/stunt/dm gamemode for a small amount of time and I've decided to fully work and finish the project.I am releasing the first version to the public so you guys can what work I've done so far.I will keep releasing other versions that will be finished in the future and I really hope you guys will like them.

Features

Код:
v.1.0 Features list
-------------------

Contains 28 fully funcional player commands that can be viewed in /cmds
Question and Report system
Rules Dialog
Class selection with more then 200+ different skins
Weapon spawns
PM System
Random Messages system displayed by "BOTGirl" and "BOTBoy"
Register/Login system Y_ini based
Maps all around San Andreas
Donor features that can be viewed in /dfeatures 
And a /setlevel commands for rcon admins (will be used when the admin system finishes)
Bugs

There are not bugs currently, if you find some please let me know in the comments down bellow, it would be gladly appreciated!

Versions

Down bellow will be listed all the versions that wil be released

Код:
Freeroam/Stunt/DM Versions [Project stopped]
--------------------------

v.1.0 - [FINISHED]
v.1.2 - [STOPPED]
v.2.0 - [0% DONE]
v.2.2 - [0% DONE]
v.3.0 - [0% DONE]
The gamemode has been stopped with the development for personal issues.Minor updates were made.


Images










Download
Pastebin

Credits

Streamer Plugin - Incognito
Whirlpool and sscanf - ******
zcmd - Zeex
Maps that were used - NGF


Important Note

As some of you will probably notice that the /radio and /stopradio do not work.I was meaning to add them in a small update of v.1.0 so you know.
And, the maps were not done by me.They were credited above.Since I am not a mapper so I used some maps I found here, I will try to add my own maps in the next version though.
Reply
#2

Good Work,useful for Beginners!
Reply
#3

Quote:
Originally Posted by Scripter18
Посмотреть сообщение
Good Work,useful for Beginners!
Thanks!
Reply
#4

Pastebin?
Reply
#5

Quote:
Originally Posted by SickAttack
Посмотреть сообщение
Pastebin?
The pastebin has been added!Take a look
Reply
#6

It seems like a good gamemode to start off with, but if you're willing to improve it, you could:
  • Change loops that use MAX_PLAYERS for loops that use GetPlayerPoolSize.
  • Save the player's name in a variable, and use it instead of retrieving the player's name with the native function over and over again.
  • pawn Код:
    if(sscanf(params, "s[250]", string))
    Input is restricted to 128 characters. 250?
  • pawn Код:
    new string2[250];
    format(string2, sizeof(string2), "{D526D9}[WHISPER] {FFFFFF}%s(%i): %s", name, playerid, string);
    Output is restricted to 144. 250?
  • Use booleans instead of just using 0 and 1 on integers.
  • pawn Код:
    format(string, sizeof(string), "{F5F111}Level 1 Donor [$5.00 USD]\n\n", string);
    format(string, sizeof(string), "%s{FFFFFF}- Receive 500,000 in-game cash.\n", string);
    format(string, sizeof(string), "%s{FFFFFF}- Get a custom VIP tag.\n", string);
    That is a very slow method, it appends the string previously appended and formats the "new" string. Use format + strcat, it's much faster (tests have been made).
  • pawn Код:
    if(playerid == id) return SendClientMessage(playerid, COLOR_WHITE, "{FC3003}[ERROR]{FFFFFF} You can't send a PM to yourself!");
        {
            GetPlayerName(playerid, Name1, sizeof(Name1));
            GetPlayerName(id, Name2, sizeof(Name2));
            format(str, sizeof(str), "{FC9D03}[PM]{FFFFFF} to {FC9D03}%s(%d){FFFFFF}: %s", Name2, id, str2);
            SendClientMessage(playerid, COLOR_WHITE, str);
            format(str, sizeof(str), "{FC9D03}[PM]{FFFFFF} from {FC9D03}%s(%d){FFFFFF}: %s", Name1, playerid, str2);
            SendClientMessage(id, COLOR_WHITE, str);
        }
    What's up with those curly braces?
  • pawn Код:
    new str[400], str2[400]
    You're using variables with a lot of cells for outputs restricted to 144 characters, consider reducing the amount of cells used to 144. Note that to format "Hello %s!" and store it in a 144 cell variable isn't the same as storing it into a 400 cell variable. It takes longer on the 400 cell variable (tests have been made).
  • It isn't necessary to add a bunch of returns everywhere on OnDialogResponse.
I could probably go on and on, but I guess that's enough for the moment.

Good job, and if you would like to improve this gamemode a bit, but not in obligation, you can take in note my observations and possible improvements.

Good job, though! +6 rep
Reply
#7

Quote:
Originally Posted by SickAttack
Посмотреть сообщение
It seems like a good gamemode to start off with, but if you're willing to improve it, you could:
  • Change loops that use MAX_PLAYERS for loops that use GetPlayerPoolSize.
  • Save the player's name in a variable, and use it instead of retrieving the player's name with the native function over and over again.
  • pawn Код:
    if(sscanf(params, "s[250]", string))
    Input is restricted to 128 characters. 250?
  • pawn Код:
    new string2[250];
    format(string2, sizeof(string2), "{D526D9}[WHISPER] {FFFFFF}%s(%i): %s", name, playerid, string);
    Output is restricted to 144. 250?
  • Use booleans instead of just using 0 and 1 on integers.
  • pawn Код:
    format(string, sizeof(string), "{F5F111}Level 1 Donor [$5.00 USD]\n\n", string);
    format(string, sizeof(string), "%s{FFFFFF}- Receive 500,000 in-game cash.\n", string);
    format(string, sizeof(string), "%s{FFFFFF}- Get a custom VIP tag.\n", string);
    That is a very slow method, it appends the string previously appended and formats the "new" string. Use format + strcat, it's much faster (tests have been made).
  • pawn Код:
    if(playerid == id) return SendClientMessage(playerid, COLOR_WHITE, "{FC3003}[ERROR]{FFFFFF} You can't send a PM to yourself!");
        {
            GetPlayerName(playerid, Name1, sizeof(Name1));
            GetPlayerName(id, Name2, sizeof(Name2));
            format(str, sizeof(str), "{FC9D03}[PM]{FFFFFF} to {FC9D03}%s(%d){FFFFFF}: %s", Name2, id, str2);
            SendClientMessage(playerid, COLOR_WHITE, str);
            format(str, sizeof(str), "{FC9D03}[PM]{FFFFFF} from {FC9D03}%s(%d){FFFFFF}: %s", Name1, playerid, str2);
            SendClientMessage(id, COLOR_WHITE, str);
        }
    What's up with those curly braces?
  • pawn Код:
    new str[400], str2[400]
    You're using variables with a lot of cells for outputs restricted to 144 characters, consider reducing the amount of cells used to 144. Note that to format "Hello %s!" and store it in a 144 cell variable isn't the same as storing it into a 400 cell variable. It takes longer on the 400 cell variable (tests have been made).
  • It isn't necessary to add a bunch of returns everywhere on OnDialogResponse.
I could probably go on and on, but I guess that's enough for the moment.

Good job, and if you would like to improve this gamemode a bit, but not in obligation, you can take in note my observations and possible improvements.

Good job, though! +6 rep
I will try to improve it like you said.Thanks again
Reply
#8

Great job for a new guy!
Reply
#9

Quote:
Originally Posted by Martin512
Посмотреть сообщение
Great job for a new guy!
Thanks buddy!
Reply
#10

Hello it is what the Pastebin?
Reply
#11

Quote:
Originally Posted by GuepardHD
View Post
Hello it is what the Pastebin?
I don't understand you.Can you explain better?
Reply
#12

Last minor update added to the gamemode, unfortunately the new version(s) where stopped and the gamemode remains unfinished.
Reply
#13

Quote:
Originally Posted by KeithCooper
View Post
I don't understand you.Can you explain better?
He is asking for pastebin link.

Its in the post.
Reply
#14

good for begginers like me!
Reply
#15

download link??
Reply
#16

Seems good man
Reply
#17

what is the command for my owner in order to make someone become an admin?
Reply
#18

How to make someone donators?
Reply
#19

Quote:
Originally Posted by wisnuken
View Post
what is the command for my owner in order to make someone become an admin?
Be sure you are logged in as RCON.

Code:
CMD:setlevel(playerid, params[])
{
	new id,level,string[130],name[MAX_PLAYER_NAME];
	if(IsPlayerAdmin(playerid))
	{
	    if(sscanf(params,"ud",id,level))return SendClientMessage(playerid, COLOR_WHITE,"{FC03A1}Usage: /setlevel <player id> <level>");
	    if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_WHITE, "{FC3003}[ERROR]{FFFFFF} That player is not connected!");
	    else if(level > 4)return SendClientMessage(playerid, COLOR_WHITE,"{FC3003}[ERROR]{FFFFFF} Admin levels are between <1-4>");
	    else
	    {
	        pInfo[id][Adminlevel] = level;
	        format(string,sizeof(string),"{FC03A1}[INFO]{FFFFFF} Your admin level has been set to {FFFF00}%d.",level);
	        SendClientMessage(id,COLOR_WHITE,string);
			GetPlayerName(id,name,sizeof(name));
			format(string,sizeof(string),"{FC03A1}[ADMIN]{FFFFFF} You have set {FFFF00}%s's{FFFFFF} admn level to {FFFF00}%d.",name,level);
			SendClientMessage(playerid,COLOR_WHITE,string);
	    }
    }
    else
    {
        SendClientMessage(playerid, COLOR_WHITE,"{FC3003}[ERROR]{FFFFFF} You have to be logged in rcon to use this command!");
	}
	return 1;
}
Reply
#20

I mean just give me commands I do not really understand this
And how to make someone a Donor / Donator?
just give me commands I do not really understand this
And how to up score me
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)