• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
Форум » Pawno » уроки скрипты » [Method] Simple DCMD style commands [without separate functi (*icon-0*)
[Method] Simple DCMD style commands [without separate functi
adminДата: Вторник, 25.01.2011, 13:13:55 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869
Я действительно открыл это на обсуждение, мне надоело вводить DCMD (CMD, размер, cmdtext), то необходимости выделите бог знает где, чтобы сделать новую функцию. Так что я решил вернуться к старому методу параметров в OnPlayerCommandText.

strtok, вы думаете? вещи, которые вне данных мусора!
требует sscanf но я просто предпочитаю решений команды обратного вызова, а не отдельные функции для каждого [другие люди могут предпочесть другому, это только мое мнение]

Так или иначе, я потом надоело письменной форме, если (! STRCMP (cmdtext, команда)) так сделал макрос сделать это для меня

В основном это просто распадается cmdtext как только обратного вызова называется, и помещает его в двух массивах ['Cmd "+" параметры "]
Оба из которых являются размера надлежащим основан на том, что я знаю, это мой крупнейших команды и наибольшее количество параметров [да я знаю, что мой сценарий достаточно хорошо]

Во всяком случае код:

Один определить для, если заявление, и я сделал еще один для тех, кто, как и их команд в функции:

Code
#define cmd(%1) if((!strcmp(cmd,%1,true,strlen(%1)))&&(cmd[strlen(%1)+1]==EOS))
// the normal command method, inside OnPlayerCommandText
#define pCmd(%1,%2) if(!strcmp(cmd[1],#%1,true,%2)&&cmd[%2+1]==EOS)return cmd_%1(playerid,params)
// dcmd style, don't know if it's faster or whatever, doesn't seem to make a difference in game, I just find it easier to script [BAD HABIT I KNOW! :(]

В любом случае, там должно быть некоторые вещи в обратный вызов, потому что иначе WTF является "CMD [] 'и' Params []
Code
public OnPlayerCommandText(playerid, cmdtext[])
{
// I wish I could do 'new cmd[ strlen(cmdtext) ]' or something, but oh well lol
     new cmd[17], params[32]; // Change these based on how big your commands/params are etc.
     sscanf(cmdtext, "s[17]s[32]", cmd, params); // splits it at the first space

И, конечно, как я использую это
Code
cmd("/own")
     {
         new id = strval(params);
         SendClientMessage(id, 0xFF0000FF, "You just got Owned! :D");
         return 1;
     }

Вероятно, может письменного простой код, чтобы сделать расщепления [sscanf немного ненужной Я полагаю, для этого, нужно только один пробел в качестве разделителя] Кроме того, я мог бы добавить проверить так, если это не параметры команды, нет необходимости для расщепления, следовательно, быстрее ... но ... ЦБ .. -_-

Во всяком случае, это мой метод, я сделал это сам [как правило, не используют другие народы работы сейчас, не знаю, почему я просто хотел бы гордиться, когда я сделать мои собственные вещи]

Открыть для "Код захвата" и обсуждение: P
Источник:sa-mp.com



zm-jail.ru

Разработка сайта samp-pawno.ru


 
СообщениеЯ действительно открыл это на обсуждение, мне надоело вводить DCMD (CMD, размер, cmdtext), то необходимости выделите бог знает где, чтобы сделать новую функцию. Так что я решил вернуться к старому методу параметров в OnPlayerCommandText.

strtok, вы думаете? вещи, которые вне данных мусора!
требует sscanf но я просто предпочитаю решений команды обратного вызова, а не отдельные функции для каждого [другие люди могут предпочесть другому, это только мое мнение]

Так или иначе, я потом надоело письменной форме, если (! STRCMP (cmdtext, команда)) так сделал макрос сделать это для меня

В основном это просто распадается cmdtext как только обратного вызова называется, и помещает его в двух массивах ['Cmd "+" параметры "]
Оба из которых являются размера надлежащим основан на том, что я знаю, это мой крупнейших команды и наибольшее количество параметров [да я знаю, что мой сценарий достаточно хорошо]

Во всяком случае код:

Один определить для, если заявление, и я сделал еще один для тех, кто, как и их команд в функции:

Code
#define cmd(%1) if((!strcmp(cmd,%1,true,strlen(%1)))&&(cmd[strlen(%1)+1]==EOS))
// the normal command method, inside OnPlayerCommandText
#define pCmd(%1,%2) if(!strcmp(cmd[1],#%1,true,%2)&&cmd[%2+1]==EOS)return cmd_%1(playerid,params)
// dcmd style, don't know if it's faster or whatever, doesn't seem to make a difference in game, I just find it easier to script [BAD HABIT I KNOW! :(]

В любом случае, там должно быть некоторые вещи в обратный вызов, потому что иначе WTF является "CMD [] 'и' Params []
Code
public OnPlayerCommandText(playerid, cmdtext[])
{
// I wish I could do 'new cmd[ strlen(cmdtext) ]' or something, but oh well lol
     new cmd[17], params[32]; // Change these based on how big your commands/params are etc.
     sscanf(cmdtext, "s[17]s[32]", cmd, params); // splits it at the first space

И, конечно, как я использую это
Code
cmd("/own")
     {
         new id = strval(params);
         SendClientMessage(id, 0xFF0000FF, "You just got Owned! :D");
         return 1;
     }

Вероятно, может письменного простой код, чтобы сделать расщепления [sscanf немного ненужной Я полагаю, для этого, нужно только один пробел в качестве разделителя] Кроме того, я мог бы добавить проверить так, если это не параметры команды, нет необходимости для расщепления, следовательно, быстрее ... но ... ЦБ .. -_-

Во всяком случае, это мой метод, я сделал это сам [как правило, не используют другие народы работы сейчас, не знаю, почему я просто хотел бы гордиться, когда я сделать мои собственные вещи]

Открыть для "Код захвата" и обсуждение: P
Источник:sa-mp.com


Автор - admin
Дата добавления - 25.01.2011 в 13:13:55
Форум » Pawno » уроки скрипты » [Method] Simple DCMD style commands [without separate functi (*icon-0*)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
14:35:28
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2024

vkontakte :samp-pawno.ru: