Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Сообщество скриптеров (Академия)

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33370

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
Полезность для папок. Очищает не пустую директорию
class Dir
  def clear!
    counter = 0
    map do |item|
      if item != '.' && item != '..'
        if File.directory?("#{path}/#{item}")
          counter += Dir.new("#{path}/#{item}").clear!
          Dir.rmdir "#{path}/#{item}"
        else
          File.unlink "#{path}/#{item}"
          counter += 1
        end
      end
    end
    counter
  end
end
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 14 года 4 мес. назад от dark32.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33373

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
пока не могу понять, что делает этот код. Он вычищает файлы из директории?
И его через ивент запускать? И как скрипт связан с классом Item?
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33374

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
Добавляешь его в скрипты. Он удаляет всё из директории, кроме самой директории. С item он ни как не связан. А запускать его просто:
Dir.new(dirname).clear!
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33375

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
Это как для быстрой очистки сейвов?
А я хосу узнать, если указанная директория будет отсутствовать, он создаст её?
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33376

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
Проверил. Не создаёт, вылетает с ошибкой.
Как создать папку я писал выше.
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 14 года 4 мес. назад от dark32.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33379

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
Dir.exist?(dirname) - это не сработало

За то сработало это:

File.directory?(dir)
else...

Большое спасибо! Создаёт директорию, и даже кладёт в неё сейвы!
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33419

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
Мне нужна помощь, как ни странно это звучит.
В Ruby есть Proc и lambda, в теории различия ясны.
Первый - поглощает все аргументы, второй - только столько сколько в нём описано.
Если их меньше то первый присваивает nil, второй вызывает ошибку (исключение)
Если больше: первый - игнарирует лишние, второй - ызывает ошибку (исключение)
Сам вопрос: В чем тогда смысл lambda, если он вызывает исключения чаще?

Вопрос снят. Ответ найден:
Ответ кроется в концептуальном различии между процедурами и методами. Процедуры (Proc) в Ruby - это фрагмент кода, не метод. Поэтому return в proc_return по сути является return для самого метада, в котором тот был выполнен. Лямбды (lambda) ведут себя как методы, они проверяют количество аргументов и не переопределяют вызов return в методах. Поэтому проще считать лямбды безымянными методами.
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 14 года 4 мес. назад от dark32.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33720

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
Подскажите пожалуйста оператор, с помощью которого можно сделать снимок экрана (того, что происходит в игре) и сохранить его в файл, а потом стереть.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33725

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
А зачем это делать?
Собственно есть скрипт на это.
Скрипт из блокнота вставить до маина, .dll положить в папку с игрой.
Снимать скриншот Screen::shot(filename)
Удалять File.delete(filename)

Вложенный файл:

Имя файла: ScreenShot.zip
Размер файла: 54790
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 14 года 4 мес. назад от dark32.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33731

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
Ага, спасибо, нашёл.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33899

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Разработчик3 местоПобедитель конкурсаПисатель 2 место2 место Организатор конкурсовПисатель
Свою CBS я пока забросил, делаю проект. Есть пара вопросов.

1) Нужно, чтобы при выборе предмета из инвентаря в переменную, допустим, №25 заносился номер этого предмета.
2) И нужно, чтобы при выборе предмета в правом верхнем углу появлялась картинка из папки pictures/items с названием, равным номеру предмета (Лучше сразу, переменной №25 - в таком случае, при обнулении её эвентами картинка исчезнет, как и должна)
3) И при нажатии шифта чтобы переменная №25 обнулялась. Ну это я и сам эвентами могу сделать.

Прошу помочь, заранее благодарен за информацию
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33902

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
А при чём тут скрипты? Всё решается на GUI через Common event
встречный вопро предмет = вещь или ещё оружие и броня
1) для вещей есть опция коммон эвент
2) сделай в коммон эвенте ветвление на проверку числа и в зависимости от числа выводи ту или иную картинку

если var[25]== 1 тогда
показать картинку 1
иначе
если var[25]== 2 тогда
показать картинку 2
иначе...

3) паралельный коммон эвент.
если нажата клавиша шифт тогдп
var[20]=0

Многое можно сделать эвентами, очень многое. Но по эвентам вопросы задавайте не мне, я в них не силён.
З.Ы. Или нужно именно скрипт?
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 14 года 4 мес. назад от dark32.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33906

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Разработчик3 местоПобедитель конкурсаПисатель 2 место2 место Организатор конкурсовПисатель
Я знаю, что так можно, и пока у меня так всё и устроено.
Но у меня нет ни желания ни возможности писать кучу коммон эвентов по одному на предмет со всего одной строчкой. Я считаю, что это нерационально. Поэтому и прошу скрипт или помощи.

Кстати, а лучше бы по шифту не обнулялась переменная,а выбирался из инвентаря следующий предмет. Эвентами это будет сделать сложнее, но это хотя бы оправдает нажатие шифта вместо эскейпа.
Последнее редактирование: 14 года 4 мес. назад от James.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33907

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
Понимаешь, здесь по 1 пункту не просто написать рациональное решение не затронув родные скрипты. Просто так предмет не вытащить в переменную.
А во 2 пункт можно реализовать через скрипт
case var[25]
when 1
<....>
when 2
<....>
else
<....>
end
или написать дополнительное окошечко, наподобие того что для голда выводится
Для 3 не вижу смысла в скрипте.

# var[25] - условное обазначение.
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 14 года 4 мес. назад от dark32.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33912

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Разработчик3 местоПобедитель конкурсаПисатель 2 место2 место Организатор конкурсовПисатель
1)Так я и прошу помочь отредактировать родные скрипты. Где и что там надо прописать?
2)Тут можно проще - просто у меня названия картинок предметов совпадают с ID предметов. Я уже как-то смог загрузить спрайт в имени кот-ого есть переменная, мне просто надо знать, куда его вызов прописывать.
3)Просто прибавлять к №25 один нельзя - предмета ведь может и не быть в инвентаре. Поэтому тут нужны постоянные проверки на это. Вот если бы можно было как-нибудь скриптом...
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33914

  • Злодей
  • Злодей аватар
  • Вне сайта
  • Архитектор Миров
  • Настоящее звание: Прокуратор! Просто опечатка!
  • Сообщений: 1876
  • Спасибо получено: 78
скажите, как сохранить предметы в массив, или как быстро очстить инвентарь через скрипт?
Есть такие моменты, где нужно разбить партию на 2 части, а инвентарь как бы остаётся общим. А Это не правдоподобно...
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33937

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Разработчик3 местоПобедитель конкурсаПисатель 2 место2 место Организатор конкурсовПисатель
Я, кажется, понял, что делать для 1 и 2. Мне лишь надо понять, как, чёрт побери, в скрипте занести/получить информацию в/из переменную/ой?
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33938

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
Присвоить переменной
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Последнее редактирование: 14 года 4 мес. назад от dark32.
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33940

  • James
  • James аватар
  • Вне сайта
  • Архитектор Миров
  • Ленивый мечтатель
  • Сообщений: 1167
  • Спасибо получено: 159
  • Разработчик3 местоПобедитель конкурсаПисатель 2 место2 место Организатор конкурсовПисатель
Какой именно? Мне нужна именно переменная, которую можно использовать в эвентах.
Насколько я понимаю, переменные - это какой-то массив, как он называется?
Администратор запретил публиковать записи гостям.

Сообщество скриптеров (Академия) 14 года 4 мес. назад #33941

  • dark32
  • dark32 аватар
  • Вне сайта
  • Просветлённый
  • Тёмный
  • Сообщений: 361
  • Спасибо получено: 21
  • Организатор конкурсов
$game_variables
Тьма, тьма, и ничего кроме тьмы...

ПОМОГИТЕ!!! или как быстро получить бан!
Администратор запретил публиковать записи гостям.
Модераторы: NeKotZima
Время создания страницы: 0.268 секунд