Страница 1 из 11
Форум | www.SAMP-TEAM.com » San Andreas MultiPlayer » Вопросы и проблемы » Нужен совет.
Нужен совет.
Такое дело)
Вот собственно код
Команда
Код

  if(strcmp(cmd, "/ruletka", true) == 0)
  {
      if(PlayerInfo[playerid][pDonate] < 50) return SCM(playerid, COLOR_WHITE, "Для игры в 'Рулетку' нужно иметь минимум 50 RUS RUB");
      SPD(playerid, 110, DSM, "Потвердите игру", "{00FF00}Стоймость рулетки состовляет 50 RUS.RUB\nЕсли выпадет удачная ячейка Вы получите свой приз\n{FF0000}P.S Ячейка может оказаться пустой", "Играть", "Выход");
  }

Диалог
Код

case 110:
   {
    SCM(playerid, COLOR_WHITE, "Ждите 5 секунд пока рулетка вращается");
       SetTimer("Rulet", 5000, 0);
   }

И public
Код

public Rulet()
{
  new playerid;
     Ruletka = random(7);
  switch(Ruletka)
  {
      case 0:
      {
          SCM(playerid, COLOR_SOV, "Поздравляем! Вы выйграли 50000 RUB!");
          PlayerInfo[playerid][pCash] += 50000;
          PlayerInfo[playerid][pDonate] -= 50;
   }
   case 1:
      {
          SCM(playerid, COLOR_SOV, "Поздравляем! Вы выйграли 500000 RUB!");
          PlayerInfo[playerid][pCash] += 500000;
          PlayerInfo[playerid][pDonate] -= 50;
   }
   case 2:
      {
          SCM(playerid, COLOR_SOV, "Увы, Вы проиграли :(");
          PlayerInfo[playerid][pDonate] -= 50;
   }
   case 3:
      {
          SCM(playerid, COLOR_SOV, "Увы, Вы проиграли :(");
          PlayerInfo[playerid][pDonate] -= 50;
   }
   case 4:
      {
          SCM(playerid, COLOR_SOV, "Увы, Вы проиграли :(");
          PlayerInfo[playerid][pDonate] -= 50;
   }
   case 5:
      {
          SCM(playerid, COLOR_SOV, "Увы, Вы проиграли :(");
          PlayerInfo[playerid][pDonate] -= 50;
   }
   case 6:
      {
          SCM(playerid, COLOR_SOV, "Увы, Вы проиграли :(");
          PlayerInfo[playerid][pDonate] -= 50;
   }
  }
}

Насчет переменной playerid, без неё ошибку выдает..
Теперь сама проблема
Если на сервере 2 или больше игроков, то если кручу рулетку я, приз получает другой.
biggrin Чё делать?
13.08.2014 в 07:14
Дикий facepalm товарищ! biggrin

Код
SetTimerEx("Rulet",5000,false,"i",playerid);


Код

forward Rulet(playerid);   
public Rulet(playerid)    
{    
        Ruletka = random(7);    
     switch(Ruletka)    
     {    
         case 0:    
         {    
             SCM(playerid, COLOR_SOV, "Поздравляем! Вы выйграли 50000 RUB!");    
             PlayerInfo[playerid][pCash] += 50000;    
             PlayerInfo[playerid][pDonate] -= 50;    
      }    
      case 1:    
         {    
             SCM(playerid, COLOR_SOV, "Поздравляем! Вы выйграли 500000 RUB!");    
             PlayerInfo[playerid][pCash] += 500000;    
             PlayerInfo[playerid][pDonate] -= 50;    
      }    
      case 2:    
         {    
             SCM(playerid, COLOR_SOV, "Увы, Вы проиграли :(");    
             PlayerInfo[playerid][pDonate] -= 50;    
      }    
      case 3:    
         {    
             SCM(playerid, COLOR_SOV, "Увы, Вы проиграли :(");    
             PlayerInfo[playerid][pDonate] -= 50;    
      }    
      case 4:    
         {    
             SCM(playerid, COLOR_SOV, "Увы, Вы проиграли :(");    
             PlayerInfo[playerid][pDonate] -= 50;    
      }    
      case 5:    
         {    
             SCM(playerid, COLOR_SOV, "Увы, Вы проиграли :(");    
             PlayerInfo[playerid][pDonate] -= 50;    
      }    
      case 6:    
         {    
             SCM(playerid, COLOR_SOV, "Увы, Вы проиграли :(");    
             PlayerInfo[playerid][pDonate] -= 50;    
      }    
     }    
}
13.08.2014 в 08:03
Цитата ZioHik ()
Дикий facepalm товарищ!

13.08.2014 в 09:11
Неа, нифига.
0 ID крутит - выигрывает/проигрывает.
1 ID крутит - результат 0 ID идет
-

Добавлено (13.08.2014, 09:22)
---------------------------------------------
http://savepic.net/5978640.png
Если без переменной playerid surprised
13.08.2014 в 09:22
Проверь все ли скопировал
13.08.2014 в 09:26
Поюзал в Google, ответи был такой:
Мол playerid не определяется в этйо функции, надо в nPlayerConnect там крч или OnPlayerSpawn
Ну я еще перемещу, как мне через таймер вызвать потом :С

Добавлено (13.08.2014, 09:29)
---------------------------------------------
Да всё также скопировал,просмотрел happy

13.08.2014 в 09:29
Все что я сбросил должно 100 проц. работать. Проблема типичная
13.08.2014 в 09:30
Код
SetTimer("Rulet", 5000, 0);

Заменить на:
Код
SetTimerEx("Rulet",5000,false,"i",playerid);


А тот паблик на мой. Если так сделать, то тех ошибок быть не должно.
13.08.2014 в 09:36
Обойдусь уже без таймера, проблема в моде, он с 0 пишется. Ну так выдаю допустим оружие игроку,а пишет моё имя. С 1 раза всегда так получается на все команды dry

Добавлено (13.08.2014, 09:37)
---------------------------------------------
Таймер заменил,да

13.08.2014 в 09:37
sany9494, просто нужно читать документацию прежде чем писать новый мод. Я даже так понимаю в чем ваша проблема. Мод большой? Могли бы скинуть его мне?
13.08.2014 в 09:38
А чем отличаются мой паблик от вашего?
13.08.2014 в 09:40
sany9494, встроенными параметрами. В которые передаются значения из таймера... Если вам дали решение, то копируйте его полностью.
http://wiki.sa-mp.com/wiki/SetTimerEx
13.08.2014 в 09:40
2k строк там,сейчас в лс скину.
13.08.2014 в 09:41
Форум | www.SAMP-TEAM.com » San Andreas MultiPlayer » Вопросы и проблемы » Нужен совет.
Страница 1 из 11
Поиск: