SA-MP Forums Archive
[Tutorial] Setting GodMode to a player ! [Unique] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Tutorials (https://sampforum.blast.hk/forumdisplay.php?fid=70)
+---- Thread: [Tutorial] Setting GodMode to a player ! [Unique] (/showthread.php?tid=545660)



Setting GodMode to a player ! [Unique] - HY - 09.11.2014

Setting GodMode to a player :

[UNIQUE]



• Hello, I was bored, so I decided to make a /SetGodMode command tutorial.

• What is this?
• Answer: It's a command, wich will sets to a player GodMode [Infinity Life]

• I think this command it's unique, because I never seen this before.


Starting :

pawn Код:
CMD:setgodmode(playerid,params[]) // This it's our command made with ZCMD ;
                                  // ZCMD = A command processor made by Zeex [Thanks Zeex]
{ // We open brackelet !
    new ID; // Making a Variable for ID. Wich represent the PlayerID of that player !
    if(IsPlayerAdmin(playerid)) // This it's the Admin Variable. This is a variable for RCON Admin ;
                                // So you need first to log in as RCON, before using this command.
                                // Or change with your Admin Variable.
    { // Open second brackelet, before your admin variable !
        if(sscanf(params,"i", ID)) return SendClientMessage(playerid,-1,"{FF0000}AdmUsage: {15FF00}/SetGodMode [PlayerID]"); // If he makes something wrong, only /SetGodMode, will show to him Usage.
        SetPlayerHealth(ID, 10000000); // Will sets to specified player GodMode. [100000000 Life]
        SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You gave Infinity Life {FFFF00}[GODMODE] {15FF00}to specified player !"); // This will saw the Admin wich gonna sets GodMode to a player !
        SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You received Infinity Life {FFFF00}[GODMODE] {15FF00}from Administrator !"); // This will saw player, wich Admin sets to it God Mode
    } // Closing brackelet !
    else // Else, if he use that command again on that player, will sets 100 life !
    { // Open brackelet
        SetPlayerHealth(ID, 100); // Will sets to that player 100 life, for second use.
        SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You player's Infinity Life {FFFF00}[GODMODE] [15FF00}!"); // This will saw the Admin wich writes second time /SetGodMode [ID]
        SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You don't have GodMode now !"); // This will saw the player !
    }
    return 1; // We need to return 1, else we will get errors.
} // And we close the last brackelet.

/*

After you did this, your command will works.
It's a simple command, but unique.

*/

All code :

pawn Код:
#include <a_samp>
#include <zcmd>

CMD:setgodmode(playerid,params[])
{
    new ID;
    if(PlayerInfo[playerid][Admin] >= 2)
    {
        if(sscanf(params,"i", ID)) return SendClientMessage(playerid,-1,"{FF0000}AdmUsage: {15FF00}/SetGodMode [PlayerID]");
        SetPlayerHealth(ID, 10000000);
        SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You gave Infinity Life {FFFF00}[GODMODE] {15FF00}to specified player !");
        SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You received Infinity Life {FFFF00}[GODMODE] {15FF00}from Administrator !");
    }
    else
    {
        SetPlayerHealth(ID, 100);
        SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You player's Infinity Life {FFFF00}[GODMODE] [15FF00}!");
        SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You don't have GodMode now !");
    }  
    return 1;
}
Before start, you need to have ZCMD include, by Zeex. If you don't have, download it from right here !


Re: Setting GodMode to a player ! [Unique] - Glossy42O - 09.11.2014

Really nice.


AW: Setting GodMode to a player ! [Unique] - Flori - 09.11.2014

Well done.


Re: Setting GodMode to a player ! [Unique] - Sasino97 - 09.11.2014

It's bracket, not brackelet

pawn Код:
else // Else, if he use that command again on that player, will sets 100 life !
    { // Open brackelet
        SetPlayerHealth(ID, 100); // Will sets to that player 100 life, for second use.
        SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You player's Infinity Life {FFFF00}[GODMODE] [15FF00}!"); // This will saw the Admin wich writes second time /SetGodMode [ID]
        SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You don't have GodMode now !"); // This will saw the player !
    return 1; // We need to return 1, else we will get errors.
} //
And you forgot a bracket here. (before return 1)

pawn Код:
else
    {
        SetPlayerHealth(ID, 100);
        SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You player's Infinity Life {FFFF00}[GODMODE] [15FF00}!");
        SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You don't have GodMode now !");
    }
    else
    {
        SendClientMessage(playerid, -1, "{FF0000}ERROR: {15FF00}You are not authorized to use this command !");
    }
And you can't write an 'else' twice...
The code has lots of errors, it wont work..


Besides that, good job to trying to write a tutorial !


Re: Setting GodMode to a player ! [Unique] - Arastair - 09.11.2014

Woah, nice, good job.


Re: Setting GodMode to a player ! [Unique] - Dziugsas - 09.11.2014

What is so unique about it?


Re: Setting GodMode to a player ! [Unique] - HY - 09.11.2014

Quote:
Originally Posted by Stuun
Посмотреть сообщение
Really nice.
Quote:
Originally Posted by Flori
Посмотреть сообщение
Well done.
Thanks.

Quote:
Originally Posted by Sasino97
Посмотреть сообщение
It's bracket, not brackelet

pawn Код:
else // Else, if he use that command again on that player, will sets 100 life !
    { // Open brackelet
        SetPlayerHealth(ID, 100); // Will sets to that player 100 life, for second use.
        SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You player's Infinity Life {FFFF00}[GODMODE] [15FF00}!"); // This will saw the Admin wich writes second time /SetGodMode [ID]
        SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You don't have GodMode now !"); // This will saw the player !
    return 1; // We need to return 1, else we will get errors.
} //
And you forgot a bracket here. (before return 1)

pawn Код:
else
    {
        SetPlayerHealth(ID, 100);
        SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You player's Infinity Life {FFFF00}[GODMODE] [15FF00}!");
        SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You don't have GodMode now !");
    }
    else
    {
        SendClientMessage(playerid, -1, "{FF0000}ERROR: {15FF00}You are not authorized to use this command !");
    }
And you can't write an 'else' twice...
The code has lots of errors, it wont work..


Besides that, good job to trying to write a tutorial !
Thanks, solved.

Quote:
Originally Posted by Arastair
Посмотреть сообщение
Woah, nice, good job.
Thanks !

Quote:
Originally Posted by Dziugsas
Посмотреть сообщение
What is so unique about it?
Nobody did this? It's first time. Did somebody else made a "/SetGodMode" command? I want to see a post like this !


Re: Setting GodMode to a player ! [Unique] - Glossy42O - 09.11.2014

I found look http://forum.sa-mp.com/showthread.ph...17#post3252417


Re: Setting GodMode to a player ! [Unique] - Arastair - 09.11.2014

It would be better if you could add a command to change a group of players gamemodes


Re: Setting GodMode to a player ! [Unique] - Sasino97 - 10.11.2014

Код:

// LOGICALLY INCORRECT CODE

#include <a_samp>
#include <zcmd>


CMD:setgodmode(playerid,params[])
{
	new ID;
	if(PlayerInfo[playerid][Admin] >= 2)
	{
    	if(sscanf(params,"i", ID)) return SendClientMessage(playerid,-1,"{FF0000}AdmUsage: {15FF00}/SetGodMode [PlayerID]");
    	SetPlayerHealth(ID, 10000000);
    	SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You gave Infinity Life {FFFF00}[GODMODE] {15FF00}to specified player !");
    	SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You received Infinity Life {FFFF00}[GODMODE] {15FF00}from Administrator !");
	}
	else
	{
        SetPlayerHealth(ID, 100);
    	SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You player's Infinity Life {FFFF00}[GODMODE] [15FF00}!");
    	SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You don't have GodMode now !");
        }
    }	
    return 1;
}
That's still not working as it is supposed to do...

the keyword else means what it should do if the if condition is false. So basically, you are telling it:
IF playerid is admin
SET ID's Health to 1000000
IF playerid is not admin
SET ID's Health to 100

To make it working good you should tell it to

IF playerid is admin and ID has normal health
SET ID's Health to 1000000
IF playerid is admin and ID has god mode
SET ID's Health to 100
IF playerid is not admin
TELL playerid that he can't use that command

GOOD CODE
pawn Код:
CMD:setgodmode(playerid,params[])
{
    // outside
    new godmode[MAX_PLAYERS];

    //inside the CMD:
    new ID;
    if(PlayerInfo[playerid][Admin] >= 2)
    {
        if(sscanf(params,"i", ID)) return SendClientMessage(playerid,-1,"{FF0000}AdmUsage: {15FF00}/SetGodMode [PlayerID]");
       
        if(godmode[playerid] == 0)
        {
            godmode[playerid] = 1;
            SetPlayerHealth(ID, 10000000);
            SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You gave Infinity Life {FFFF00}[GODMODE] {15FF00}to specified player !");
            SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You received Infinity Life {FFFF00}[GODMODE] {15FF00}from Administrator !");
        }
        else
        {
            godmode[playerid] = 0;
            SetPlayerHealth(ID, 100);
            SendClientMessage(playerid, -1, "{FF0000}AdmCmd: {15FF00}You player's Infinity Life {FFFF00}[GODMODE] [15FF00}!");
            SendClientMessage(ID, -1, "{FF0000}AdmCmd: {15FF00}You don't have GodMode now !");
        }
    }
    else
    {
        SendClientMessage(playerid, -1, "{FF0000}You're not authorized to use this command{15FF00}!");
    }  
    return 1;
}
I have to say something on this too:
pawn Код:
if(PlayerInfo[playerid][Admin] >= 2)
This is not standard, you have to explain the readers that PlayerInfo[playerid][Admin] could not be the same on all scripts.