(27/09/2021 08:48)Vel Escreveu:Código:sscanf(params, "s[10]", consumivel);
Ajudou, obrigado
(27/09/2021 11:27)Carlos Victor Escreveu: Olá, infelizmente o switch no pawn não aceita comparações com strings, apenas integers(int) e char(carácter único, que também não existe no SAMP).
Você tem algumas opções e abaixo estão elas:
1. Usar strcmp, e criar uma estrutura antes do case. E o número que retornar iria utilizar no caso, como exemplo abaixo:
Código:CMD:consumir(playerid, params[])
{
new string[24], itemid;
if(sscanf(params, "s[24]", string))
return SendClientMessage(playerid, -1, "* USE: /consumir [Droga]");
if(!strcmp(string, "maconha", true)) itemid = 1;
if(!strcmp(string, "cocaina", true)) itemid = 2;
switch(itemid)
{
case 1:
{
SendClientMessage(playerid, -1, "* Você usou maconha.");
}
case 2:
{
SendClientMessage(playerid, -1, "* Você usou cocaina.");
}
default: SendClientMessage(playerid, -1, "* Droga invalida, drogas disponiveis: maconha, cocaina.");
}
return 1;
}
2. Usar o strcmp sem o switch, veja o exemplo abaixo:
Código:CMD:consumir(playerid, params[])
{
new string[24];
if(sscanf(params, "s[24]", string))
return SendClientMessage(playerid, -1, "* USE: /consumir [Droga]");
if(!strcmp(string, "maconha", true))
return SendClientMessage(playerid, -1, "* Você usou maconha.");
if(!strcmp(string, "cocaina", true))
return SendClientMessage(playerid, -1, "* Você usou cocaina.");
return 1;
}
3. Usar apenas o switch, veja o exemplo abaixo:
Código:CMD:consumir(playerid, params[])
{
new drogaid;
if(sscanf(params, "d", drogaid))
return SendClientMessage(playerid, -1, "* USE: /consumir [1. Maconha | 2. Cocaina]");
switch(drogaid)
{
case 1:
return SendClientMessage(playerid, -1, "* Você usou maconha");
case 2:
return SendClientMessage(playerid, -1, "* Você usou maconha");
}
return 1;
}
Enfim, são formas que irá te ajudar de qualquer maneira... Desejo boa sorte e caso eu fiz algo errado peço desculpas e peço também que me avise pra eu corrigir.
Obrigado pelas dicas, vou preferir sem o switch.