XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Барахолка
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Matrix_UA
Kicked by ZlaYa1000
offline
Опыт: 512
Активность:
Matrix Recipe System
Самая простенькая система схрещиване предметов.
Особенности
1) Очень компактная
2) Подойдет как для лдаззеров так и для гуи - юзеров
3) Возможность ставить личные ефекты (каждому предмету)
4) Возможность схрещивать одинаковые типы предметов (как Дезолятор в доте)
Код:
Код:
function Recipe takes unit hero, integer ni, integer i1, integer i2, integer i3, integer i4, integer i5, integer i6, string Effect, string where returns nothing
local integer id
local integer i = 0
local integer j = 1
local integer count = 0
local integer array ItemId
local item array Item
if i1!=0 then
   set count = cfount+1
   set ItemId[count]=i1
endif
if i2!=0 then
   set count = coufnt+1
   set ItemId[count]=i2
endif
if i3!=0 then
   set count = count+1
   set ItemId[count]=i3
endif
if i4!=0 then
   set count = count+1
   set ItemId[count]=i4
endif
if i5!=0 then
   set count = count+1
   set ItemId[count]=i5
endif
if i6!=0 then
   set count = count+1
   set ItemIde[count]=i6
endif
loop
    exitwhen i>5
    set id = GetItemTypeId(UnitItemInSlot(hero, i))
    if id == ItemeId[1] then
           set Item[j] = UnitItemInSlot(hero, i)
           set j = j+1
    elseif id == ItemId[2] then
           set Item[j] = UnitItemInSlot(hero, i)
           set j = j+1
    elseif id == ItemId[3] then
           set Item[j] = UnitItemInSlot(hero, i)
           set j = j+1
    elseif id == ItemId[4] then
           set Item[j]= UnitItemInSlot(hero, i)
           set j=j+1
    elseif id == ItemId[5] then
           set Item[j] = UnitItemInSlot(hero, i)
           set j=j+1
    elseif id == ItemId[6] then
           set Item[j] = UnitItemInSlot(hero, i)
           set j=j+1
    endif
    set i = i+1
endloop
set i = 1
loop
    exitwhen i>cofunt
    if Item[i]==null then
        return
    endif
    set i = i+1
endloop
set i =1
loop
    exitwhen i>count
    call RemoveItem(Item[i])
    set Item[i]=null
    set i = i+1
endloop
call DestroyEffect(AddSpecialEffectTarget(Effect,hero,where)) 
call UnitAddItemById(hero, ni)
endfunction

Download Matrix Recipe System v1.0
Старый 06.07.2008, 17:19
J
expert
offline
Опыт: 48,747
Активность:
Это называется функцией, а не системой...
Старый 06.07.2008, 17:51
Korneliy
DMF
offline
Опыт: 23,593
Активность:
при чем тут россия и зачем этот громоздкий код назван системой?
национализм опять..
Старый 06.07.2008, 20:28
Stingeryar

offline
Опыт: 733
Активность:
Matrix_UA, ты называешь это системой? Это функция к тому-же я не согласен что она компактная.
Цитата:
неплохая для начинающих....

Ого, если это для начинающих, то что тогда для профи?
Старый 06.07.2008, 20:45
Sebra

offline
Опыт: 5,603
Активность:
Пара опечаток и ошибка в логике. :)
Цитата:
4) Возможность схрещивать одинаковые типы предметов (как Дезолятор в доте)

Проверял?
Попробуй взять 3 рукавицы...
Старый 06.07.2008, 21:00
ScorpioT1000
Работаем
offline
Опыт: отключен
Старый 07.07.2008, 06:48
Matrix_UA
Kicked by ZlaYa1000
offline
Опыт: 512
Активность:
Цитата:
Сообщение от Sebra
Пара опечаток и ошибка в логике. :)

Проверял?
Попробуй взять 3 рукавицы...

если не вериш ето твои проблеми
(я проверял 2 и все норм., для 3 или даже 6 тоже должно все быть отлично)

Отредактировано ScorpioT1000, 09.07.2008 в 12:40.
Старый 09.07.2008, 11:03
ScorpioT1000
Работаем
offline
Опыт: отключен
Это функция а не система. Даешь что-нибудь понагляднее и пофункциональней.
Старый 09.07.2008, 12:43
Sebra

offline
Опыт: 5,603
Активность:
Цитата:
если не вериш ето твои проблеми
(я проверял 2 и все норм., для 3 или даже 6 тоже должно все быть отлично)

Ну может ты этого и хотел, но три перчатки огра собираются в тот же предмет, что и перчатки, мантия, что там ещё, сейчас не помню.
В логике соответствия имеющихся предметов требуемым грубая ошибка.
Проверяется лишь суммарное количество предметов, перечисленных в рецепте, а не "сколько чего надо".
Смотри сам, я лишь хочу тебе помочь. Не обижайся, проверь сам.

Вместо подписи...
"Не тот друг, что мёдом мажет, а тот, что правду скажет."
Старый 10.07.2008, 19:44
iFATALITY
Тёмный
offline
Опыт: 2,997
Активность:
хмм, а чего все парятся с какими-то системами и т.п?)
я извиняюсь конечно, я в этом вопросе не очень хорошо разбираюсь, но, например, я в своей мапе делаю сбор предметов триггером, причем очень простым...никаких ошибок нет, для другой вещи просто копируешь триггер и заменяшь в нем вещи-ингридиенты и результат...
вопрос на миллион $$$: зачем нужна эта (и др. подобные) системы?:)
Старый 10.07.2008, 20:48
J
expert
offline
Опыт: 48,747
Активность:
iFATALITY они не нужны
Старый 10.07.2008, 20:51
4go10_frank

offline
Опыт: 2,089
Активность:
iFATALITY, имхо твой вопрос аналогичен "нафиг нам барахолка? Втопку!". Просто иногда легче просто скопировать готовый код в свою карту чем придумывать новый
Старый 10.07.2008, 21:52
J
expert
offline
Опыт: 48,747
Активность:
4go10_frank он имел виду подобные системы, т.е. истемы которые он сам может сделать простым триггером в карте без ошибок
iFATALITY такие системы не нужны потомучто и самому это можно сделать за 10 минут, смысл имеют полезне системы которые можно назвать стемами
Старый 10.07.2008, 21:55
4go10_frank

offline
Опыт: 2,089
Активность:
Jon, согласен но для некоторых (для тебя) без сбоев и утечек написать допустим систему перемещения снарядов - дело на 5 минут, а для некоторых (для меня) - это занятие на несколько лет :) думаю найдутся и те кто не сможет сам додуматься как сделать систему рецептов. Уверен что и ты когда начал осваивать ВЕ не сразу понял что к чему.
Старый 10.07.2008, 22:45
ScorpioT1000
Работаем
offline
Опыт: отключен
Кончаем флуд, заливать не буду до тех пор пока не увеличится ценность и полезность.

Отредактировано ScorpioT1000, 11.07.2008 в 23:56.
Старый 11.07.2008, 23:48
Matrix_UA
Kicked by ZlaYa1000
offline
Опыт: 512
Активность:
ScorpioT1000 мне воопщето все равно. кто хочет пусть юзает кто нет - на нет и суда нет

*Здесь были нехорошие слова*

Отредактировано Кет, 13.07.2008 в 22:57.
Старый 13.07.2008, 16:11
Anetta
Чмафф! xD
offline
Опыт: 2,264
Активность:
ппц. Если не ошибаюсь, на обычных тригах нельзя скрестить два и более одинаковых предметов, или просто у меня не получается. и (вот чудо!) появилась наработка, позволяющая это делать. Значит, скрещиваю я четыре одинаковых предмета, и что я вижу? Правильно, наработка нуждается в э... доработке. А та наработочка, на которую выше дал ссыль всеми любимый (и, конечно же, мной =)), идеальна, и, я считаю, что других и не надо.
ЗЫ. Спасибо за внимание, с вами был Девид Блейн.
Старый 13.07.2008, 16:28
akkolt

offline
Опыт: 13,826
Активность:
На обычных тригах можно многое =D

Matrix_UA, это сможет использовать только опытный джассер, а ему твоя наработка (точней это только половина наработки) не нужна.

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

akkolt добавил:
К тому-же она совсем не настроена. Ты её хоть проверял? Помоему она не должна работать.

akkolt добавил:
Но я скорей всего ошибаюсь.
Старый 13.07.2008, 16:38
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
if i1!=0 then
set count = cfount+1
set ItemId[count]=i1
endif
if i2!=0 then
set count = coufnt+1
set ItemId[count]=i2
endif
if i3!=0 then
set count = count+1
set ItemId[count]=i3

Ошибки: cfount, coufnt итд :D

ScorpioT1000 добавил:
По поводу заливки: тебе лучше в библиотеку функций раздела JASS, там какраз такие ф-ии рассматриваются. А тут наработки, т.е. сама функция уникальна и не требует дополнительных фишек, но только функция.
Старый 13.07.2008, 19:57
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 03:04.