SA-MP Forums Archive
/ad command - 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)
+--- Thread: /ad command (/showthread.php?tid=602519)



/ad command - bugmenotlol - 08.03.2016

how to make a simple ad command like this

for eg:Advertisement: selling alpha for -------
Advertisement by [Playername]

thx


Re: /ad command - saffierr - 08.03.2016

Just an example:
PHP код:
CMD:ad(playeridparams[])
{
   new 
string[128], message[128], playername[MAX_PLAYER_NAME];
   if(
sscanf(params"s[128]"message)) return SendClientMessage(playerid, -1"Syntax: /ad [message]");
   
GetPlayerName(playeridplayernameMAX_PLAYER_NAME);
   
format(stringsizeof string"Advertisement by %s: %s"playernamemessage);
   
SendClientMessageToAll(-1string); 



Re: /ad command - bugmenotlol - 08.03.2016

Quote:
Originally Posted by saffierr
Посмотреть сообщение
Just an example:
PHP код:
CMD:ad(playeridparams[])
{
   new 
string[128], message[128], playername[MAX_PLAYER_NAME];
   if(
sscanf(params"s[128]"message)) return SendClientMessage(playerid, -1"Syntax: /ad [message]");
   
GetPlayerName(playeridplayernameMAX_PLAYER_NAME);
   
format(stringsizeof string"Advertisement by %s: %s"playernamemessage);
   
SendClientMessageToAll(-1string); 
which cmd processer i have to use for it ?


Re: /ad command - YouServ - 08.03.2016

Required zcmd & sscanf


Re: /ad command - TheHonnor - 08.03.2016

I have remade your command..

Код:
CMD:ad(playerid, params[])
{
	if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, -1, "{CDCDCD}Syntax: {FFFFFF}/Ad [Text]");
	if(strlen(params) < 3) return SendClientMessage(playerid, -1, "{FF8000}ERROR: Invalid Text Length!");
	new MyName[24], String[164]; GetPlayerName(playerid, MyName, 24);
	format(String, 164, "{FFFF00}New Advertisement: %s: %s", MyName, params);
	return SendClientMessageToAll(-1, String);
}



Re: /ad command - bugmenotlol - 09.03.2016

Quote:
Originally Posted by TheHonnor
Посмотреть сообщение
I have remade your command..

Код:
CMD:ad(playerid, params[])
{
	if(sscanf(params, "s[128]", params)) return SendClientMessage(playerid, -1, "{CDCDCD}Syntax: {FFFFFF}/Ad [Text]");
	if(strlen(params) < 3) return SendClientMessage(playerid, -1, "{FF8000}ERROR: Invalid Text Length!");
	new MyName[24], String[164]; GetPlayerName(playerid, MyName, 24);
	format(String, 164, "{FFFF00}New Advertisement: %s: %s", MyName, params);
	return SendClientMessageToAll(-1, String);
}
and how can i make GivePlayerMoney(playerid,-10000) ??
and i need a timer of 1 miinute for each ad
thnx


Re: /ad command - xTURBOx - 09.03.2016

PHP код:
new advtime[MAX_PLAYERS];

CMD:ad(playerid,params[])
{
    new 
string[128], message[128], playername[MAX_PLAYER_NAME];
   if(
sscanf(params"s[128]"message)) return SendClientMessage(playerid, -1"Syntax: /ad [message]");
   if(
GetPlayerMoney(playerid) <= 10000) return SendClientMessage(playerid, -1"Error: You don't have $10000 to make a Advertisement");
   if(
advtime[playerid] == 1) return SendClientMessage(playerid, -1"Error: please wait before making another Advertisement");
   
GetPlayerName(playeridplayernameMAX_PLAYER_NAME);
   
format(stringsizeof(string), "{FFFF00}Advertisement by %s: %s"playernamemessage);
   
SendClientMessageToAll(-1string); 
   
advtime[playerid] = 1;
   
SetTimerEx("advtimer"60000false"i",playerid);
   return 
1;
}
forward advtimer(playerid);
public 
advtimer(playerid)
{
    if(
advtime[playerid] == 1)
    {
        
advtime[playerid] = 0;
    }

Don't forget to reset the variable on playerconnect/disconnect
just add this under onplayerconnect
PHP код:
public OnPlayerConnect(playerid)
{
    
advtime[playerid] = 0;




Re: /ad command - Untonyst - 09.03.2016

Try this

PHP код:
COMMAND:ad(playeridparams[])
{
    if (
GetSVarInt(ad_true_msg) == 1)
        return 
SendClientMessage(playerid, -1, !"{CDCDCD}You can't send an advertising message!");    
    if (
sscanf(params"s[128]"params))
        return 
SendClientMessage(playerid, -1, !"{CDCDCD}Syntax: {FFFFFF}/ad [text]");    
    new 
name[MAX_PLAYER_NAME], ad_message[145] = "Advertisement by ";    
    
GetPlayerName(playeridnameMAX_PLAYER_NAME);    
    
strcat(ad_messagename);
    
strcat(ad_message": ");
    
strcat(ad_messageparams);
    
SetSVarInt("ad_true_msg"1);
    
SetTimerEx("@__OnPlayerSendAdMsg"1000*590"s"ad_message);
    
    return 
SendClientMessage(playerid, -1, !"Your message has been sent!");
}
@
__OnPlayerSendAdMsg(message[]); 
@
__OnPlayerSendAdMsg(message[])
{
    
SendClientMessageToAll(0xFFFF00FFmessage);
    
SetSVarInt("ad_true_msg"0);

Write me if there are errors in my example. I have not tested his version


Re: /ad command - bugmenotlol - 09.03.2016

Quote:
Originally Posted by xTURBOx
Посмотреть сообщение
PHP код:
new advtime[MAX_PLAYERS];
CMD:ad(playerid,params[])
{
    new 
string[128], message[128], playername[MAX_PLAYER_NAME];
   if(
sscanf(params"s[128]"message)) return SendClientMessage(playerid, -1"Syntax: /ad [message]");
   if(
GetPlayerMoney(playerid) <= 10000) return SendClientMessage(playerid, -1"Error: You don't have $10000 to make a Advertisement");
   if(
advtime[playerid] == 1) return SendClientMessage(playerid, -1"Error: please wait before making another Advertisement");
   
GetPlayerName(playeridplayernameMAX_PLAYER_NAME);
   
format(stringsizeof(string), "{FFFF00}Advertisement by %s: %s"playernamemessage);
   
SendClientMessageToAll(-1string); 
   
advtime[playerid] = 1;
   
SetTimerEx("advtimer"60000false"i",playerid);
   return 
1;
}
forward advtimer(playerid);
public 
advtimer(playerid)
{
    if(
advtime[playerid] == 1)
    {
        
advtime[playerid] = 0;
    }

Don't forget to reset the variable on playerconnect/disconnect
just add this under onplayerconnect
PHP код:
public OnPlayerConnect(playerid)
{
    
advtime[playerid] = 0;

it does not reduces 10k from player :P


Re: /ad command - xTURBOx - 09.03.2016

totally forgot to add "GivePlayerMoney(playerid,-10000);"
Just add it under if (advtime[playerid].....

Eg
Код:
 if (advtime[playerid].....
GivePlayerMoney(playerid,-10000);
GetPlayerName....