• Добро пожаловать, Гость. Войдите или зарегистрируйтесь.

Автор Тема: Нужна помощь по скриптингу  (Прочитано 2773 раз)

Описание:

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Svinec

  • *
  • Сообщений: 104
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
Нужна помощь по скриптингу
« : 22 Сентябрь, 2012, 21:26:04 »
0
Недавно начал пробовать писать скрипты для Oblivion.
Не могу разобраться как действует функция GetCrosshairRef из OBSE. Вроде бы она должна возвращать ссылку на ID обьекта, на который смотрит игрок. Но применить ее никак не выходит, видимо я не врубаюсь в синтаксис языка.
Пробую проверить функцию этим скриптом:

scn AAA
ref a

begin gamemode

set a to RowBoat01 ; лодка у выхода из канализации, вначале игры
 if GetCrosshairRef == a
message "функция сработала" 30

endif
end

Перебрал кучу вариантов написания, но все равно ничего не выходит.

Оффлайн Svinec

  • *
  • Сообщений: 104
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
Re: Нужна помощь по скриптингу
« Ответ #1 : 29 Сентябрь, 2012, 23:29:57 »
0
Неужели же, никто не поможет???

Оффлайн IgorLutiy

  • *
  • *
  • Сообщений: 148
  • Репутация: 5.7
  • Пол: Мужской
    • Просмотр профиля
    • Oblivion Modding
Re: Нужна помощь по скриптингу
« Ответ #2 : 29 Сентябрь, 2012, 23:41:55 »
0
Пробовали и ID и RefID в скрипт подставлять?
Мир друзьям - смерть врагам!

Оффлайн Svinec

  • *
  • Сообщений: 104
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
Re: Нужна помощь по скриптингу
« Ответ #3 : 30 Сентябрь, 2012, 01:33:24 »
0
Пробовал и присваивать переменной ref ID предмета и писать сам ID напрямую, но что то не так, этот скрипт не работает.
Заинтересовала эта функция потому что я хочу попробовать написать плагин, позволяющий разбивать замки на контейнерах - ударом оружия.
Например: игрок смотрит на контейнер, функция GetCrosshairRef  вычисляет его ID и если игрок производит анимацию удара и ID верен определенному контейнеру, контейнер открывается.
Впрочем, может есть какой - либо другой способ осуществить эту идею, но я до него пока не додумался.

Оффлайн IgorLutiy

  • *
  • *
  • Сообщений: 148
  • Репутация: 5.7
  • Пол: Мужской
    • Просмотр профиля
    • Oblivion Modding
Re: Нужна помощь по скриптингу
« Ответ #4 : 30 Сентябрь, 2012, 02:01:36 »
0
позволяющий разбивать замки на контейнерах - ударом оружия.
Насколько я помню - такой плагин уже есть. Достаточно будет его найти и посмотреть, как реализована эта идея ;)
Мир друзьям - смерть врагам!

Оффлайн Svinec

  • *
  • Сообщений: 104
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
Re: Нужна помощь по скриптингу
« Ответ #5 : 30 Сентябрь, 2012, 02:20:22 »
0
Я подозревал что нечто подобное уже реализовали, но мне неизвестно название этого плагина, поэтому и не могу его найти. Да и все же любопытная функция. Хотелось бы как - нибудь ее запустить.


Добавлено:
Еще куча вопросов : )
Каким образом можно воздействовать на какого - либо из НПС скриптом?
 К примеру в этом туториале: http://tiarum.com/wiki/Oblivion:Кастование_заклинаний_с_помощью_активатора - такая возможность реализовывается только с помощью заклинания, которое "по факту" кастуется одним из Актеров, при это вычисляется его ID от которого скрипт и пляшет дальше. Но как сделать нечто подобное, когда у произвольного Актера, допустим запас сил падает ниже определенного процента, без кастования им заклинания? Как определить его ID не прописывая всех возможных актеров в переменных?
« Последнее редактирование: 30 Сентябрь, 2012, 02:47:11 от Svinec »

Оффлайн AleksTirex

  • *
  • *
  • Сообщений: 529
  • Репутация: 57.3
  • Пол: Мужской
    • Просмотр профиля
    • Email
Re: Нужна помощь по скриптингу
« Ответ #6 : 30 Сентябрь, 2012, 02:44:24 »
0
Но как сделать нечто подобное, когда у произвольного Актера, допустим запас сил падает ниже определенного процента, без кастования им заклинания? Как определить его ID не прописывая всех возможных актеров в переменных?

Довольно просто. Надо в определённом радиусе сканировать объекты и результат сканирования проверять на нужные параметры: актёр, процент здоровья, жив или нет и т.д. Делается простой цикл.

Как именно это сделать ;) , опять открой мод и посмотри, там всё понятно. Вот он http://tiarum.com/wiki/Oblivion_%D0%9F%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD:Lady_Underwear

Цитировать (выделенное)
позволяющий разбивать замки на контейнерах - ударом оружия.

Если можно "определённым оружием, а не любым", то это совсем просто: делается зачарование со скриптом и вешается на оружие.

begin ScriptEffectStart
   if GetLocked
      unlock
   endif
end
« Последнее редактирование: 30 Сентябрь, 2012, 02:52:05 от AleksTirex »
Будьте осторожны в своих желаниях, они могут исполниться!
Награды За огромные знания и желание делиться ими с форумчанами

Оффлайн Svinec

  • *
  • Сообщений: 104
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
Re: Нужна помощь по скриптингу
« Ответ #7 : 30 Сентябрь, 2012, 02:50:50 »
0
Благодарю, буду потихоньку разбираться. Спасибо всем за оперативные ответы!

Добавлено:
Если можно "определённым оружием, а не любым", то это совсем просто: делается зачарование со скриптом и вешается на оружие.
Интересно. Еще я видел нечто подобное в функциях OBSE, там вроде можно сделать проверку на то - каким типом оружия экипирован игрок.

Добавлено:
Хммм... Возник еще вопрос. С помощью какой функции стандартной или из OBSE, можно присвоить игроку определенное преступление, чтобы за ним стража охотилась?

Оффлайн AleksTirex

  • *
  • *
  • Сообщений: 529
  • Репутация: 57.3
  • Пол: Мужской
    • Просмотр профиля
    • Email
Re: Нужна помощь по скриптингу
« Ответ #8 : 03 Октябрь, 2012, 14:49:20 »
0
Хммм... Возник еще вопрос. С помощью какой функции стандартной или из OBSE, можно присвоить игроку определенное преступление, чтобы за ним стража охотилась?

Можно назначить штраф игроку, если штраф большой, то стража сразу будет атаковать ГГ. player.SetCrimeGold 1000
Можно попробовать сообщать какому-нибудь стражнику о преступлении ГГ, тогда этот стражник начнёт "охоту" на ГГ (не уверен, что остальная стража тоже станет преследовать ГГ, но скорее всего будет). Ref_стражник.SendTrespassAlarm player
Будьте осторожны в своих желаниях, они могут исполниться!
Награды За огромные знания и желание делиться ими с форумчанами

Оффлайн Luna

  • Распорядитель ФА
  • *
  • *
  • Сообщений: 2257
  • Репутация: 70.7
  • Пол: Женский
    • Просмотр профиля
    • Имперский Город
    • Email
Re: Нужна помощь по скриптингу
« Ответ #9 : 03 Октябрь, 2012, 15:17:28 »
0
AleksTirex,а если вот в этих функциях флаг установить = 1, а в качстве фракции - ну пусть какую-то любую, то это будет работать как засчитанное преступление? Невзирая на то, что сам ГГ этого преступления не совершал.

SetPCFactionAttack
SetPCFactionMurder
SetPCFactionSteal
Награды Участникам бета-тестов TESO За упорство в ожидании окончания 2х-недельной загрузки файлов TESO За создание новогоднего настроения Всем принявшим участие в 9-летии Тиарума

Оффлайн AleksTirex

  • *
  • *
  • Сообщений: 529
  • Репутация: 57.3
  • Пол: Мужской
    • Просмотр профиля
    • Email
Re: Нужна помощь по скриптингу
« Ответ #10 : 03 Октябрь, 2012, 16:17:01 »
0
AleksTirex,а если вот в этих функциях флаг установить = 1, а в качстве фракции - ну пусть какую-то любую, то это будет работать как засчитанное преступление? Невзирая на то, что сам ГГ этого преступления не совершал.

SetPCFactionAttack
SetPCFactionMurder
SetPCFactionSteal
Как то я пробовал с этим играться, но очень давно, так сами эти функции работали крайне нестабильно, а то и вообще не работали.
Но при срабатывании этих функций, страже "плевать" на это дело, но члены данных фракций начинали относиться к ГГ хуже. Само по себе это не считается преступлением. Вот если ты убъёшь члена данной фракции (SetPCFactionMurder), то по любому это будет убийство (если он не "враждебный" или напал первым), и ГГ будет начислен штраф, и без разницы, к какой именно фракции принадлежал НПС.

 :PS: В топиках стражников практически единственное условие на арест - наличие штрафа. Поэтому добавление штрафа самый надёжный способ.
Будьте осторожны в своих желаниях, они могут исполниться!
Награды За огромные знания и желание делиться ими с форумчанами

Оффлайн Svinec

  • *
  • Сообщений: 104
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
Re: Нужна помощь по скриптингу
« Ответ #11 : 04 Октябрь, 2012, 00:40:03 »
0
AleksTirex. Благодарю за подсказку.
Функция SetCrimeGold подошла как нельзя лучше (правда стража начинает преследовать игрока только если наложен штраф не менее 500 монет). А вот функция SendTresPassAlarm почему то не срабатывает.
В общем, теперь у меня есть небольшой скрипт, который открывает двери и контейнеры если игрок ударяет по ним дробящим оружием и накладывает штраф в 500 золотых, если это была чужая собственноть. Осталось самое сложное. Установить шанс взлома объекта в зависимости от силы игрока и сложности замка.

Оффлайн AleksTirex

  • *
  • *
  • Сообщений: 529
  • Репутация: 57.3
  • Пол: Мужской
    • Просмотр профиля
    • Email
Re: Нужна помощь по скриптингу
« Ответ #12 : 04 Октябрь, 2012, 02:13:32 »
0
Осталось самое сложное. Установить шанс взлома объекта в зависимости от силы игрока и сложности замка.
Можно поиграться с этими тремя командами: GetLockLevel - player.getAV Strength - GetRandomPercent

if GetRandomPercent > GetLockLevel
   unlock
endif

или (GetRandomPercent > GetLockLevel) && (GetRandomPercent < player.getAV Strength)
или (GetRandomPercent > GetLockLevel) || (GetRandomPercent < player.getAV Strength)

В общем, любые комбинации с этими тремя командами. (их можно делить, умножать, использовать константы и т.д.)
Будьте осторожны в своих желаниях, они могут исполниться!
Награды За огромные знания и желание делиться ими с форумчанами

Оффлайн Svinec

  • *
  • Сообщений: 104
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
Re: Нужна помощь по скриптингу
« Ответ #13 : 05 Октябрь, 2012, 23:34:40 »
0
Вот такой вот ужас у меня получился  :shok: Заранее дико извиняюсь.

scn AAA
long type
ref cont
ref weapon
long weapontype
short Breaking
short crime
short property
short Strength
long Luck
long summa
float Chance
long Lock
short open

begin gamemode
set weapon to player.GetEquippedObject 16      ;вычисляем предмет который держит в руках игрок
set weapontype to GetWeaponType weapon         ;определяем тип предмета
if weapontype == 2 && player.IsPowerAttacking      ;если предмет - одноручное дробящее оружие и игрок совершает мощную атаку
set Breaking to 1
elseif weapontype == 3 && player.IsPowerAttacking   ;если предмет - двуручное дробящее оружие и игрок совершает мощную атаку
set Breaking to 1
else
set Breaking to 0
return
endif

if Breaking == 1
set cont to GetCrosshairRef            ;вычисляем предмет на который смотрит игрок
set type to GetObjectType cont            ;определяем тип предмета
endif
if type == 23 || 24               ;если объект является контейнером или дверью
set Lock to cont.GetLockLevel    ;определяем насколько сложно заперт замок

if Lock == 100
message "этот замок не удастся сломать" 30

elseif Lock != 100
set Strength to player.Getactorvalue Strength      ;вычислить силу игрока
set Luck to player.Getactorvalue Luck/4            ;вычислить удачу игрока и разделить ее на 4
set Summa to Strength + Luck                     ;сложить силу и удачу игрока
set Chance to Rand 0 101

if Lock > 0 && Lock <= 7 && Summa > 0 && Summa <= 5 && Chance <= 1
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 5 && Summa <= 10 && Chance <= 5
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 10 && Summa <= 15 && Chance <= 11
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 15 && Summa <= 20 && Chance <= 16
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 20 && Summa <= 25 && Chance <= 20
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 25 && Summa <= 30 && Chance <= 23
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 30 && Summa <= 35 && Chance <= 27
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 35 && Summa <= 40 && Chance <= 31
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 40 && Summa <= 45 && Chance <= 35
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 45 && Summa <= 50 && Chance <= 40
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 50 && Summa <= 55 && Chance <= 45
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 55 && Summa <= 60 && Chance <= 50
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 60 && Summa <= 65 && Chance <= 55
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 65 && Summa <= 70 && Chance <= 60
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 70 && Summa <= 75 && Chance <= 65
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 75 && Summa <= 80 && Chance <= 70
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 80 && Summa <= 85 && Chance <= 75
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 85 && Summa <= 90 && Chance <= 80
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 90 && Summa <= 95 && Chance <= 85
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 95 && Summa <= 100 && Chance <= 90
set open to 1
elseif Lock > 0 && Lock <= 7 && Summa > 100 && Chance <= 99
set open to 1
endif

if open == 1
set property to cont.IsOffLimits         ;определяем, является ли контейнер или дверь чей-либо собственностью
cont.unlock 0               ;открыть объект
set open to 0
message "замок сломан" 30
if property == 1               ;если контейнер или дверь принадлежит кому-либо
if player.IsActorDetected            ;если игрок был замечен
player.setcrimegold 500               ;наложить на игрока штраф в 500 монет

endif
endif
endif
endif
endif
end

В скрипте не указаны проверки на случай если замок заперт сложнее чем очень легкий, я попросту не стал копировать все подряд. А так вроде все работает.
Очередной поток вопросов  :yes:
Может можно как нибудь ужать проверки на силу, удачу и тд. а то в полном скрипте почти триста строк.
В скрипте штраф накладываетсься на игрока как только он сломает чужой сундук или дверь.
Может имеет смысл сделать чтобы игрока штрафовали как только он нанесет по чужой собственности хоть один удар, не дожидаясь взлома?

Оффлайн AleksTirex

  • *
  • *
  • Сообщений: 529
  • Репутация: 57.3
  • Пол: Мужской
    • Просмотр профиля
    • Email
Re: Нужна помощь по скриптингу
« Ответ #14 : 06 Октябрь, 2012, 00:21:21 »
0
Хорошо, я немного исправлю этот скрипт. Чуть попозже.

Можно штрафовать за попытку взлома, но как мне кажется, или не стоит так делать, или сделать штраф маленьким (25-50 руб.)
Будьте осторожны в своих желаниях, они могут исполниться!
Награды За огромные знания и желание делиться ими с форумчанами

Оффлайн Svinec

  • *
  • Сообщений: 104
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
Re: Нужна помощь по скриптингу
« Ответ #15 : 06 Октябрь, 2012, 00:43:17 »
0
Хорошо, я немного исправлю этот скрипт. Чуть попозже.
Мне не хотелось бы напрягать тебя по пустякам. Мне бы только подсказку как скрипт оптимизировать.
А насчет штрафа: конечно он немаленький (500 монет), но при меньшем штрафе стража не хочет преследовать игрока. Потому я остановился на этом минимуме.

Оффлайн AleksTirex

  • *
  • *
  • Сообщений: 529
  • Репутация: 57.3
  • Пол: Мужской
    • Просмотр профиля
    • Email
Re: Нужна помощь по скриптингу
« Ответ #16 : 06 Октябрь, 2012, 01:01:32 »
0
Как-то так...

scn AAA

ref cont
ref weapon
long weapontype


begin gamemode

if player.IsPowerAttacking      ;если игрок совершает мощную атаку
   set weapon to player.GetEquippedObject 16      ;вычисляем предмет который держит в руках игрок
   set weapontype to GetWeaponType weapon         ;определяем тип предмета
   set cont to GetCrosshairRef            ;вычисляем предмет на который смотрит игрок
   if (weapontype == 3 || weapontype == 2) && (GetObjectType cont == 23 || GetObjectType cont == 24)
      if cont.GetLockLevel < 100
         if (player.Getactorvalue Luck / 4 + player.Getactorvalue Strength - cont.GetLockLevel) >= Rand 0 101
            cont.unlock 0 
            message "замок сломан" 30
            if player.IsActorDetected
               player.setcrimegold 500
            endif
         endif
      else
         message "этот замок не удастся сломать" 30
         return
      endif
   endif
endif
end

Цитировать (выделенное)
но при меньшем штрафе стража не хочет преследовать игрока. Потому я остановился на этом минимуме.
"Любишь воровать - люби платить." :meeting: Это к любителям халявы, пусть не раслабляются. :pardon:
« Последнее редактирование: 06 Октябрь, 2012, 01:09:08 от AleksTirex »
Будьте осторожны в своих желаниях, они могут исполниться!
Награды За огромные знания и желание делиться ими с форумчанами

Оффлайн Svinec

  • *
  • Сообщений: 104
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
Re: Нужна помощь по скриптингу
« Ответ #17 : 06 Октябрь, 2012, 01:54:23 »
0
     if (player.Getactorvalue Luck / 4 + player.Getactorvalue Strength - cont.GetLockLevel) >= Rand 0 101
Вот оно! А я то писал таблицы типа: если сумма силы и удачи столько-то, а рандомное число менее или равно тому-то то сделать то-то и то. И так для каждого уровня сложности запертого замка в отдельности.
А все так просто... Надо всего лишь отнять от суммы силы и удачи, число на которое заперт замок...
Я так понимаю, в этом примере если сила и удача игрока буду по сотне, то и шанс открытия очень сложного замка будет где-то 20%. Думаю что малость увеличу шансы на успех взлома и надо бы сделать так чтобы оружие ломалось от ударов по двери/контейнеру. А то стучишь топором в чью то дверь, а ему все нипочем.

Оффлайн AleksTirex

  • *
  • *
  • Сообщений: 529
  • Репутация: 57.3
  • Пол: Мужской
    • Просмотр профиля
    • Email
Re: Нужна помощь по скриптингу
« Ответ #18 : 06 Октябрь, 2012, 02:27:57 »
0
Я так понимаю, в этом примере если сила и удача игрока буду по сотне, то и шанс открытия очень сложного замка будет где-то 20%
25% если точно.

Вот если игрок с удачей 40 и силой 40 (как правило - стартовое значение ГГ), то замок более чем "обычный" вообще не сломать.
Если хочешь увеличить шанс открытия, то лучше всего уровень замка поделить на что-нибудь (это просто подбери). cont.GetLockLevel / 1.3 к примеру.

Я уже давно всё забыл, есть ли в ОБСЕ команда на "порчу" или "ломание" оружия, если есть, то можно при успешном ударе вводить износ. Или при открытии нескольких замков ломать оружие.

И ещё, я не помню поведение функции IsPowerAttacking. Она работает весь цикл анимации удара или не весь? Если весь, то желательно ввести флаг-зачёлку на эту функцию: при начале удара идут проверки и флаг в 1, потом проверок нет, пока не закончится анимация и не обнулится флаг.

***************
Совсем забыл добавить в скрипт определение собственности сундука, добавь: if player.IsActorDetected && cont.IsOffLimits
« Последнее редактирование: 06 Октябрь, 2012, 02:59:56 от AleksTirex »
Будьте осторожны в своих желаниях, они могут исполниться!
Награды За огромные знания и желание делиться ими с форумчанами

Оффлайн Svinec

  • *
  • Сообщений: 104
  • Репутация: 0
  • Пол: Мужской
    • Просмотр профиля
Re: Нужна помощь по скриптингу
« Ответ #19 : 13 Октябрь, 2012, 23:58:37 »
0
Написал скрипт, который понижает скорость игрока до нуля как только его запас сил падает ниже 50 единиц. Но все равно персонаж передвигаеться очень шустро. Поэтому задумался, можно ли сделать так - чтобы игра принудительно переводила игрока или НПС на шаг, даже если они бегут, и так до тех пор пока нажата клавиша перемещения? Или есть какой тo другой способ понизить скорость Актеров?
« Последнее редактирование: 14 Октябрь, 2012, 00:41:08 от Svinec »

Теги:
 

Нужна помощь спецов по 3dMax

Автор KhronosРаздел Мастерская 3D

Ответов: 3
Просмотров: 1857
Последний ответ 25 Июнь, 2012, 17:43:03
от montgom
Нужна помощь с моделями

Автор Bleyfds1995Раздел Мастерская 3D

Ответов: 7
Просмотров: 1103
Последний ответ 03 Февраль, 2012, 19:50:23
от Bleyfds1995
Срочно нужна помощь Модмейкеров.

Автор MorviCoolРаздел Проекты под TES 4: Oblivion

Ответов: 10
Просмотров: 1382
Последний ответ 01 Август, 2011, 02:18:39
от Roland
Нужна помощь помоделрованию шмота! Посоветуйте как сд

Автор ShinigammiРаздел Мастерская 3D

Ответов: 19
Просмотров: 1384
Последний ответ 27 Февраль, 2012, 01:08:53
от Майк
Нужна помощь в создании Мобов

Автор AhtamРаздел Мастерская TES IV

Ответов: 9
Просмотров: 1045
Последний ответ 24 Май, 2012, 15:02:24
от Ahtam
Нужна помощь.

Автор nailllainРаздел Мастерская TES V

Ответов: 5
Просмотров: 694
Последний ответ 01 Декабрь, 2012, 16:46:39
от nailllain
Нужна помощь со скриптами.

Автор Crash97iРаздел Конструктор G.E.C.K.

Ответов: 4
Просмотров: 800
Последний ответ 15 Декабрь, 2012, 18:33:25
от Crash97i
Нужна помощь по созданию плагина.

Автор SvinecРаздел Мастерская TES IV

Ответов: 0
Просмотров: 860
Последний ответ 22 Декабрь, 2012, 18:23:30
от Svinec
Нужна помощь по скриптам для новой расы

Автор BianorРаздел Скриптинг под TES IV

Ответов: 122
Просмотров: 5492
Последний ответ 27 Октябрь, 2014, 09:32:24
от Bianor
Помощь новичку

Автор aposРаздел Мастерская 3D

Ответов: 45
Просмотров: 13343
Последний ответ 05 Август, 2008, 21:56:23
от blackadder

Поиск

 
Top
SimplePortal 2.3.5 © 2008-2012, SimplePortal