Portal SAMP
[Ajuda] Sistema de vendedor - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Sistema de vendedor (/showthread.php?tid=3230)



Sistema de vendedor - gbzinkkjkkj - 22/01/2023

bom, queria saber se e possivel criar um sitema em que o player consegue vender roupas, skins exemplo : /vender id da roupa

e em dialog aparecer Aceitar Recusar

obrigado a quem puder ajudar <3


RE: Sistema de vendedor - xbruno1000x - 22/01/2023

Sim, é possível. Basta mostrar a dialog com dois botões para o ID que o vendedor digitar, e na OnDialogResponse você coloca uma if(response), que é o código que será executado quando o player aceitar comprar.


RE: Sistema de vendedor - White_Blue - 22/01/2023

Tente algo como o código abaixo.

Código PHP:
#define Dialog_Aceitar 0

CMD:venderskin(playeridparams[]) {
     new 
idskinstr[128];
     if(
sscanf("ud"idskin)) return SendClientMessage(playerid, -1"Use: /venderskin [id] [skin]");
     if(!
IsPlayerConnected(id)) return SendClientMessage(playerid, -1"Jogador(a) não conectado(a).");
     if(
skin || skin 311) return SendClientMessage(playerid, -1"ID de skin inválido.");
     
SetPVarInt(id"Comprador"id);
     
SetPVarInt(playerid"Vendedor"playerid);
     
SetPVarInt(id"Skin"skin);
     
format(strsizeof(str), "{FFFFFF}O(A) Vendedor(a) de skins %s[%d] te ofereceu a skin ID %d por $200."GetPlayerNameEx(playerid), playeridskin);
     
ShowPlayerDialog(idDialog_AceitarDIALOG_STYLE_MSGBOX"Vendedor de Skin"str"Aceitar""Recusar");
     return 
1;
}

stock GetPlayerNameEx(playerid) {
     static 
Name[MAX_PLAYER_NAME];
     
GetPlayerName(playeridNameMAX_PLAYER_NAME);
     return 
Name;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) {
       if(
dialogid == Dialog_Aceitar) {
        new 
id GetPVarInt(playerid"Comprador"), id2 GetPVarInt(playerid"Vendedor"), skin GetPVarInt(playerid"Skin");
        if(
response == 1) {
         
GivePlayerMoney(id, -200);
         
GivePlayerMoney(id2200);
         
SetPlayerSkin(idskin);
        }

       else if(
response == 0) {
        
SendClientMessage(id2, -1"O comprador recusou sua oferta de skin.");
        
SendClientMessage(id, -1"Você recusou a oferta de skin!");
        }
      }
      return 
1;




RE: Sistema de vendedor - gbzinkkjkkj - 22/01/2023

(22/01/2023 05:15)White_Blue Escreveu: Tente algo como o código abaixo.

Código PHP:
#define Dialog_Aceitar 0

CMD:venderskin(playeridparams[]) {
     new idskinstr[128];
     if(sscanf("ud"idskin)) return SendClientMessage(playerid, -1"Use: /venderskin [id] [skin]");
     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1"Jogador(a) não conectado(a).");
     if(skin || skin 311) return SendClientMessage(playerid, -1"ID de skin inválido.");
     SetPVarInt(id"Comprador"id);
     SetPVarInt(playerid"Vendedor"playerid);
     SetPVarInt(id"Skin"skin);
     format(strsizeof(str), "{FFFFFF}O(A) Vendedor(a) de skins %s[%d] te ofereceu a skin ID %d por $200."GetPlayerNameEx(playerid), playeridskin);
     ShowPlayerDialog(idDialog_AceitarDIALOG_STYLE_MSGBOX"Vendedor de Skin"str"Aceitar""Recusar");
     return 1;
}

stock GetPlayerNameEx(playerid) {
     static Name[MAX_PLAYER_NAME];
     GetPlayerName(playeridNameMAX_PLAYER_NAME);
     return Name;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) {
       if(dialogid == Dialog_Aceitar) {
        new id GetPVarInt(playerid"Comprador"), id2 GetPVarInt(playerid"Vendedor"), skin GetPVarInt(playerid"Skin");
        if(response == 1) {
         GivePlayerMoney(id, -200);
         GivePlayerMoney(id2200);
         SetPlayerSkin(idskin);
        }

       else if(response == 0) {
        SendClientMessage(id2, -1"O comprador recusou sua oferta de skin.");
        SendClientMessage(id, -1"Você recusou a oferta de skin!");
        }
      }
      return 1;


error 035: argument type mismatch (argument 2) deu esse erro ai


RE: Sistema de vendedor - White_Blue - 22/01/2023

(22/01/2023 05:19)gbzinkkjkkj Escreveu:
(22/01/2023 05:15)White_Blue Escreveu: Tente algo como o código abaixo.

Código PHP:
#define Dialog_Aceitar 0

CMD:venderskin(playeridparams[]) {
     new idskinstr[128];
     if(sscanf(params"ud"idskin)) return SendClientMessage(playerid, -1"Use: /venderskin [id] [skin]");
     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1"Jogador(a) não conectado(a).");
     if(skin || skin 311) return SendClientMessage(playerid, -1"ID de skin inválido.");
     SetPVarInt(id"Comprador"id);
     SetPVarInt(playerid"Vendedor"playerid);
     SetPVarInt(id"Skin"skin);
     format(strsizeof(str), "{FFFFFF}O(A) Vendedor(a) de skins %s[%d] te ofereceu a skin ID %d por $200."GetPlayerNameEx(playerid), playeridskin);
     ShowPlayerDialog(idDialog_AceitarDIALOG_STYLE_MSGBOX"Vendedor de Skin"str"Aceitar""Recusar");
     return 1;
}

