PDA

Просмотр полной версии : [Вопрос] кто знает как это сделать?



salkin
15.01.2016, 07:04
помогите сделать команду /dike не в чат а чтобы выводило диалог для вода id игпрока


if(strcmp(cmd, "/dice", true) == 0)
{
if(!IsAKazino(playerid)) return SendClientMessage(playerid, COLOR_GREY, "{F70000}x {ADAEAD}Вы не в казино!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "ведите id игрока", " ", "ок", "отмена");
new giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /dice [id игрока] [ставка]");
new price = strval(tmp);
if(price < 1000 || price > 1000000) return SendClientMessage(playerid, -1, "Минимальная ставка 1000$ максимальная 1.000 000$");
if(GetPlayerMoneyEx(playerid) < price) return SendClientMessage(playerid,CGRAY,"У Вас недостаточно денег");
if(ZapretDice[giveplayerid] == 1) return SendClientMessage(playerid, -1, "В данный момент игрок не может играть!");
if(dicetime > gettime()) return SendClientMessage(playerid, -1, "В данный момент вы не можете играть!");
if(pData[giveplayerid][pMoney] < price) return SendClientMessage(playerid, -1, "У этого игрока нет столько денег!");
if(!IsPlayerConnected(giveplayerid)) return true;
if(GetPlayerDistanceToPlayer(playerid,giveplayerid) > 3.0 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(giveplayerid)) return SendClientMessage(playerid,CGRAY,"Вы далеко друг от друга");
if(giveplayerid == playerid) return true;
new string[300];
format(string, sizeof(string), "Вы предложили %s бросить кости. Ставка: $%i",pData[giveplayerid][pNickname],price);
SendClientMessage(playerid, 0x6495EDFF, string);
format(string, sizeof(string), "%s предлагает бросить кости. Ставка: $%i",pData[playerid][pNickname],price);
SendClientMessage(giveplayerid, 0x6495EDFF, string);
SendMes(giveplayerid, COLOR_WHITE, "Введите {48FC23}/YES {FFFFFF}чтобы согласиться {FF0000}/NO {FFFFFF}для отказа");
ZapretDice[playerid] = 1;
KostiName[giveplayerid] = playerid;
KostiMoney[giveplayerid] = price;
return true;
}

vovandolg
15.01.2016, 08:05
Этот "почти" весь код надо было не в команду пихать, а в public OnDialogResponse и создавать свой диалог
А команда должно быть, вот так будет выглядеть:


if(strcmp(cmd, "/dice", true) == 0)
{
if(!IsAKazino(playerid)) return SendClientMessage(playerid, COLOR_GREY, "{F70000}x {ADAEAD}Вы не в казино!");
ShowPlayerDialog(playerid, здесь_свой_id_диалога, DIALOG_STYLE_INPUT, "Введите id игрока", " ", "Ок", "Отмена"
return 1;
}

Поищи в модах примеры с DIALOG_STYLE_INPUT и сделай на примере любого с учётом того что у тебя либо в одном окне 2 цифры надо или 2 окна сделать, опять же второе окно это второй диалог уже делать.