Question

Привет всем, можете дать команду по типу - /goadminka чтобы игрок мог отыграть  30 часов и получить админку 1-3 лвл. 

Мой движок - DC_CMD

Share this post


Link to post

6 answers to this question

  • 0

@Banana Подумав... и сделали. тип на сервере 3 урв, это и есть 30 часов. Закрывай тему, ставь плюсик pls.

 

Спойлер

CMD:goadm(playerid)
{
	if(PlayerInfo[playerid][pLevel] != 3)return SendClientMessage(playerid, COLOR_RED, "Вы ещё не отыграли 30 часов.");
	if(PlayerInfo[playerid][bAdmin] > 1 ) return SendClientMessage(playerid, COLOR_RED, "Вы уже получили админку.");
	new strings[246];
	GetPlayerName(playerid, PlayerInfo[playerid][pNames], 24);
	new years, months, days,data[32]; r_getdate(years, months, days);
	format(data, 32, "%02d.%02d.%04d", days, months, years);
	mysql_format(connects,strings, sizeof strings, "INSERT INTO `admin` (`Name`, `level`, `LastCon`, `Postavil`, `Data`) VALUES ('%s', %d, '%s', 'System', '%s')", PlayerInfo[playerid][pNames], 2, data, data);
	mysql_empty(connects, strings);	
	return 1;
}

 

 

Edited by odosenok

Share this post


Link to post
  • 0

@Banana Кинь код команды /setadmin || /makeadmin типо того

Edited by Nekit_Krut18
Причина: Подправил.

Share this post


Link to post
  • 0
19 часов назад, Nekit_Krut18 сказал:

@Banana Кинь код команды /setadmin || /makeadmin типо того

Ok сейчас

 

Спойлер

}
CMD:addadmin(playerid, params[])
{
    if(adminCommand[playerid][1])
    {
        new Name[24],Level;
        
        if(!strcmp(PlayerInfo[playerid][pNames], FD1, true) ||
        !strcmp(PlayerInfo[playerid][pNames], FD2, true) ||
        !strcmp(PlayerInfo[playerid][pNames], FD3, true) ||
        !strcmp(PlayerInfo[playerid][pNames], FD4, true))
        {
            if(sscanf(params, "s[24]d",Name,Level) || !(0 <= Level <= 7)) return SendClientMessage(playerid, COLOR_WHITE, ""good"Используйте /addadmin [Ник] [Уровень]");
        }
        else
        {
            //if(!UseGiveRub) return SendClientMessage(playerid, -1, ""cError"В данный момент нельзя использовать команду!");
            if(sscanf(params, "s[24]d",Name,Level) || !(0 <= Level <= 4)) return SendClientMessage(playerid, COLOR_WHITE, ""good"Используйте /addadmin [Ник] [Уровень] (1-5)");
        }
        if(Level == 0)
        {
            new player_id = GetPlayerID(Name);
            if(!IsPlayerConnected(player_id)) return SendClientMessage(playerid, -1, ""good"Игрок оффлайн!");
            if(PlayerInfo[player_id][bAdmin] < 1 ) return 1;
            DeleteAdministration(player_id,Name);
            format(string, 250, ""SERVER"%s "WHITE"успешно снят с поста администрирования.", Name);
            ABroadCast(-1, string);
            PlayerInfo[playerid][pAntiVig] = 0; UpdatePlayerData(playerid, "pAntiVig", 0);
        }
        else
        {
            string[0] = EOS;
            format(string, MAX_STR, "SELECT * FROM `admin` WHERE `name` = '%s'", Name);
            mysql_tquery(connects, string, "Moderator", "dsd",playerid,Name,Level);
            
            format(string, 250, ""SERVER"%s"WHITE" успешно добавлен в список модераторов. Уровень полномочий "SERVER"%d", Name, Level);
            ABroadCast(-1, string);
            
            new day,month,year,hour,minuite,second;
            r_getdate(year, month, day);
            r_gettime(hour,minuite,second);
            new data2[64];
            format(data2, 64, "%02d.%02d.%d в %02d:%d",day,month,year,hour,minuite);
            string[0] = EOS;
            mysql_format(connects, string, MAX_SQL, "INSERT INTO `logs` (`Text`, `Date`) VALUES ('%s выдал админку %s Уровень %d','%s')",PlayerInfo[playerid][pNames],Name,Level,data2);
            mysql_empty(connects, string);
        }
    }
    return 1;
}

 

 

Edited by odosenok

Заметка от Cawfee , создано

3.2. Код больше 10 строк брать еще и под спойлер. Как это сделать рассказано в разделе "FAQ"

Устное предупреждение.

Share this post


Link to post
  • 0

@Banana, Ну вот через /addadmin и добавляйте себя, а ещё проще найти какой-то логин или свой логин в папке с аккаунтами и прописать себе админку там.

Edited by odosenok

Share this post


Link to post
  • 0
26 минут назад, iQua сказал:

Ну вот через /addadmin и добавляйте себя, а ещё проще найти какой-то логин или свой логин в папке с аккаунтами и прописать себе админку там.

Мы не про выдачу админки. Мы тип если игрок отыграет 30 часов он получит админку 2 лвл систематично

Share this post


Link to post
  • 0

В чем собственно проблема? Каждый час добавлять +1 в переменную (в пейдей) и сохранять ее в базу данных.

И кстати, код более 10 строк лучше всего закидывать под спойлер, после чего нажимать на "Код" и выбирать Языки C

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Antoxa39
      By Antoxa39
      Дратути) Я хочу поделится с новичками одной штучкой,с помощью которой можно сделать спидометр.
       
      Объявляем глобальные переменные.
      new Text:speedtest; В public OnPlayerConnect добавляем следующее.
      speedtest = TextDrawCreate(506.599884, 394.742156, "500 KM/H");// создаем текстдрав при подключении игрока (он не будет отображатся) В конце мода создаем новую функцию.
      forward getsp(playerid); public getsp(playerid) {     new Float:cord[3];     GetVehicleVelocity(GetPlayerVehicleID(playerid),cord[0], cord[1], cord[2]);     new Float:veloc = floatsqroot(floatpower(floatabs(cord[0]), 2.0) + floatpower(floatabs(cord[1]), 2.0) + floatpower(floatabs(cord[2]), 2.0)) * 181.3;     new str[25];     format(str,sizeof(str),"KM/H %d",floatround(veloc));     TextDrawSetString(speedtest,str);     return 1; } Переходим в OnPlayerStateChange и добавляем следующее.
      if(newstate == PLAYER_STATE_DRIVER) {     TextDrawShowForPlayer(playerid,speedtest);     SetTimerEx("getsp", 1, true, "%f", playerid); } if(newstate == PLAYER_STATE_ONFOOT) {     TextDrawHideForPlayer(playerid,speedtest); } ВСЁ!) Мы создали спидометр. Удачи вам в скриптинге!)
    • R0m4ik
      By R0m4ik
      Всем привет, возникла маленькая проблема я хочу сделать команду /fakecmd(написать команду от другого игрока)
      У меня уже есть исходник данный команды осталось знать.
      На что надо заменить это?
      zcmd_OnPlayerCommandText(targetid, params);