Перейти к содержанию
LiYorton

Подарки на сервер

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

LiYorton

Здравствуйте все, я бы хотел узнать как сделать чтобы подарок можно было взять только 1.
Сколько не пробывал сделать были только ерроры.
Сервер DM

Вот код: 

public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(pickupid == podarok)
    {
        if(PlayerInfo[playerid][pPodarok] > 0) return SCM(playerid, COLOR_RED, "{FFFFFF}[Èíôîðìàöèÿ]{FF00000}Âû óæå áðàëè ýòîò ïîäàðîê");
        GivePlayerMoney(playerid, 43245);
        SCM(playerid, COLOR_GREEN, "Âû âçÿëè ïîäàðîê, â í¸ì ëåæàëî 43245 ðóáëåé!");
        return 1;
    }
    return 1;
}

Изменено пользователем LiYorton

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


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович
19 часов назад, LiYorton сказал:

Здравствуйте все, я бы хотел узнать как сделать чтобы подарок можно было взять только 1.
Сколько не пробывал сделать были только ерроры.
Сервер DM

Вот код: 

public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(pickupid == podarok)
    {
        if(PlayerInfo[playerid][pPodarok] > 0) return SCM(playerid, COLOR_RED, "{FFFFFF}[Èíôîðìàöèÿ]{FF00000}Âû óæå áðàëè ýòîò ïîäàðîê");
        GivePlayerMoney(playerid, 43245);
        SCM(playerid, COLOR_GREEN, "Âû âçÿëè ïîäàðîê, â í¸ì ëåæàëî 43245 ðóáëåé!");
        return 1;
    }
    return 1;
}

Можете скинуть код с нормальной кодировкой? 

Скопируйте код из мода в русской раскладке и скидывайте сюда

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


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович
19 часов назад, LiYorton сказал:

PlayerInfo[playerid][pPodarok] > 0

PlayerInfo[playerid][pPodarok]  !=  0

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


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

Зачем менять оператор сравнения? Это ничего не исправит. Обычные ошибки в логике мода. Проверяет переменную, которая не меняется.

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


Ссылка на сообщение
Поделиться на другие сайты
LiYorton
2 часа назад, Eduard Vestornович сказал:

PlayerInfo[playerid][pPodarok]  !=  0

Это не помогло, подарок до сих пор берется.

Вот код в русской раскладке:

if(pickupid == podarok)
    {
        if(PlayerInfo[playerid][pPodarok] > 0) return SCM(playerid, COLOR_RED, "{FFFFFF}[Информация]{FF00000}Вы уже брали этот подарок");
        GivePlayerMoney(playerid, 43245);
        SCM(playerid, COLOR_GREEN, "Вы взяли подарок, в нём лежало 43245 рублей!");
        return 1;
    }

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


Ссылка на сообщение
Поделиться на другие сайты
Eduard Vestornович
6 минут назад, LiYorton сказал:

Это не помогло, подарок до сих пор берется.

Вот код в русской раскладке:

if(pickupid == podarok)
    {
        if(PlayerInfo[playerid][pPodarok] > 0) return SCM(playerid, COLOR_RED, "{FFFFFF}[Информация]{FF00000}Вы уже брали этот подарок");
        GivePlayerMoney(playerid, 43245);
        SCM(playerid, COLOR_GREEN, "Вы взяли подарок, в нём лежало 43245 рублей!");
        return 1;
    }

У вас переменная pPodarok загружается через БД? Обновляется хоть как-то?

Чтобы все было гуд - нужно при входе в игру вместе с аккаунтом сделать загрузку переменной (как pName, pPass и т.п)

И при получение подарка делать запрос на обновление в БД по playerid 
И тогда система будет максимально динамичной

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


Ссылка на сообщение
Поделиться на другие сайты
LiYorton
6 минут назад, Eduard Vestornович сказал:

У вас переменная pPodarok загружается через БД? Обновляется хоть как-то?

Чтобы все было гуд - нужно при входе в игру вместе с аккаунтом сделать загрузку переменной (как pName, pPass и т.п)

И при получение подарка делать запрос на обновление в БД по playerid 
И тогда система будет максимально динамичной

Все труднее чем кажется, у меня mxINI

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


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

А если делать статистическую (при перезапуске все данные о подарках будут слетать)

то вот так 

 

if(pickupid == podarok)
{
    if(PlayerInfo[playerid][pPodarok] != 0) return SCM(playerid, COLOR_RED, "{FFFFFF}[Информация]{FF00000}Вы уже брали этот подарок");
    GivePlayerMoney(playerid, 43245);
    SCM(playerid, COLOR_GREEN, "Вы взяли подарок, в нём лежало 43245 рублей!");
    PlayerInfo[playerid][pPodarok] = 1;
    return 1;
}

 

Изменено пользователем Eduard Vestornович
Поправил табуляцию

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


Ссылка на сообщение
Поделиться на другие сайты
LiYorton
18 минут назад, Eduard Vestornович сказал:

А если делать статистическую (при перезапуске все данные о подарках будут слетать)

то вот так 

 

 

Огромное спасибо тебе, все получилось!

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


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

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

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

×

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

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