stock GetPlayerNameEx(playerid) {
     static Name[MAX_PLAYER_NAME];
     GetPlayerName(playeridNameMAX_PLAYER_NAME);
     return Name;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) {
       if(dialogid == Dialog_Aceitar) {
        new id GetPVarInt(playerid"Comprador"), id2 GetPVarInt(playerid"Vendedor"), skin GetPVarInt(playerid"Skin");
        if(response == 1) {
         GivePlayerMoney(id, -200);
         GivePlayerMoney(id2200);
         SetPlayerSkin(idskin);
        }

       else if(response == 0) {
        SendClientMessage(id2, -1"O comprador recusou sua oferta de skin.");
        SendClientMessage(id, -1"Você recusou a oferta de skin!");
        }
      }
      return 1;


error 035: argument type mismatch (argument 2) deu esse erro ai

Qual linha?


RE: Sistema de vendedor - gbzinkkjkkj - 22/01/2023

(22/01/2023 05:20)White_Blue Escreveu:
(22/01/2023 05:19)gbzinkkjkkj Escreveu:
(22/01/2023 05:15)White_Blue Escreveu: Tente algo como o código abaixo.

Código PHP:
#define Dialog_Aceitar 0

CMD:venderskin(playeridparams[]) {
     new idskinstr[128];
     if(sscanf("ud"idskin)) return SendClientMessage(playerid, -1"Use: /venderskin [id] [skin]");
     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1"Jogador(a) não conectado(a).");
     if(skin || skin 311) return SendClientMessage(playerid, -1"ID de skin inválido.");
     SetPVarInt(id"Comprador"id);
     SetPVarInt(playerid"Vendedor"playerid);
     SetPVarInt(id"Skin"skin);
     format(strsizeof(str), "{FFFFFF}O(A) Vendedor(a) de skins %s[%d] te ofereceu a skin ID %d por $200."GetPlayerNameEx(playerid), playeridskin);
     ShowPlayerDialog(idDialog_AceitarDIALOG_STYLE_MSGBOX"Vendedor de Skin"str"Aceitar""Recusar");
     return 1;
}

stock GetPlayerNameEx(playerid) {
     static Name[MAX_PLAYER_NAME];
     GetPlayerName(playeridNameMAX_PLAYER_NAME);
     return Name;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) {
       if(dialogid == Dialog_Aceitar) {
        new id GetPVarInt(playerid"Comprador"), id2 GetPVarInt(playerid"Vendedor"), skin GetPVarInt(playerid"Skin");
        if(response == 1) {
         GivePlayerMoney(id, -200);
         GivePlayerMoney(id2200);
         SetPlayerSkin(idskin);
        }

       else if(response == 0) {
        SendClientMessage(id2, -1"O comprador recusou sua oferta de skin.");
        SendClientMessage(id, -1"Você recusou a oferta de skin!");
        }
      }
      return 1;


error 035: argument type mismatch (argument 2) deu esse erro ai

Qual linha?

     if(sscanf("ud"idskin)) return SendClientMessage(playerid, -1"Use: /venderskin [id] [skin]");


RE: Sistema de vendedor - White_Blue - 22/01/2023

(22/01/2023 05:24)gbzinkkjkkj Escreveu:
(22/01/2023 05:20)White_Blue Escreveu:
(22/01/2023 05:19)gbzinkkjkkj Escreveu:
(22/01/2023 05:15)White_Blue Escreveu: Tente algo como o código abaixo.

Código PHP:
#define Dialog_Aceitar 0

CMD:venderskin(playeridparams[]) {
     new idskinstr[128];
     if(sscanf("ud"idskin)) return SendClientMessage(playerid, -1"Use: /venderskin [id] [skin]");
     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1"Jogador(a) não conectado(a).");
     if(skin || skin 311) return SendClientMessage(playerid, -1"ID de skin inválido.");
     SetPVarInt(id"Comprador"id);
     SetPVarInt(playerid"Vendedor"playerid);
     SetPVarInt(id"Skin"skin);
     format(strsizeof(str), "{FFFFFF}O(A) Vendedor(a) de skins %s[%d] te ofereceu a skin ID %d por $200."GetPlayerNameEx(playerid), playeridskin);
     ShowPlayerDialog(idDialog_AceitarDIALOG_STYLE_MSGBOX"Vendedor de Skin"str"Aceitar""Recusar");
     return 1;
}

stock GetPlayerNameEx(playerid) {
     static Name[MAX_PLAYER_NAME];
     GetPlayerName(playeridNameMAX_PLAYER_NAME);
     return Name;
}

public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[]) {
       if(dialogid == Dialog_Aceitar) {
        new id GetPVarInt(playerid"Comprador"), id2 GetPVarInt(playerid"Vendedor"), skin GetPVarInt(playerid"Skin");
        if(response == 1) {
         GivePlayerMoney(id, -200);
         GivePlayerMoney(id2200);
         SetPlayerSkin(idskin);
        }

       else if(response == 0) {
        SendClientMessage(id2, -1"O comprador recusou sua oferta de skin.");
        SendClientMessage(id, -1"Você recusou a oferta de skin!");
        }
      }
      return 1;


error 035: argument type mismatch (argument 2) deu esse erro ai

Qual linha?

     if(sscanf("ud"idskin)) return SendClientMessage(playerid, -1"Use: /venderskin [id] [skin]");

Esqueci do params na verificação do sscanf.

Correção:
Código PHP:
if(sscanf(params"ud"idskin)) return SendClientMessage(playerid, -1"Use: /venderskin [id] [skin]");