Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Развлекательные скрипты [PtokaX] _ Hentai Action

Автор: Sephiroth_Lukaw 7.12.2008, 16:26

Название: Hentai Action
Версия: 1.24
API: API2
Тема в Запросах: http://mydc.ru/topic525.html
Описание:

Цитата("alver")
Есть идея немного переделать скрипт действия следующим образом: в общем чате пользователи будут видеть немного разные сообщения. Думаю, из примера все поймут мою мысль:
Действия->Угостить->Пиво
На моем экране: *** Я открываю баночку пива и протягиваю ее Юзер ***
На экране Юзер: *** alver протягивает тебе баночку холодного пива!!! ***
На экранах остальных: *** alver и Юзер решили побаловаться пивком!!! ***
Код
--[[
[Avtor] - Кто использовал команду
[Victim] - На кого она направленна
--]]
--[[
   {
  "Угостить\\Пивом", -- Куда ставить в меню
  "Я открываю баночку пива и протягиваю ее [Victim]", --То, что придёт, тому, кто использовал команду
  "[Avtor] протягивает тебе баночку холодного пива!!!", --То, что придёт, тому, на кого была использована команда
  "[Avtor] и [Victim] решили побаловаться пивком!!!", --То, что придёт, всем остальным
  },
--]]
Возможно, будет нагружать хаб.

 Hentai_Action_v1.24.lua ( 2.37 килобайт ) : 449
 

Автор: MEXAHuK 12.12.2008, 19:57

грузит. не сильно. но чувствуется когда 450 балбесов начинают беситься

Автор: Setuper 12.12.2008, 20:03

да уж, с точки зрения оптимизации лучше использовать стандартный скрипт действий, так как там фразы уже предопределены и находятся в менюшке у клиента (загружены в клиент) и нет анализа чата.

Автор: Sephiroth_Lukaw 12.12.2008, 22:20

Перезалил.
1. Заменил все SendToNick на SendToUser(по идее, так лучше).
2. Переменная с меню создаётся при запуске скрипта т.е. не происходит проход по таблице, при заходе каждого пользователя.
3. При запуске скрипта(во время создания переменной с меню), часть таблицы tActionTable присваивается nil.

Автор: Setuper 12.12.2008, 22:45

Ещё некоторые фишки оптимизации:
1. sMenu = '' - лучше делать конкатенацию между одинаковыми литералами: sMenu = ""
2. tActionTable[i][1] = nil - вместо этого наверное лучше после цикла написать tActionTable = nil тут я не подумал))
3. sActionCmd = "HentaiAction" - тут следует написать короткое имя, например, просто sActionCmd = "a". Меньше букавок будет отсылаться клиенту и в функции ChatArrival будет легче производится операция сравнения.
4. Наврятли кто-то, кроме админа, будет знать команду, поэтому использоваться всегда будет только один префикс команды: "!". Поэтому остальные префиксы можно убрать: "%b<>%s+!(%S)%s(.*)"
5. if tActionTable[iCmdId] ~= nil then - вместо операции сравнения, быстрее работает логическая операция if tActionTable[iCmdId] then

big_smile.gif

Автор: Sephiroth_Lukaw 12.12.2008, 23:19

Круто))
Перезалил.
Интересно почитать, было. Насчёт 3 пунтка даже не подумал..

Автор: Spongebob 13.12.2008, 13:18

Скрипт неработает( eyes_droped.gif

Автор: Sephiroth_Lukaw 13.12.2008, 13:29

В чём выражается?
Протестировал при трёх пользователях, работает.
Скрипт под API2, не забудьте.

Автор: MEXAHuK 13.12.2008, 21:58

такой вопрос: а почему хентай? ))

Автор: Spongebob 13.12.2008, 22:47

Все работает...просто Действия появляется при клике правой кнопкой на Юзера...а в меню его нет))) victory.gif

Автор: _LorD_ 18.1.2009, 22:51

Цитата(Sephiroth_Lukaw @ 13.12.2008, 13:29) *
В чём выражается?
Протестировал при трёх пользователях, работает.
Скрипт под API2, не забудьте.

А API1 не можешь сделать ?

Автор: Wariner 18.1.2009, 23:16

специально же написана тема http://mydc.ru/topic605.html

Автор: _LorD_ 19.1.2009, 1:33

Setuper ты всё же заставил меня прочесть всё это, у меня получилось))) спс