Problem with command /duel
#1

The problem is that when I challenge someone to a duel I get always the message / duel [id] what's wrong?
Код:
CMD:duel(playerid, params[])
	{
	        GetPlayerName(playerid, pname, sizeof(pname));
format(stringu, sizeof(stringu), "{54da00}[COMANDO]{ffffff}%s (ID: %d) ha usato il cmd {ff0000}/Duel", pname, playerid);
SendClientMessageToAll(COLOR_LIGHTBLUE, stringu);
		if(IsPlayerConnected(playerid))
		{
			tmp = strtok(params, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, Red, "[ERRORE:]{FFFFFF} /duel [ID]");
				return 1;
			}
			giveplayerid = ReturnUser(tmp);
			if(IsPlayerConnected(giveplayerid))
			{
				if(giveplayerid != INVALID_PLAYER_ID)
				{
				    if(statod[playerid] == 1 )
				    {
				        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Hai giа sfidato qualcuno");
				    }
				    if(statod[playerid] == 2 )
				    {
				        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Sei giа stato sfidato da qualcuno a un duello");
				    }
				    if(statod[playerid] == 3 )
				    {
				        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF}  Stai giа partecipando a un duello");
				    }
				    else if(statod[playerid] == 0 )
				    {
					    if(statod[giveplayerid] == 1 )
					    {
					        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Il giocatore ha giа sfidato qualcuno a un duello");
					    }
					    if(statod[giveplayerid] == 2 )
					    {
					        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Il giocatore и giа stato sfidato a un duello");
					    }
					    if(statod[giveplayerid] == 3 )
					    {
					        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Il giocatore sta giа partecipando a un duello");
					    }
					    else if(statod[giveplayerid] == 0 )
					    {
					        statod[playerid] = 1;
							statod[giveplayerid] = 2;
							GetPlayerName(playerid,nome,sizeof(nome));
							GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer));
						    format(string4,sizeof(string4),"[DUELLO:]{FFFFFF} %s ha sfidato %s a un duello", nome, giveplayer);
							SendClientMessageToAll(COLOR_ORANGE,string4);
							format(string4,sizeof(string4),"[DUELLO:]{FFFFFF} Hai sfidato %s a un duello, aspetta una risposta", giveplayer);
							SendClientMessage(playerid, COLOR_ORANGE,string4);
							sfidante[giveplayerid] = playerid;
						    format(string4,sizeof(string4),"[DUELLO:]{FFFFFF} Sei stato sfidato da %s a un duello, scrivi /accetta o /rifiuta", nome);
						    SendClientMessage(giveplayerid, COLOR_ORANGE, string4);
				        }
				    }
				}
			}
		}
		return 1;
	}
Reply
#2

i recommend you to use sscanf, it's way better and easier than strtok.

remove all your strtok things from the command and do:

pawn Код:
new targetid;
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, Red, "[ERROR:]{FFFFFF} /duel [playerid]");
do it like that, also, you need to get the latest sscanf plugin and you need to do
pawn Код:
#include <sscanf2>
for more information about sscanf i suggest you to go to the sscanf topic:
https://sampforum.blast.hk/showthread.php?tid=120356

the download link of sscanf is also there.
Reply
#3

Quote:
Originally Posted by Apenmeeuw
Посмотреть сообщение
i recommend you to use sscanf, it's way better and easier than strtok.

remove all your strtok things from the command and do:

pawn Код:
new targetid;
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, Red, "[ERROR:]{FFFFFF} /duel [playerid]");
do it like that, also, you need to get the latest sscanf plugin and you need to do
pawn Код:
#include <sscanf2>
for more information about sscanf i suggest you to go to the sscanf topic:
https://sampforum.blast.hk/showthread.php?tid=120356

the download link of sscanf is also there.
what line I need to edit to add what you told me?
Reply
#4

bump please
Reply
#5

pawn Код:
CMD:duel(playerid, params[])
    {
         new targetid;
            GetPlayerName(playerid, pname, sizeof(pname));
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, Red, "[ERROR:]{FFFFFF} /duel [playerid]");
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(params, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, Red, "[ERRORE:]{FFFFFF} /duel [ID]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if(IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(statod[playerid] == 1 )
                    {
                        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Hai giа sfidato qualcuno");
                    }
                    if(statod[playerid] == 2 )
                    {
                        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Sei giа stato sfidato da qualcuno a un duello");
                    }
                    if(statod[playerid] == 3 )
                    {
                        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF}  Stai giа partecipando a un duello");
                    }
                    else if(statod[playerid] == 0 )
                    {
                        if(statod[giveplayerid] == 1 )
                        {
                            SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Il giocatore ha giа sfidato qualcuno a un duello");
                        }
                        if(statod[giveplayerid] == 2 )
                        {
                            SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Il giocatore и giа stato sfidato a un duello");
                        }
                        if(statod[giveplayerid] == 3 )
                        {
                            SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Il giocatore sta giа partecipando a un duello");
                        }
                        else if(statod[giveplayerid] == 0 )
                        {
                            statod[playerid] = 1;
                            statod[giveplayerid] = 2;
                            GetPlayerName(playerid,nome,sizeof(nome));
                            GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer));
                            format(string4,sizeof(string4),"[DUELLO:]{FFFFFF} %s ha sfidato %s a un duello", nome, giveplayer);
                            SendClientMessageToAll(COLOR_ORANGE,string4);
                            format(string4,sizeof(string4),"[DUELLO:]{FFFFFF} Hai sfidato %s a un duello, aspetta una risposta", giveplayer);
                            SendClientMessage(playerid, COLOR_ORANGE,string4);
                            sfidante[giveplayerid] = playerid;
                            format(string4,sizeof(string4),"[DUELLO:]{FFFFFF} Sei stato sfidato da %s a un duello, scrivi /accetta o /rifiuta", nome);
                            SendClientMessage(giveplayerid, COLOR_ORANGE, string4);
                        }
                    }
                }
            }
        }
        return 1;
    }

Place it like this, but you have to edit the other lines too, not just this one..
Reply
#6

Quote:
Originally Posted by MonTaNaAa
Посмотреть сообщение
pawn Код:
CMD:duel(playerid, params[])
    {
         new targetid;
            GetPlayerName(playerid, pname, sizeof(pname));
if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, Red, "[ERROR:]{FFFFFF} /duel [playerid]");
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(params, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, Red, "[ERRORE:]{FFFFFF} /duel [ID]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if(IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(statod[playerid] == 1 )
                    {
                        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Hai giа sfidato qualcuno");
                    }
                    if(statod[playerid] == 2 )
                    {
                        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Sei giа stato sfidato da qualcuno a un duello");
                    }
                    if(statod[playerid] == 3 )
                    {
                        SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF}  Stai giа partecipando a un duello");
                    }
                    else if(statod[playerid] == 0 )
                    {
                        if(statod[giveplayerid] == 1 )
                        {
                            SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Il giocatore ha giа sfidato qualcuno a un duello");
                        }
                        if(statod[giveplayerid] == 2 )
                        {
                            SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Il giocatore и giа stato sfidato a un duello");
                        }
                        if(statod[giveplayerid] == 3 )
                        {
                            SendClientMessage(playerid,Red,"[ERRORE:]{FFFFFF} Il giocatore sta giа partecipando a un duello");
                        }
                        else if(statod[giveplayerid] == 0 )
                        {
                            statod[playerid] = 1;
                            statod[giveplayerid] = 2;
                            GetPlayerName(playerid,nome,sizeof(nome));
                            GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer));
                            format(string4,sizeof(string4),"[DUELLO:]{FFFFFF} %s ha sfidato %s a un duello", nome, giveplayer);
                            SendClientMessageToAll(COLOR_ORANGE,string4);
                            format(string4,sizeof(string4),"[DUELLO:]{FFFFFF} Hai sfidato %s a un duello, aspetta una risposta", giveplayer);
                            SendClientMessage(playerid, COLOR_ORANGE,string4);
                            sfidante[giveplayerid] = playerid;
                            format(string4,sizeof(string4),"[DUELLO:]{FFFFFF} Sei stato sfidato da %s a un duello, scrivi /accetta o /rifiuta", nome);
                            SendClientMessage(giveplayerid, COLOR_ORANGE, string4);
                        }
                    }
                }
            }
        }
        return 1;
    }

Place it like this, but you have to edit the other lines too, not just this one..
works perfectly thanks
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)