Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 12 из 12
  1. #11
    Аватар для Hecf
    Пользователь

    Статус
    Оффлайн
    Регистрация
    21.07.2017
    Сообщений
    46
    Репутация:
    0 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    Во первых, разберись с переменным game, я не думаю что ты указывал оператор char при его объявление, чтобы обращаться к нему как к байтовому массиву.
    Во вторых, winner и так хранит в себе id победившего игрока, а ты пытаешься снова найти его. (л - логика)
    В третьих, эта функция принимает 2 параметра, то есть ты должен указать id двух уже играющих игроков.

    PHP код:
    forward OutputDiceGameResult(player1player2);
    public 
    OutputDiceGameResult(player1player2)
    {
        new 
    result random(2)+1winner = (result == game[player1]) ? (player1) : (player2);

        new 
    string[(52+8)+1];  
        
    format(stringsizeof(string), "Поздравляем ваша ставка выиграла. Ваш приз {4AD64C}%d$"100*2);  
        
    SendClientMessage(winner, -1string);  
        
    ac_GivePlayerMoney(winner100*2);   
        
        
    SendClientMessage(((winner == player1) ? (player2) : (player1)), -1,
            
    "Ваша ставка проиграла.");  

        
    game[player1] = game[player2] = 0;
        
    stavki[3] = stavki[4] = 0;
        return 
    1;

    В четвертых, чтобы я тебе дал готовый работающий код, ты даже не кинул половину своего кода, чтобы я понял что к чему. Я же не Ванга чтобы угадывать, что у тебя за переменные, как они объявлены и для чего предназначены!
    Cейчас заного перепишу и отвечу. Ты помогаешь и я рад этому спасибо огромное. Скоро отпишусь

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

    Цитата Сообщение от Hecf Посмотреть сообщение
    Cейчас заного перепишу и отвечу. Ты помогаешь и я рад этому спасибо огромное. Скоро отпишусь
    А да, один из двух игроков которые сделали ставку могут в диалоге "Начать" игру (запускают таймер типа и вызывается паблик) А пока я заного перепишу.

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

    А что значит "? (player1) : (player2)

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

    вот сама функция
    которая повышает значение гейм для определенного игрока
    PHP код:
    if(!response) return SendClientMessage(playerid, -1"Вы вышли из раздела");
                {
                    if(
    stavki[3] == 1) return SendClientMessage(playerid, -1"На данного бойца уже кто-то поставил!");
                    if(
    game{playerid}> 0) return SendClientMessage(playerid, -1"Вы уже сделали ставку на другом слоте!");
                    if(
    pInfo[playerid][pDollar] < 100) return SendClientMessage(playerid, -1"У вас нет столько денег.");
                    
    SendClientMessage(playerid, -1"Вы сделали ставку в размере {4AD64C}100$. {FFFFFF}Ожидайте второго игрока.");
                    
    ac_GivePlayerMoney(playerid, -100);
                    
    SendClientMessage(playerid, -1"Не выходите из игры до окончания события.");
                    
    game{playerid} = 1;
                    
    stavki[3] = 1;
                } 
    А во втором слоте так но значенией гейм равен двум game{playerid} = 2;

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

    Статус
    Оффлайн
    Регистрация
    21.07.2017
    Сообщений
    46
    Репутация:
    0 ±
    PHP код:
    new game[MAX_PLAYERS char]; 
    вот крч код не работает, криворукий я видимо. Работает по разному .

    PHP код:
    new string[100];
            
    format(stringsizeof(string),"1 slot\n2 slot\nНачать!");
            
    ShowPlayerDialog(playerid28DIALOG_STYLE_LIST"«JoyBet» casino"string,"Выбрать""Отмена"); 
    выбор игрока

    диалог респонса
    PHP код:
    switch(listitem)
                    {
                        case 
    0ShowPlayerDialog(playerid29DIALOG_STYLE_MSGBOX"{F3EA6D}Ставка""На данный момент курс ставки равен: 100$""Готово""Дальше");
                        case 
    1ShowPlayerDialog(playerid30DIALOG_STYLE_MSGBOX"{F3EA6D}Ставка""На данный момент курс ставки равен: 100$""Готово""Дальше");
                        case 
    2:
                        {
                            if(
    stavki[5] == 1) return SendClientMessage(playerid, -1"Подождите пока закончиться игра!");
                            
    SetTimer("OutputDiceGameResult"1000false);
                            
    stavki[5] = 1;
                            return 
    1;
                        }
                    } 
    это выбор определенного слота из диалога 28. сверху все робит если что. Всё затмевается при определении победителя.
    PHP код:
    case 29:
            {
                if(
    stavki[3] == 1) return SendClientMessage(playerid, -1"На данного бойца уже кто-то поставил!");
                if(
    game{playerid}> 0) return SendClientMessage(playerid, -1"Вы уже сделали ставку на другом слоте!");
                if(
    pInfo[playerid][pDollar] < 100) return SendClientMessage(playerid, -1"У вас нет столько денег.");
                
    SendClientMessage(playerid, -1"Вы сделали ставку в размере {4AD64C}100$. {FFFFFF}Ожидайте второго игрока.");
                
    ac_GivePlayerMoney(playerid, -100);
                
    SendClientMessage(playerid, -1"Не выходите из игры до окончания события.");
                
    game{playerid} = 1;
                
    stavki[3] = 1;
            }
            case 
    30:
            {
                if(
    stavki[4] == 1) return SendClientMessage(playerid, -1"На данного бойца уже кто-то поставил!");
                if(
    game{playerid}> 0) return SendClientMessage(playerid, -1"Вы уже сделали ставку на другом слоте!");
                if(
    pInfo[playerid][pDollar] < 100) return SendClientMessage(playerid, -1"У вас нет столько денег.");
                
    SendClientMessage(playerid, -1"Вы сделали ставку в размере {4AD64C}100$. {FFFFFF}Ожидайте второго игрока.");
                
    ac_GivePlayerMoney(playerid, -100);
                
    SendClientMessage(playerid, -1"Не выходите из игры до окончания события.");
                
    game{playerid} = 2;
                
    stavki[4] = 1;
            } 
    это функции самих выборов слота 1 и 2. (ставки не обращай внимания это лишь запреты)
    PHP код:
    forward OutputDiceGameResult(player1player2);
    public 
    OutputDiceGameResult(player1player2)
    {
        new 
    result random(2)+1winner = (result == game{player1}) ? (player1) : (player2);

        new 
    string[(52+8)+1];  
        
    format(stringsizeof(string), "Поздравляем ваша ставка выиграла. Ваш приз {4AD64C}%d$"100*2);  
        
    SendClientMessage(winner, -1string);  
        
    ac_GivePlayerMoney(winner100*2);   
        
        
    SendClientMessage(((winner == player1) ? (player2) : (player1)), -1,
            
    "Ваша ставка проиграла.");  

        
    game{player1} = game{player2} = 0;
        
    stavki[3] = stavki[4] = stavki[5] = 0;
        return 
    1;

    собственно само определение победителя

    Мб где -то не так
    Последний раз редактировалось Hecf; 25.07.2017 в 16:55.

 

 
Страница 2 из 2 ПерваяПервая 1 2

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

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

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

Ваши права

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