Перейти к содержанию
Авторизация  
William Cobalt

[CMD]Команды /me, /ame, /do, /todo, /s, /n, /try для процессора DC_CMD

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

William Cobalt

Привет, выложил лёгкие команды, наверное есть на форуме, но я выложил свои.

Автор : я

Может скриптерам которые пишут мод с нуля пригодится, чтобы не тратить время на данные команды

[spoiler=Код]

CMD:me(playerid, params[])
{
if(sscanf(params, "s[118]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /me [текст]");
new string[144];
format(string, sizeof(string), "%s %s", PlayerInfo[playerid][pName], params[0]);
ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF);
SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF, 20, 7500);
return 1;
}
CMD:do(playerid, params[])
{
if(sscanf(params, "s[116]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /do [текст]");
new string[144];
format(string, sizeof(string), "%s (%s)", params[0], PlayerInfo[playerid][pName]);
ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF);
SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF, 20, 7500);
return 1;
}
CMD:ame(playerid, params[])
{
if(sscanf(params, "s[144]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /ame [текст]");
SetPlayerChatBubble(playerid, params[0], 0xDE92FFFF, 20, 7500);
return 1;
}
CMD:try(playerid, params[])
{
if(sscanf(params, "s[99]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /try [текст]");
new string[144];
format(string, sizeof(string), "%s %s | %s", PlayerInfo[playerid][pName], params[0], (!random(2)) ? ("{FF0000}Неудачно") : ("{32CD32}Удачно"));
ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF);
return 1;
}
CMD:todo(playerid, params[])
{
if(strlen(params) > 95) return SCM(playerid, COLOR_GREY, !"Слишком длинный текст и действие");
new message[48], action[49];
if(sscanf(params, "p<*>s[47]s[48]", message, action)) return SCM(playerid, COLOR_GREY, !"Используйте /todo [текст*действие]");
if(strlen(message) < 2 || strlen(action) < 2) return SCM(playerid, COLOR_GREY, !"Используйте /todo [текст*действие]");
new string[144];
format(string, sizeof(string), "- '%s' - {DE92FF}сказал%s %s, %s", message, (player_info[playerid][SEX] == 1) ? ("") : ("а"), PlayerInfo[playerid][pName], action);
ProxDetector(20.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE);
return 1;
}
CMD:n(playerid, params[])
{
if(sscanf(params, "s[107]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /n [сообщение]");
new string[144];
format(string, sizeof(string), "(( %s[%d]: %s ))", PlayerInfo[playerid][pName], playerid, params[0]);
ProxDetector(20.0, playerid, string, 0xCCCC99FF, 0xCCCC99FF, 0xCCCC99FF, 0xCCCC99FF, 0xCCCC99FF);
return 1;
}
CMD:s(playerid, params[])
{
if(sscanf(params, "s[105]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /s [текст]");
new string[144];
format(string, sizeof(string), "%s[%d] крикнул: %s", PlayerInfo[playerid][pName], playerid, params[0]);
ProxDetector(30.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE);
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
ApplyAnimation(playerid, "ON_LOOKERS", "shout_01", 4.1,0,0,0,0,0);
}
SetPlayerChatBubble(playerid, params[0], COLOR_WHITE, 25, 7500);
return 1;

}

 

Изменено пользователем hteppl
  • Like 4

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


Ссылка на сообщение
Поделиться на другие сайты
ChillyVilly

Подскажи пожалуйста что и куда, новичек в этом деле просто. Закинул всё в команды, получилось вот так: (Ошибки)


C:\Users\User\Desktop\Russia Project\gamemodes\RPG.pwn(232) : error 017: undefined symbol "SCM"
C:\Users\User\Desktop\Russia Project\gamemodes\RPG.pwn(234) : error 017: undefined symbol "PlayerInfo"
C:\Users\User\Desktop\Russia Project\gamemodes\RPG.pwn(234) : warning 215: expression has no effect
C:\Users\User\Desktop\Russia Project\gamemodes\RPG.pwn(234) : error 001: expected token: ";", but found "]"
C:\Users\User\Desktop\Russia Project\gamemodes\RPG.pwn(234) : error 029: invalid expression, assumed zero
C:\Users\User\Desktop\Russia Project\gamemodes\RPG.pwn(234) : fatal error 107: too many error messages on one line

232 строка- if(sscanf(params, "s[118]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /me [текст]");
234 строка - format(string, sizeof(string), "%s %s", PlayerInfo[playerid][pName], params[0]);

Что не так? 

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


Ссылка на сообщение
Поделиться на другие сайты
MOP TTEX

 

 


PlayerInfo[playerid][pName]

замени на GetName(playerid)

 

и добавь

stock GetName(i)
{
    new name[24];
    GetPlayerName(i, name, 24);
    return name;
}

И в начало мода добавь #define SCM SendClientMessage

(туда где все #define)

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


Ссылка на сообщение
Поделиться на другие сайты
William Cobalt

@ChillyVilly, всё исправилось ? если нет, то пиши какие ошибки остались 

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


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

 

 


if(sscanf(params, "s[144]", params[0])) return SCM(playerid, COLOR_GREY, !"Используйте /ame [текст]");

 

В строку чата можно ввести только лишь 128 символов  :-)

И можно еще в начале каждой команды добавить, точно ли введены какие-нибудь параметры. Чтобы с самого начала не вызывать нативную функцию, а произвести обычную проверку:

if(params[0] == '\0') return SendClientMessage(playerid, COLOR_GRAY, !"Используйте /me [текст]"); // на примере первой команды

А чтобы дважды не вводить текст "Используйте /me [text]", который дважды потом попадает в память (а значит и берет лишний раз пространство), лучше вынести этот текст в начало:

static const MSG_USE_CMD[] = !"Используйте /me [текст]";
if(params[0] == '\0') return SendClientMessage(playerid, COLOR_GRAY, MSG_USE_CMD);
if(sscanf(params, "s[118]", params[0])) return SendClientMessage(playerid, COLOR_GRAY, MSG_USE_CMD);

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


Ссылка на сообщение
Поделиться на другие сайты
Web

, он не сам писал явно,  да и врятли учтет и запомнит о чем ты.

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


Ссылка на сообщение
Поделиться на другие сайты
William Cobalt

@Wеb, уверен не сам ? я пишу мод по урокам, запоминаю, и пишу команды и т.д, и вообще мне по*уй на твоё мнение, пиши что хочешь 

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


Ссылка на сообщение
Поделиться на другие сайты
Web

На мое мнение все равно? Мое мнение основано на многолетнем опыте. Таких "Скриптеров" я повидал очень много. Критику надо уметь принимать, тем более объективную. Как в жизни так и в интернете. А не хамить, что как бы намекает на не самые лучшие личностные качества. Ну и модераторы, не пропускайте такие команды. Следите за качеством.

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


Ссылка на сообщение
Поделиться на другие сайты
#Enotya

Остальное по примеру.

 

CMD:me(playerid, params[])
{
	extract params -> new string:text[110]; else 
		return SendClientMessage(playerid, -1, !"Используйте: /me текст");
	
	if(isnull(text)) 
		return SendClientMessage(playerid, -1, !"Используйте: /me текст");
	
	static string[MAX_CHATBUBBLE_LENGTH + 1];
	format(string, sizeof(string), "%s %s", проверка_на_ник, text);
	ProxDetector(20.0, playerid, string, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF, 0xDE92FFFF);
	SetPlayerChatBubble(playerid, text, 0xDE92FFFF, 20, 7500);
	
	return 1;
}

 

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

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