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(playerid, params[]) { new id, skin, str[128]; if(sscanf("ud", id, skin)) return SendClientMessage(playerid, -1, "Use: /venderskin [id] [skin]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Jogador(a) não conectado(a)."); if(skin < 0 || skin > 311) return SendClientMessage(playerid, -1, "ID de skin inválido."); SetPVarInt(id, "Comprador", id); SetPVarInt(playerid, "Vendedor", playerid); SetPVarInt(id, "Skin", skin); format(str, sizeof(str), "{FFFFFF}O(A) Vendedor(a) de skins %s[%d] te ofereceu a skin ID %d por $200.", GetPlayerNameEx(playerid), playerid, skin); ShowPlayerDialog(id, Dialog_Aceitar, DIALOG_STYLE_MSGBOX, "Vendedor de Skin", str, "Aceitar", "Recusar"); return 1; }
stock GetPlayerNameEx(playerid) { static Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, MAX_PLAYER_NAME); return Name; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == Dialog_Aceitar) { new id = GetPVarInt(playerid, "Comprador"), id2 = GetPVarInt(playerid, "Vendedor"), skin = GetPVarInt(playerid, "Skin"); if(response == 1) { GivePlayerMoney(id, -200); GivePlayerMoney(id2, 200); SetPlayerSkin(id, skin); }
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(playerid, params[]) { new id, skin, str[128]; if(sscanf("ud", id, skin)) return SendClientMessage(playerid, -1, "Use: /venderskin [id] [skin]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Jogador(a) não conectado(a)."); if(skin < 0 || skin > 311) return SendClientMessage(playerid, -1, "ID de skin inválido."); SetPVarInt(id, "Comprador", id); SetPVarInt(playerid, "Vendedor", playerid); SetPVarInt(id, "Skin", skin); format(str, sizeof(str), "{FFFFFF}O(A) Vendedor(a) de skins %s[%d] te ofereceu a skin ID %d por $200.", GetPlayerNameEx(playerid), playerid, skin); ShowPlayerDialog(id, Dialog_Aceitar, DIALOG_STYLE_MSGBOX, "Vendedor de Skin", str, "Aceitar", "Recusar"); return 1; }
stock GetPlayerNameEx(playerid) { static Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, MAX_PLAYER_NAME); return Name; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == Dialog_Aceitar) { new id = GetPVarInt(playerid, "Comprador"), id2 = GetPVarInt(playerid, "Vendedor"), skin = GetPVarInt(playerid, "Skin"); if(response == 1) { GivePlayerMoney(id, -200); GivePlayerMoney(id2, 200); SetPlayerSkin(id, skin); }
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(playerid, params[]) { new id, skin, str[128]; if(sscanf(params, "ud", id, skin)) return SendClientMessage(playerid, -1, "Use: /venderskin [id] [skin]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Jogador(a) não conectado(a)."); if(skin < 0 || skin > 311) return SendClientMessage(playerid, -1, "ID de skin inválido."); SetPVarInt(id, "Comprador", id); SetPVarInt(playerid, "Vendedor", playerid); SetPVarInt(id, "Skin", skin); format(str, sizeof(str), "{FFFFFF}O(A) Vendedor(a) de skins %s[%d] te ofereceu a skin ID %d por $200.", GetPlayerNameEx(playerid), playerid, skin); ShowPlayerDialog(id, Dialog_Aceitar, DIALOG_STYLE_MSGBOX, "Vendedor de Skin", str, "Aceitar", "Recusar"); return 1; }
stock GetPlayerNameEx(playerid) { static Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, MAX_PLAYER_NAME); return Name; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == Dialog_Aceitar) { new id = GetPVarInt(playerid, "Comprador"), id2 = GetPVarInt(playerid, "Vendedor"), skin = GetPVarInt(playerid, "Skin"); if(response == 1) { GivePlayerMoney(id, -200); GivePlayerMoney(id2, 200); SetPlayerSkin(id, skin); }
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(playerid, params[]) { new id, skin, str[128]; if(sscanf("ud", id, skin)) return SendClientMessage(playerid, -1, "Use: /venderskin [id] [skin]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Jogador(a) não conectado(a)."); if(skin < 0 || skin > 311) return SendClientMessage(playerid, -1, "ID de skin inválido."); SetPVarInt(id, "Comprador", id); SetPVarInt(playerid, "Vendedor", playerid); SetPVarInt(id, "Skin", skin); format(str, sizeof(str), "{FFFFFF}O(A) Vendedor(a) de skins %s[%d] te ofereceu a skin ID %d por $200.", GetPlayerNameEx(playerid), playerid, skin); ShowPlayerDialog(id, Dialog_Aceitar, DIALOG_STYLE_MSGBOX, "Vendedor de Skin", str, "Aceitar", "Recusar"); return 1; }
stock GetPlayerNameEx(playerid) { static Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, MAX_PLAYER_NAME); return Name; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == Dialog_Aceitar) { new id = GetPVarInt(playerid, "Comprador"), id2 = GetPVarInt(playerid, "Vendedor"), skin = GetPVarInt(playerid, "Skin"); if(response == 1) { GivePlayerMoney(id, -200); GivePlayerMoney(id2, 200); SetPlayerSkin(id, skin); }
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", id, skin)) 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(playerid, params[]) { new id, skin, str[128]; if(sscanf("ud", id, skin)) return SendClientMessage(playerid, -1, "Use: /venderskin [id] [skin]"); if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "Jogador(a) não conectado(a)."); if(skin < 0 || skin > 311) return SendClientMessage(playerid, -1, "ID de skin inválido."); SetPVarInt(id, "Comprador", id); SetPVarInt(playerid, "Vendedor", playerid); SetPVarInt(id, "Skin", skin); format(str, sizeof(str), "{FFFFFF}O(A) Vendedor(a) de skins %s[%d] te ofereceu a skin ID %d por $200.", GetPlayerNameEx(playerid), playerid, skin); ShowPlayerDialog(id, Dialog_Aceitar, DIALOG_STYLE_MSGBOX, "Vendedor de Skin", str, "Aceitar", "Recusar"); return 1; }
stock GetPlayerNameEx(playerid) { static Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, MAX_PLAYER_NAME); return Name; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == Dialog_Aceitar) { new id = GetPVarInt(playerid, "Comprador"), id2 = GetPVarInt(playerid, "Vendedor"), skin = GetPVarInt(playerid, "Skin"); if(response == 1) { GivePlayerMoney(id, -200); GivePlayerMoney(id2, 200); SetPlayerSkin(id, skin); }
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", id, skin)) 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", id, skin)) return SendClientMessage(playerid, -1, "Use: /venderskin [id] [skin]");
|