Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 6 из 6
  1. #1
    Аватар для Brutex
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.08.2014
    Сообщений
    19
    Репутация:
    0 ±

    Выдача денег через функцию и запись в переменную

    Здравствуйте. Чтобы не обновлять каждый раз стандартный текстдрав денег, я сделал функцию:
    PHP код:
    stock GivePlayerCash(playeridmoneybool:value)
    {
        if(
    value == truePlayerInfo[playerid][pMoney] += money;
        else if(
    value == falsePlayerInfo[playerid][pMoney] = money;
        
    GivePlayerMoney(playeridmoney);
        return 
    true;

    Сделал команды для проверки:
    PHP код:
        if(strcmp("/1"cmdtexttrue1) == 0)
        {
          
    GivePlayerCash(playerid100true);
          return 
    1;
        }
        if(
    strcmp("/2"cmdtexttrue1) == 0)
        {
          
    GivePlayerCash(playerid, -50true);
          return 
    1;
        }
        if(
    strcmp("/3"cmdtexttrue1) == 0)
        {
          
    GivePlayerCash(playerid500false);
          return 
    1;
        } 
    И постоянно прибавляется 100 баксов. Введя 3 команды у меня стало 300 баксов, при сохранение в БД тоже написано 300 баксов. В чём ошибка? Подскажите пожалуйста.

  2. #2
    Аватар для Brutex
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.08.2014
    Сообщений
    19
    Репутация:
    0 ±
    Ошибочка. Как раз всё хорошо работает. Запись в переменную идёт успешно.
    Проблема с самим денежным текстдравом, он прибавляет, но ничего не убавляет и не изменяет.
    Может есть иной способ?

  3. #3
    Аватар для Londlem
    Модератор

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    767 ±
    Не совсем понял смысл стока.
    Почему так не удобно?
    PHP код:
    stock GivePlayerCash(playeridmoney)
    {
        
    PlayerInfo[playerid][pMoney] += money;
        
    GivePlayerMoney(playeridmoney);
        return 
    1;

    Использование простое:
    PHP код:
    GivePlayerCash(playerid5000); // выдать $5000
    GivePlayerCash(playerid, -5000); // отнять $5000 
    Последний раз редактировалось Londlem; 23.08.2014 в 19:24.

  4. Пользователь сказал cпасибо:
    Brutex (23.08.2014)
  5. #4
    Аватар для Brutex
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.08.2014
    Сообщений
    19
    Репутация:
    0 ±
    При помощи стока можно обновить/прибавить/изменить/отнять денежные средства.
    Например, если я пишу GivePlayerCash(playerid, 5000, true); - то уже понятно, что при помощи true прибавит 5000$
    У меня в кармане 5000$ я хочу отнять 4000$ - GivePlayerCash(playerid, -4000, true); Я сейчас заспавнюсь, мне нужно обновить
    денежный текстдрав при спавне - GivePlayerCash(playerid, 0, true); textdraw обновлён. Я хочу просто изменить свою 1000$ на 1$ без всяких вычитаний - GivePlayerCash(playerid, 1, false); Вот собственно говоря такой пример. Такой код писал DeimoS, но я этот код найти не могу. Он вроде писал как-то так stock GiveMoney(playerid, money, bool:mode) - вроде так.

  6. #5
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Вы забываете обнулить деньги в HUD =) Поэтому они и прибавляются.
    PHP код:
    stock GivePlayerCash(playeridmoneybool:value

        if(
    value == truePlayerInfo[playerid][pMoney] += money
        else if(
    value == falsePlayerInfo[playerid][pMoney] = money
        
    ResetPlayerMoney(playerid);
        
    GivePlayerMoney(playeridPlayerInfo[playerid][pMoney]); 
        return 
    true

    - - - Добавлено - - -

    Цитата Сообщение от Londlem Посмотреть сообщение
    Не совсем понял смысл стока.
    Ну тут совмещены две функции - установка определённого значения и изменение текущего значения на определённую сумму
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. 2 пользователя(ей) сказали cпасибо:
    #ball (25.08.2014)Brutex (23.08.2014)
  8. #6
    Аватар для Brutex
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.08.2014
    Сообщений
    19
    Репутация:
    0 ±
    Спасибо огромное

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •