Перейти к содержанию
Авторизация  
CRMPEN

Деньги уходят в минус

Рекомендуемые сообщения

CRMPEN

Всем привет,у меня сегодня такая проблема на сервере,при передаче денег игроку,тот кто передал у него деньги уходят на мноно очень много в минус,а тому кому сдали,деньги не приходят,можете мне помочь,как решить данную проблему? и да еще деньги уходят в минус не только при передаче денег но и иногда при покупке чего либо..можно ли сделать так чтобы деньги никогда не уходили в минус? вот диалог предачи денег и выкидывания их 

?if(dialogid == d_invent+1){
if(response)
{
switch(listitem)
{
case 0:
{
SPD(playerid, d_invent+2, DIALOG_STYLE_INPUT, "Деньги [Передача]",
"{FFFFFF}В поле ниже введите ник / id игрока и необходимую сумму денег для передачи\n\
Вводить в формате: {999999}id или ник | сумма\n\
{FFFFFF}Правильные примеры: {999999}Nik_Nikitovich 800{FFFFFF} или {999999}0 800", "Далее", "Назад");
}
case 1:
{
SPD(playerid, d_invent+3, DIALOG_STYLE_INPUT, "Деньги [Выкинуть]",
"{FFFFFF}В поле ниже введите сумму денег, от которой хотите избавиться\n\
{ff6142}Внимание! Эти деньги никаким образом обратно не вернуть", "Далее", "Назад");
}
}
}
else
{
inventar(playerid);
}
}
if(dialogid == d_invent+2)
{
if(response)
{
if(sscanf(inputtext, "ui", inputtext[0], inputtext[1])) return
SPD(playerid, d_invent+2, DIALOG_STYLE_INPUT, "Деньги [Передача]",
"{FFFFFF}В поле ниже введите ник / id игрока и необходимую сумму денег для передачи\n\
Вводить в формате: {999999}id или ник | сумма\n\
{FFFFFF}Правильные примеры: {999999}Nik_Nikitovich 800{FFFFFF} или {999999}0 800", "Далее", "Назад");
if(!ProxDetectorS(2.0, playerid, inputtext[0])) return SCM(playerid, COLOR_LIGHTRED, "Игрок не рядом с вами.");
if(inputtext[0] == playerid) return SCM(playerid, -1, "{ff6142}Действие запрещено");
if(PlayerInfo[playerid][pMoney] < inputtext[1]) return SCM(playerid, -1, "{ff6142}Действие запрещено");
TakeMoney(playerid, inputtext[1]);
GiveMoneyA(inputtext[0], inputtext[1]);
SendMes(playerid, COLOR_LIGHTBLUE, "Ты передал игроку %s сумму денег в размере $%i", UserName(inputtext[0]), inputtext[1]);
SendMes(inputtext[0], COLOR_LIGHTBLUE, "Игрок %s передал Вам $%i", UserName(playerid), inputtext[1]);
}
else
{
SPD(playerid, d_invent+1, DIALOG_STYLE_LIST, "Деньги", "Передать\nВыкинуть", "Выбор", "Назад");
}
}
if(dialogid == d_invent+3)
{
if(response)
{
if(sscanf(inputtext, "i", inputtext[0])) return
SPD(playerid, d_invent+3, DIALOG_STYLE_INPUT, "Деньги [Выкинуть]",
"{FFFFFF}В поле ниже введите сумму денег, от которой хотите избавиться\n\
{ff6142}Внимание! Эти деньги никаким образом обратно не вернуть", "Далее", "Назад");
if(inputtext[0] > PlayerInfo[playerid][pMoney]) return
SPD(playerid, d_invent+3, DIALOG_STYLE_INPUT, "Деньги [Выкинуть]",
"{FFFFFF}В поле ниже введите сумму денег, от которой хотите избавиться\n\
{ff6142}Внимание! Эти деньги никаким образом обратно не вернуть", "Далее", "Назад");
TakeMoney(playerid, inputtext[0]);
SendMes(playerid, COLOR_LIGHTBLUE, "Вы выкинули из своего кармана $%i", inputtext[0]);
}
else
{
SPD(playerid, d_invent+1, DIALOG_STYLE_LIST, "Деньги", "Передать\nВыкинуть", "Выбор", "Назад");
}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

TakeMoney

GiveMoneyA

 

Дело в данных функциях. Можно попробовать заменить на обычные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CRMPEN

 

 


TakeMoney
на какие? вот если что все что связано 
TakeMoney(playerid, amount)
{
PlayerInfo[playerid][pMoney] -= amount;
return GiveMoneyA(playerid, -amount);
}
stock GiveMoneyA(playerid, money)
{
PlayerInfo[playerid][pMoney] += money;
GivePlayerMoney(playerid, money);
return 1;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Надо проверять количество денег у игрока, если у игрока сумма меньше то выводить сообщение  "У вас недостаточно денег"

if(PlayerInfo[playerid][pMoney] < сумма)
{
     SendClientMessage(playerid,COLOR_LIGHTBLUE, "У вас недостаточно денег.");
}
Изменено пользователем Веб

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CRMPEN

,что то типо этого ? if(GiveMoneyA(playerid5000) return SendClientMessage(playerid,-1,"Не достаточно денег"); 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

Да.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
CRMPEN

,и куда именно ее вставлять?  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Web

До: GiveMoneyA(inputtext[0], inputtext[1]); и TakeMoney(playerid, inputtext[0]);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.