lanza

[закрыто] Не работает команда.

Рекомендованные сообщения



Не найдено.

16 posts in this topic

Я сделал команду на выдачу префикса для админа, что бы когда админ писал в /a чат(админский), то у него был префикс, который ему выдали, обзначающий его должность, всё скомпилировалось и на деле должно работать, но нет, захожу на сервер, прописываю команду, вроде прописывается и пишет "Вы выдали администратору префикс ...", но когда пишу в /а чат  допустим привет, то префикс не меняется, а остаётся префикс, прописанный для определённого уровня администратора. Помогите решить эту проблему.

 

от сам код команды

 

CMD:aprefix(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 7) return true;
    if(sscanf(params,"ds[100]",params[0],params[1])) return SendClientMessage(playerid, -1, "/aprefix [id] [префикс]");
    new fstring[400];
    format(fstring, sizeof(fstring), "Вы выдали администратору %s префикс %s", PlayerInfo[params[0]][pName], params[1]);
    SendClientMessage(playerid, 0xFFCC00FF, fstring);
    printf("%s - admpref", adminprefix[params[0]]);
    return true;
}

 

Edited by Shakoladka

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

Код из вашего pawn мода, требуется брать код под тэг "Код", так же если код большой, то еще и под спойлер

Share this post


Link to post
Share on other sites

@lanza Команду /a скидывай

Share this post


Link to post
Share on other sites

@Shakoladka вот

 

Спойлер

CMD:a(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 1) return false;
    if(ADuty[playerid]!=228) return SendClientMessage(playerid,COLOR_GREY,NO_DUTY_TEXT);
    new result[150], string[200];
    if(sscanf(params,"s[150]",result)) return SendClientMessage(playerid,COLOR_PURPLE,"Используйте: /a [текст]");
    new Admin[32];
    switch(PlayerInfo[playerid][pAdmin])
    {
    case ADM_MODER: Admin = "Хелпер";
    case ADM_SUPER_MODER: Admin = "Ст.Хелпер";
    case ADM_ADMIN: Admin = "Модератор";
    case ADM_SUPER_ADMIN: Admin = "Администратор";
    case ADM_GRAND_ADMIN: Admin = "Следящий Администратор";
    case ADM_GRAND: Admin = "Главный Администратор";
    case ADM_OSNOV: Admin = "Основатель";
    }
    format(string,sizeof(string),"[A] %s %s[%d]: %s",Admin,Name(playerid),playerid,result);
    SendAdminsMessage(COLOR_PURPLE,string,1);
    return true;
}

 

 

Share this post


Link to post
Share on other sites

@lanza Замени:

Спойлер

CMD:aprefix(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 7) return true;
    if(sscanf(params,"ud[100]",params[0],params[1])) return SendClientMessage(playerid, -1, "/aprefix [id] [префикс]");
    if(params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, !"Игрок не в сети");
    new fstring[144];
    format(fstring, sizeof(fstring), "Вы выдали администратору %s префикс %s", PlayerInfo[params[0]][pName], params[1]);
    SendClientMessage(playerid, 0xFFCC00FF, fstring);
	adminprefix[params[0]] = '\0';
	strcat(adminprefix[params[0]], params[1]);
    printf("%s - admpref", adminprefix[params[0]]);
    return true;
}

 

Спойлер

CMD:a(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 1) return false;
    if(ADuty[playerid]!=228) return SendClientMessage(playerid,COLOR_GREY,NO_DUTY_TEXT);
    new result[150], string[200];
    if(sscanf(params,"s[150]",result)) return SendClientMessage(playerid,COLOR_PURPLE,"Используйте: /a [текст]");
    new Admin[32];
    switch(PlayerInfo[playerid][pAdmin])
    {
    case ADM_MODER: Admin = "Хелпер";
    case ADM_SUPER_MODER: Admin = "Ст.Хелпер";
    case ADM_ADMIN: Admin = "Модератор";
    case ADM_SUPER_ADMIN: Admin = "Администратор";
    case ADM_GRAND_ADMIN: Admin = "Следящий Администратор";
    case ADM_GRAND: Admin = "Главный Администратор";
    case ADM_OSNOV: Admin = "Основатель";
    }
    format(string,sizeof(string),"[A] %s %s %s[%d]: %s",adminprefix[playerid],Admin,Name(playerid),playerid,result);
    SendAdminsMessage(COLOR_PURPLE,string,1);
    return true;
}

 

 

Share this post


Link to post
Share on other sites
9 часов назад, Shakoladka сказал:

@lanza Замени:

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


CMD:aprefix(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 7) return true;
    if(sscanf(params,"ud[100]",params[0],params[1])) return SendClientMessage(playerid, -1, "/aprefix [id] [префикс]");
    if(params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, -1, !"Игрок не в сети");
    new fstring[144];
    format(fstring, sizeof(fstring), "Вы выдали администратору %s префикс %s", PlayerInfo[params[0]][pName], params[1]);
    SendClientMessage(playerid, 0xFFCC00FF, fstring);
	adminprefix[params[0]] = '\0';
	strcat(adminprefix[params[0]], params[1]);
    printf("%s - admpref", adminprefix[params[0]]);
    return true;
}

 

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


CMD:a(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 1) return false;
    if(ADuty[playerid]!=228) return SendClientMessage(playerid,COLOR_GREY,NO_DUTY_TEXT);
    new result[150], string[200];
    if(sscanf(params,"s[150]",result)) return SendClientMessage(playerid,COLOR_PURPLE,"Используйте: /a [текст]");
    new Admin[32];
    switch(PlayerInfo[playerid][pAdmin])
    {
    case ADM_MODER: Admin = "Хелпер";
    case ADM_SUPER_MODER: Admin = "Ст.Хелпер";
    case ADM_ADMIN: Admin = "Модератор";
    case ADM_SUPER_ADMIN: Admin = "Администратор";
    case ADM_GRAND_ADMIN: Admin = "Следящий Администратор";
    case ADM_GRAND: Admin = "Главный Администратор";
    case ADM_OSNOV: Admin = "Основатель";
    }
    format(string,sizeof(string),"[A] %s %s %s[%d]: %s",adminprefix[playerid],Admin,Name(playerid),playerid,result);
    SendAdminsMessage(COLOR_PURPLE,string,1);
    return true;
}

 

 

#define DIALOG_APREFIX   444

new
    giveAdmin;

static const
    str_admin[][] =
    {
        "Хелпер",
        "Ст.Хелпер",
        "Модератор",
        "Администратор",
        "Следящий Администратор",
        "Главный Администратор",
        "Основатель"
    };

CMD:aprefix(playerid, params[])
{
    if (PlayerInfo[playerid][pAdmin] < 7)
        return 0;
    if (isnull(params))
        return SendClientMessage(playerid, -1, !"/aprefix [id]");
    giveAdmin = strval(params);
    if (!IsPlayerConnected(giveAdmin))
        return SendClientMessage(playerid, -1, !"Игрок не в сети");

    return ShowPlayerDialog(playerid, DIALOG_APREFIX, DIALOG_STYLE_LIST, !"Должность", !"Хелпер\nСт.Хелпер\nМодератор\nАдминистратор\nСледящий Администратор\nГлавный Администратор\nОснователь", !"Назначить", !"Закрыть");
}

CMD:a(playerid, params[])
{
    if (PlayerInfo[playerid][pAdmin] == 0)
        return ;
    if (ADuty[playerid] != 228)
        return SendClientMessage(playerid, COLOR_GREY, NO_DUTY_TEXT);
    if (isnull(params))
        return SendClientMessage(playerid, COLOR_PURPLE, !"Используйте: /a [текст]");

    static
        string[145];

    format(string, sizeof string,"[A] %s %s[%d]: %s", str_admin[PlayerInfo[playerid][pAdmin]-1], PlayerInfo[playerid][pName], playerid, params);
    SendAdminsMessage(COLOR_PURPLE, string, 1);
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == DIALOG_APREFIX)
    {
        if (response == 0)
            return 0;

        static const
            str[] = "Вы выдали администратору %s префикс %s";

        static
            string[sizeof str + MAX_PLAYER_NAME + 22 - 2*2];

        PlayerInfo[giveAdmin][pAdmin] = listitem+1;

        format(string, sizeof string, str, PlayerInfo[giveAdmin][pName], str_admin[PlayerInfo[giveAdmin][pAdmin]-1]);
        SendClientMessage(playerid, 0xFFCC00FF, string);
    }

    return 1;
}

 

Edited by m1n1vv

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

Код больше 10 строк брать еще и под спойлер

Share this post


Link to post
Share on other sites
format(string, sizeof string, str, PlayerInfo[giveAdmin][pName], str_admin[listitem]);

 

Share this post


Link to post
Share on other sites

@Shakoladka проблема

 

C:\Users\ДЛЯ ВАЛФЕЙФА\Desktop\Бонусник Мод 2018\gamemodes\brpmode.pwn(72106) : error 033: array must be indexed (variable "adminprefix")

проблема в это строке:

adminprefix[params[0]] = '\0';

Share this post


Link to post
Share on other sites
adminprefix[params[0]][0] = '\0';

 

Share this post


Link to post
Share on other sites

@m1n1vv префикс теперь просто не выдаётся, всё скомпилировалось, но когда я прописываю кмд /aprefix 0 Батя(Допустим),то мне в чат пишет Введите /aprefix id [префикс], то есть ничего не выдаётся вообще

 

 

 

 

И да, у меня есть команда для админа /god на бессмертие, но нужен таймер, который будет каждые 0.000000001 секунды восстанавливать сам хп, подскажите, как его сделать

 

 

 

Edited by lanza
Причина: Дописал вопрос

Share this post


Link to post
Share on other sites
1 час назад, lanza сказал:

@m1n1vv префикс теперь просто не выдаётся, всё скомпилировалось, но когда я прописываю кмд /aprefix 0 Батя(Допустим),то мне в чат пишет Введите /aprefix id [префикс], то есть ничего не выдаётся вообще

 

 

 

 

И да, у меня есть команда для админа /god на бессмертие, но нужен таймер, который будет каждые 0.000000001 секунды восстанавливать сам хп, подскажите, как его сделать

 

 

 

Используй мой вариант.

Может проще выдавать бесконечное здоровье? 0x7F800000

Share this post


Link to post
Share on other sites

@m1n1vv твой вариант кмд с префиксом выдаёт около 100 ошибок

Share this post


Link to post
Share on other sites

@lanza 

if(sscanf(params,"ud[100]",params[0],params[1]))
d на s замени, d это числовое. а u это ID, S - string.

Share this post


Link to post
Share on other sites
4 часа назад, lanza сказал:

@m1n1vv твой вариант кмд с префиксом выдаёт около 100 ошибок

Умничать не надо. Компилятор максимум выдает 26. Какие?

Share this post


Link to post
Share on other sites
Спойлер

#include <a_samp>
#include <DC_CMD>
#include <foreach>

#define DIALOG_APREFIX   444

enum pInfo
{
	pName,
	pAdmin
};

new
    giveAdmin,
    PlayerInfo[MAX_PLAYERS][pInfo];
    

static const
    str_admin[][] =
    {
        "Хелпер",
        "Ст.Хелпер",
        "Модератор",
        "Администратор",
        "Следящий Администратор",
        "Главный Администратор",
        "Основатель"
    };

CMD:aprefix(playerid, params[])
{
    if (PlayerInfo[playerid][pAdmin] < 7)
        return 0;
    if (isnull(params))
        return SendClientMessage(playerid, -1, !"/aprefix [id]");
    giveAdmin = strval(params);
    if (!IsPlayerConnected(giveAdmin))
        return SendClientMessage(playerid, -1, !"Игрок не в сети");

    return ShowPlayerDialog(playerid, DIALOG_APREFIX, DIALOG_STYLE_LIST, !"Должность", !"Хелпер\nСт.Хелпер\nМодератор\nАдминистратор\nСледящий Администратор\nГлавный Администратор\nОснователь", !"Назначить", !"Закрыть");
}

CMD:a(playerid, params[])
{
    if (PlayerInfo[playerid][pAdmin] == 0)
        return 0;
    if (isnull(params))
        return SendClientMessage(playerid, 0x800080AA, !"Используйте: /a [текст]");

    static
        string[145];

    format(string, sizeof string,"[A] %s %s[%d]: %s", str_admin[PlayerInfo[playerid][pAdmin]-1], PlayerInfo[playerid][pName], playerid, params);
    foreach (Player, i)
    {
        if (PlayerInfo[i][pAdmin] != 0)
            SendClientMessage(i, -1, string);
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == DIALOG_APREFIX)
    {
        if (response == 0)
            return 0;

        static const
            str[] = "Вы выдали администратору %s префикс %s";

        static
            string[sizeof str + MAX_PLAYER_NAME + 22 - 2*2];

        PlayerInfo[giveAdmin][pAdmin] = listitem+1;

        format(string, sizeof string, str, PlayerInfo[giveAdmin][pName], str_admin[listitem]);
        SendClientMessage(playerid, 0xFFCC00FF, string);
    }

    return 1;
}

 

 

Edited by m1n1vv

Share this post


Link to post
Share on other sites

@m1n1vv уже лучше, но вот ошибки:

C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(17812) : symbol is never used: "str_admin"
C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(60936) : error 017: undefined symbol "str_admin"
C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(60936) : warning 215: expression has no effect
C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(60936) : error 001: expected token: ";", but found "]"
C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(60936) : error 029: invalid expression, assumed zero
C:\Users\ÄËß ÂÀËÔÅÉÔÀ\Desktop\Áîíóñíèê Ìîä 2018\gamemodes\brpmode.pwn(60936) : fatal error 107: too many error messages on one line

 

Edited by odosenok

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

Выкладывайте код правильно. Как это правильно сделать смотрите здесь.

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

Уже дважды Вас предупреждали на этот счет. Впредь будете получать наказания не в устной форме.

Share this post


Link to post
Share on other sites

Значит что-то не так подключено

Pawn compiler 3.10.4	 	 	Copyright (c) 1997-2006, ITB CompuPhase

Header size:            676 bytes
Code size:             8300 bytes
Data size:            26224 bytes
Stack/heap size:      16384 bytes; estimated max. usage=25 cells (100 bytes)
Total requirements:   51584 bytes

 

Edited by m1n1vv

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Романтик228
      By Романтик228
      можно играть как и в мобаил так и на пк.Есть охота, семейный отель, рейтинг семьи, крафты,бд идёт вместе с модом,фракции и банды все присутствует в моде. 
    • Романтик228
      By Романтик228


      Просмотр файла Мод samp
      можно играть как и в мобаил так и на пк.Есть охота, семейный отель, рейтинг семьи, крафты,бд идёт вместе с модом,фракции и банды все присутствует в моде. 
      Добавил Романтик228 Добавлено 20.10.2021 Категория Моды Автор Roman  
    • danko
      By danko
      Выдает вот такую ошибку и всё по нулям, базу нормально установил