Вопросы

Здравствуйте, задался вопросом как сделать систему кодовых слов которые стримеры создают на трансляциях.

 

Описание системы: Стример выдает зарплату допустим 5 тысяч он вводит команду /wstream слово кошка и кол-во денег /wstream 5000 кошка после этого у зрителей есть 10 секунд чтобы ввести это кодовое слово. Зрители в свою очередь вводят /stream и в диалог вводят кодовое слово и получают 5 тысяч.

 

У меня есть эта система просто надо сделать так чтобы когда мы создавали кодовое слово оно создавалось на 10 секунд

Команда:

CMD:wstream(playerid, params[])
{
    if(PlayerLogged[playerid] == 0return 1;
    if(PlayerInfo[playerid][pAdmin] < 9return 1;
    if(sscanf(params, "ds[64]", params[0],params[1])) return SendClientMessage(playerid, COLOR_GREY, "/wstream  [cash] [слово]");
    format(totalstring, 100" [A]: %s[%d] создал кодовое слово %s на $%d", sendername(playerid),playerid,params[1],params[0]);
    SendAdminMessage(playerid,COLOR_LIGHTRED,totalstring);
    return 1;
}


 

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


Ссылка на сообщение

6 ответов на этот вопрос

  • 0

@Mason, может быть где-то не так сделал, давно уже ничего не писал. все же, думаю пример понятен.

Спойлер

#define MAX_WORDS (500)
const MAX_LEGHTH_WORD = 50;

enum e_words {
    eCash,
    eWord[MAX_LEGHTH_WORD]
};
new WordsInfo[MAX_WORDS][e_words];
new TOTALWORDS;

CMD:wstream(playerid, params[])
{
    if(PlayerLogged[playerid] == 0return 1;
    if(PlayerInfo[playerid][pAdmin] < 9return 1;
    if(sscanf(params, "ds[64]", params[0],params[1])) 
        return SendClientMessage(playerid, COLOR_GREY, "/wstream  [cash] [слово]");

    format(totalstring, 100" [A]: %s[%d] создал кодовое слово %s на $%d", sendername(playerid),playerid,params[1],params[0]);
    SendAdminMessage(playerid,COLOR_LIGHTRED,totalstring);
    
    return AddSecretWord(params[0], params[1]);
}

stock AddSecretWord(cash, str[]) {
    new i = TOTALWORDS++;

    WordsInfo[i][eCash] = cash;
    strmid(WordsInfo[i][eWord], str, 0, strlen(WordsInfo[i][eWord]), sizeof(WordsInfo[i][eWord]));
    return 1;
}

 

 

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


Ссылка на сообщение
  • 0

Один из вариантов - энумератор, а на этот энумератор секундный таймер.

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


Ссылка на сообщение
  • 0
11 часов назад, ʟᴀsᴛ ᴇᴍᴘᴇʀᴏʀ. сказал:

Один из вариантов - энумератор, а на этот энумератор секундный таймер.

А можете пожалуйста продемонстрировать мне что допустим в этом энумераторе создавать?

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


Ссылка на сообщение
  • 0
6 часов назад, ʟᴀsᴛ ᴇᴍᴘᴇʀᴏʀ. сказал:

@Mason, может быть где-то не так сделал, давно уже ничего не писал. все же, думаю пример понятен.

  открыть спойлер


#define MAX_WORDS (500)
const MAX_LEGHTH_WORD = 50;

enum e_words {
    eCash,
    eWord[MAX_LEGHTH_WORD]
};
new WordsInfo[MAX_WORDS][e_words];
new TOTALWORDS;

CMD:wstream(playerid, params[])
{
    if(PlayerLogged[playerid] == 0return 1;
    if(PlayerInfo[playerid][pAdmin] < 9return 1;
    if(sscanf(params, "ds[64]", params[0],params[1])) 
        return SendClientMessage(playerid, COLOR_GREY, "/wstream  [cash] [слово]");

    format(totalstring, 100" [A]: %s[%d] создал кодовое слово %s на $%d", sendername(playerid),playerid,params[1],params[0]);
    SendAdminMessage(playerid,COLOR_LIGHTRED,totalstring);
    
    return AddSecretWord(params[0], params[1]);
}

stock AddSecretWord(cash, str[]) {
    new i = TOTALWORDS++;

    WordsInfo[i][eCash] = cash;
    strmid(WordsInfo[i][eWord], str, 0, strlen(WordsInfo[i][eWord]), sizeof(WordsInfo[i][eWord]));
    return 1;
}

 

 

Я вставил код в свой мод

 

C:\Users\Roman\Desktop\ \REVENT JUSTICE\gamemodes\justice.pwn(51584) : error 001: expected token: "]", but found "-identifier-"
C:\Users\Roman\Desktop\ \REVENT JUSTICE\gamemodes\justice.pwn(51584) : warning 215: expression has no effect
C:\Users\Roman\Desktop\ \REVENT JUSTICE\gamemodes\justice.pwn(51584) : error 001: expected token: ";", but found "]"
C:\Users\Roman\Desktop\ \REVENT JUSTICE\gamemodes\justice.pwn(51584) : error 029: invalid expression, assumed zero
C:\Users\Roman\Desktop\ \REVENT JUSTICE\gamemodes\justice.pwn(51584) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

 

Жалуется на эту строку: strmid(WordsInfo[i][eWord], str, 0, strlen(WordsInfo[i][eWord]), sizeof(WordsInfo[i][eWord]));

 

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


Ссылка на сообщение
  • 0

@Mason, это пример, а не полная система, ее в мод вставлять не нужно.

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


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

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

  • Похожий контент

    • sergeenko
      От sergeenko
      Если писать просто команду /a, то выдаёт /a [текст]
      А если написать какой-то текст то ничего не просиходит
      Код:
       
      stock SendAdminMessage(color, text[]) {     foreach(new i: Player)     {         if(PI[i][data_CADMIN] != 1||PI[i][data_ADMLVL] >= 1)         {              SendClientMessage(i, color, text);         }     }     return 1; } Команда: CMD:a(playerid, params[]) {     if(PI[playerid][data_ADMLVL] > 1)     {         new text[90];         if(sscanf(params, "s[90]", text))             return SendClientMessage(playerid, CG, "Используйте /a [текст]");         if(antiflood[playerid] > 0)              return SendClientMessage(playerid, COLOR_BLACK,"Пожалуйста, подождите пару секунд...");         antiflood[playerid]++;         if(PI[playerid][data_LOGGED] == false)              return SendClientMessage(playerid, CG, "Вы не авторизированы. Пожалуйста авторизируйтесь.");         new string[19 + (20 + (-2) + 1 + (-2)) + (MAX_PLAYER_NAME + (-2) + 3 + (-2)) + 90];         format(string, sizeof(string), "[%s #%i] %s[%i]: %s", GSName[PI[playerid][data_ADMLVL]], PI[playerid][ADMINSNUMBER], PI[playerid][data_NAME], playerid, text);         return SendAdminMessage(COLOR_BLUE, string);     }     return 1;    }