Для входа на форум нажмите здесь
Подарки для новичков
Автор темы: Кланикус
Дата создания:
Old 16.07.2015, 15:36
Re: Подарки для новичков
Originally Posted by реостат:
притом для всякого скрипта нужен интерпретатор.
Ну нельзя же быть столь тупым? У Л2 есть механизм скриптовых эвентов, на подобие плагинов для браузера. Они не трогая и не меняя исходный код клиента и сервера позволяют минимальными силами расширить функционал и так же легко убрать этот функционал. Тут мы это называем скриптом, но это не меняет сути дела. Это уже готовый отработанный механизм, не требующий внесения новых сущностей в базу и бизнес логику. Это удобно и практично. При чём тут интерпретаторы? Для этой цели не обязательно вводить некий псевдоязык и его интерпретатор (хотя и такие варианты существуют и возможны, я не знаю каким вариантом пользуются в л2). Это всего лишь механизм расширения функционала. Точка. Допёрло? Или надо ещё какими-то путями пояснять?
Чем же это отличается от обновления дроп листа и логики выдачи предметов? Обновлением, мать его, дроп листа и механизма выдачи предметов. В коде существует механизм, который выдаёт с каждого моба тебе какой-то дроп из допустимого списка и по особому механизму выдаёт тебе адену. Это уже заложено в коде. Изначально.
Почему бы не внести сюда ещё и код с буковками? А потому что мы не хотим МЕНЯТЬ исходный код и механизм дропа и добавлять туда что-то типа вызова метода "проверь шанс можно ли выбить фигню" и "выпади херня". Мы хотим добавить функционал независимый и легко удаляемый. По текущему механизму только адена имеет свой особый механизм работы и спойл. А ты предлагаешь для каждого эвента менять этот код и потом убирать. Зачем? Не проблема добавить новый итем. Проблема добавить итем с ОСОБЫМ поведением, которое увы необходимо для эвентов.

Dreadnought фришардер 78+ (возможно он ещё там!)
Warrior 28+ L2 Classic Maphr (очевидно будущий ВЛ)
HotSpot - Elven Oracle 32+ L2 Classic Gran Kain
I need a miracle and not someone's charity.
Old 16.07.2015, 15:55
Re: Подарки для новичков
Originally Posted by Suh:
Ну нельзя же быть столь тупым? У Л2 есть механизм скриптовых эвентов, на подобие плагинов для браузера. Они не трогая и не меняя исходный код клиента и сервера позволяют минимальными силами расширить функционал и так же легко убрать этот функционал. Тут мы это называем скриптом, но это не меняет сути дела. Это уже готовый отработанный механизм, не требующий внесения новых сущностей в базу и бизнес логику. Это удобно и практично. При чём тут интерпретаторы? Для этой цели не обязательно вводить некий псевдоязык и его интерпретатор (хотя и такие варианты существуют и возможны, я не знаю каким вариантом пользуются в л2). Это всего лишь механизм расширения функционала. Точка. Допёрло? Или надо ещё какими-то путями пояснять?
Originally Posted by реостат:
и вообще,сдается мне,тут скрипт является для многих какой-то всемогущей таинственной сущностью,без которой ничего бы не получилось.скрипт-тот же самый набор команд что и другие подпрограммы,он так и называется по-русски,сценарий.ты тупо подключаешь модуль.все.

Originally Posted by Suh:
Почему бы не внести сюда ещё и код с буковками? А потому что мы не хотим МЕНЯТЬ исходный код и механизм дропа и добавлять туда что-то типа вызова метода "проверь шанс можно ли выбить фигню" и "выпади херня".
зачем менять?механизм-он и есть механизм.ты его расширяешь,добавляя всего лишь расчет буковки.или для этого нужно очень сильное колдунство?не поймешь тебя...в одном месте ты элегантно,как вы выражаетесь,расширяешь функционал надстройками из скриптов,но никак не можешь натравить уже существующий метод на еще одно поле.ах,ну да,это же не элегантно!
Originally Posted by Suh:
А ты предлагаешь для каждого эвента менять этот код и потом убирать.
где такое предлагал?я предлагал ввести поле "квест-итем" и обрабатывать события по уже отлаженному механизму.в чем сложность?
Originally Posted by Suh:
Проблема добавить итем с ОСОБЫМ поведением, которое увы необходимо для эвентов.
не проблема.натрави механизм адены на итем.и я до сих пор не увидел ответа,для чего нужно ОСОБОЕ поведение.

а вообще второй курс максимум.и даже если ты получил диплом,то это означает,что 3 курса были прогулены.
Old 16.07.2015, 16:00
Re: Подарки для новичков
Originally Posted by реостат:
не вижу никаких проблем добавить в дроп-лист итем "буковка".
Если конечно не брать в расчет лишние операции с БД и процедур для обработки этих букв вместо написания одной единственной процедуры-события "при смерти моба"


Originally Posted by реостат:
или все же шанс и кол-во адены расчитывается в другом месте
Кол-во записано в виде разброса, а шанс статичный. В случае с буковками, если они дропаются как писал мист, шанс является динамическим.

Объясню на примере фабрики где я работаю - для того чтобы дать возможность кому то пользоваться новым отчетом, который только что сделали, мы загружаем его как внешний(аналогия скрипта), а не зашиваем его в конфу с последующим рестартом всей базы и выкидыванием 300 работающих человек из нее. Потому что даже если так сделать один раз, то при любом изменении отчета перезагружать базу придется снова.
Old 16.07.2015, 16:04
Re: Подарки для новичков
Originally Posted by реостат:
где такое предлагал?я предлагал ввести поле "квест-итем" и обрабатывать события по уже отлаженному механизму.в чем сложность?
похоже, что и квест итемы прописаны в скриптах
кусочек с ai.obj:
Code:
class 0 monstereye_searcher : wizard_pa_ddmagic2
handler 9 669	//  MY_DYING
	variable_begin
		"always_list"
		"c1"
		"code_info"
		"i0"
		"i9"
		"last_attacker"
		"lparty"
		"member"
		"random1_list"
		"target"
		"myself"
		"_choiceN"
		"_code"
		"_from_choice"
	variable_end

	push_event	//  always_list
	push_const 760			//always_list
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  gg
	push_const 704			//AllocCodeInfoList
	add
	fetch_i			//AllocCodeInfoList
	func_call 268435466	//  func[AllocCodeInfoList]
	assign
	shift_sp -1
	push_event	//  random1_list
	push_const 752			//random1_list
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  gg
	push_const 704			//AllocCodeInfoList
	add
	fetch_i			//AllocCodeInfoList
	func_call 268435466	//  func[AllocCodeInfoList]
	assign
	shift_sp -1
	push_event	//  target
	push_const 96			//target
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  last_attacker
	push_const 728			//last_attacker
	add
	fetch_i
	assign
	shift_sp -1
	push_event	//  always_list
	push_const 760			//always_list
	add
	fetch_i			//Fetch Base pointer
	push_const 0			//unary->INTEGER_CONST
	push_event	//  target
	push_const 96			//target
	add
	fetch_i
	func_call 318898176	//  func[SetInfo]
	shift_sp -2
	shift_sp -1
L150047
	push_event	//  gg
	push_const 704			//IsNull
	add
	fetch_i			//IsNull
	push_event	//  code_info
	push_const 768			//code_info
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  always_list
	push_const 760			//always_list
	add
	fetch_i			//Fetch pointer
	func_call 318767105	//  func[Next]
	assign
	fetch_i
	func_call 268501009	//  func[IsNull]
	shift_sp -1
	push_const 0			//unary->INTEGER_CONST
	equal
	branch_false L150048
	push_event	//  code_info
	push_const 768			//code_info
	add
	fetch_i			//code
	push_const 52			//code
	add
	fetch_i4
	push_reg_sp
	fetch_i			//select_case compare
	push_const 0			//select_case
	equal
	branch_false L150051
L150050
	push_event	//  myself
	push_const 784			//SetCurrentQuestID
	add
	fetch_i			//SetCurrentQuestID
	push_const 330			//unary->INTEGER_CONST
	func_call 234946666	//  func[SetCurrentQuestID]
	shift_sp -1
	shift_sp -1
	push_event	//  target
	push_const 96			//target
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  code_info
	push_const 768			//code_info
	add
	fetch_i			//Fetch pointer
	func_call 301989889	//  func[RandomSelectOne]
	assign
	shift_sp -1
	push_event	//  gg
	push_const 704			//IsNull
	add
	fetch_i			//IsNull
	push_event	//  target
	push_const 96			//target
	add
	fetch_i
	func_call 268501009	//  func[IsNull]
	shift_sp -1
	push_const 0			//unary->INTEGER_CONST
	equal
	push_reg_sp
	fetch_i			//and list
	branch_false L150052
	push_event	//  myself
	push_const 784			//DistFromMe
	add
	fetch_i			//DistFromMe
	push_event	//  target
	push_const 96			//target
	add
	fetch_i
	func_call 234946649	//  func[DistFromMe]
	shift_sp -1
	push_const 1500			//unary->INTEGER_CONST
	less_equal
	and
L150052
	branch_false L150054
L150053
	push_event	//  c1
	push_const 424			//c1
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  myself
	push_const 784			//GetLastAttacker
	add
	fetch_i			//GetLastAttacker
	func_call 234881159	//  func[GetLastAttacker]
	assign
	shift_sp -1
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i			//master
	push_const 2760			//master
	add
	fetch_i
	branch_false L150056
L150055
	push_event	//  c1
	push_const 424			//c1
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i			//master
	push_const 2760			//master
	add
	fetch_i
	assign
	shift_sp -1
L150056
	push_event	//  gg
	push_const 704			//HaveMemo
	add
	fetch_i			//HaveMemo
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 330			//unary->INTEGER_CONST
	func_call 268566578	//  func[HaveMemo]
	shift_sp -2
	push_const 1			//unary->INTEGER_CONST
	equal
	push_reg_sp
	fetch_i			//and list
	branch_false L150057
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1420			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	push_const 1			//unary->INTEGER_CONST
	equal
	and
	push_reg_sp
	fetch_i			//and list
	branch_false L150057
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1424			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1425			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	add
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1429			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	add
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1430			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	add
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1433			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	add
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1437			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	add
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1438			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	add
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1441			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	add
	push_const 5			//unary->INTEGER_CONST
	less
	and
	push_reg_sp
	fetch_i			//and list
	branch_false L150057
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1439			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	push_const 1			//unary->INTEGER_CONST
	equal
	and
	push_reg_sp
	fetch_i			//and list
	branch_false L150057
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1440			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	push_const 30			//unary->INTEGER_CONST
	less
	and
L150057
	branch_false L150059
L150058
	push_event	//  i0
	push_const 280			//i0
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  gg
	push_const 704			//Rand
	add
	fetch_i			//Rand
	push_const 100			//unary->INTEGER_CONST
	func_call 268500997	//  func[Rand]
	shift_sp -1
	assign
	shift_sp -1
	push_event	//  i0
	push_const 280			//i0
	add
	fetch_i
	push_const 77			//unary->INTEGER_CONST
	less
	branch_false L150061
L150060
	push_event	//  myself
	push_const 784			//GetCurrentTick
	add
	fetch_i			//GetCurrentTick
	func_call 234881059	//  func[GetCurrentTick]
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i			//quest_last_reward_time
	push_const 1620			//quest_last_reward_time
	add
	fetch_i4
	sub
	push_const 1			//unary->INTEGER_CONST
	greater
	branch_false L150063
L150062
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i			//quest_last_reward_time
	push_const 1620			//quest_last_reward_time
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  myself
	push_const 784			//GetCurrentTick
	add
	fetch_i			//GetCurrentTick
	func_call 234881059	//  func[GetCurrentTick]
	assign4
	shift_sp -1
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1440			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	push_const 29			//unary->INTEGER_CONST
	equal
	branch_false L150065
L150064
	push_event	//  myself
	push_const 784			//GiveItem1
	add
	fetch_i			//GiveItem1
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1440			//unary->INTEGER_CONST
	push_const 1			//unary->INTEGER_CONST
	func_call 235077762	//  func[GiveItem1]
	shift_sp -3
	shift_sp -1
	push_event	//  myself
	push_const 784			//SoundEffect
	add
	fetch_i			//SoundEffect
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
S19122.	"ItemSound.quest_middle"
	push_string S19122
	func_call 235012344	//  func[SoundEffect]
	shift_sp -2
	shift_sp -1
	jump L150066
L150065
	push_event	//  myself
	push_const 784			//GiveItem1
	add
	fetch_i			//GiveItem1
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1440			//unary->INTEGER_CONST
	push_const 2			//unary->INTEGER_CONST
	func_call 235077762	//  func[GiveItem1]
	shift_sp -3
	shift_sp -1
	push_event	//  myself
	push_const 784			//SoundEffect
	add
	fetch_i			//SoundEffect
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
S19123.	"ItemSound.quest_itemget"
	push_string S19123
	func_call 235012344	//  func[SoundEffect]
	shift_sp -2
	shift_sp -1
L150066
L150063
	jump L150067
L150061
	push_event	//  i0
	push_const 280			//i0
	add
	fetch_i
	push_const 97			//unary->INTEGER_CONST
	less
	branch_false L150069
L150068
	push_event	//  myself
	push_const 784			//GetCurrentTick
	add
	fetch_i			//GetCurrentTick
	func_call 234881059	//  func[GetCurrentTick]
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i			//quest_last_reward_time
	push_const 1620			//quest_last_reward_time
	add
	fetch_i4
	sub
	push_const 1			//unary->INTEGER_CONST
	greater
	branch_false L150071
L150070
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i			//quest_last_reward_time
	push_const 1620			//quest_last_reward_time
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  myself
	push_const 784			//GetCurrentTick
	add
	fetch_i			//GetCurrentTick
	func_call 234881059	//  func[GetCurrentTick]
	assign4
	shift_sp -1
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1440			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	push_const 28			//unary->INTEGER_CONST
	equal
	branch_false L150073
L150072
	push_event	//  myself
	push_const 784			//GiveItem1
	add
	fetch_i			//GiveItem1
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1440			//unary->INTEGER_CONST
	push_const 2			//unary->INTEGER_CONST
	func_call 235077762	//  func[GiveItem1]
	shift_sp -3
	shift_sp -1
	push_event	//  myself
	push_const 784			//SoundEffect
	add
	fetch_i			//SoundEffect
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
S19124.	"ItemSound.quest_middle"
	push_string S19124
	func_call 235012344	//  func[SoundEffect]
	shift_sp -2
	shift_sp -1
	jump L150074
L150073
	push_event	//  gg
	push_const 704			//OwnItemCount
	add
	fetch_i			//OwnItemCount
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1440			//unary->INTEGER_CONST
	func_call 268566576	//  func[OwnItemCount]
	shift_sp -2
	push_const 29			//unary->INTEGER_CONST
	equal
	branch_false L150076
L150075
	push_event	//  myself
	push_const 784			//GiveItem1
	add
	fetch_i			//GiveItem1
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1440			//unary->INTEGER_CONST
	push_const 1			//unary->INTEGER_CONST
	func_call 235077762	//  func[GiveItem1]
	shift_sp -3
	shift_sp -1
	push_event	//  myself
	push_const 784			//SoundEffect
	add
	fetch_i			//SoundEffect
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
S19125.	"ItemSound.quest_middle"
	push_string S19125
	func_call 235012344	//  func[SoundEffect]
	shift_sp -2
	shift_sp -1
	jump L150077
L150076
	push_event	//  myself
	push_const 784			//GiveItem1
	add
	fetch_i			//GiveItem1
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
	push_const 1440			//unary->INTEGER_CONST
	push_const 3			//unary->INTEGER_CONST
	func_call 235077762	//  func[GiveItem1]
	shift_sp -3
	shift_sp -1
	push_event	//  myself
	push_const 784			//SoundEffect
	add
	fetch_i			//SoundEffect
	push_event	//  c1
	push_const 424			//c1
	add
	fetch_i
S19126.	"ItemSound.quest_itemget"
	push_string S19126
	func_call 235012344	//  func[SoundEffect]
	shift_sp -2
	shift_sp -1
L150077
L150074
L150071
L150069
L150067
L150059
L150054
	jump L150049
	jump L150078
L150051
L150078
L150049
	shift_sp -1
	jump L150047
L150048
	push_event	//  code_info
	push_const 768			//code_info
	add
	push_reg_sp
	fetch_i			//expr =
	push_event	//  random1_list
	push_const 752			//random1_list
	add
	fetch_i			//Fetch pointer
	func_call 318767106	//  func[RandomSelectOne]
	assign
	shift_sp -1
	push_event	//  gg
	push_const 704			//IsNull
	add
	fetch_i			//IsNull
	push_event	//  code_info
	push_const 768			//code_info
	add
	fetch_i
	func_call 268501009	//  func[IsNull]
	shift_sp -1
	push_const 0			//unary->INTEGER_CONST
	equal
	branch_false L150080
L150079
	push_event	//  code_info
	push_const 768			//code_info
	add
	fetch_i			//code
	push_const 52			//code
	add
	fetch_i4
L150082
L150081
	shift_sp -1
L150080
	call_super
handler_end

class_end

Originally Posted by евгений11:
мне только 14, но в свои 8 я гнул атебальд =(
Old 16.07.2015, 16:11
Re: Подарки для новичков
Originally Posted by XDominator:
Если конечно не брать в расчет лишние операции с БД и процедур для обработки этих букв вместо написания одной единственной процедуры-события "при смерти моба"
зачем вообще нужны дроп-листы,если можно написать единственную процедуру "при смерти моба"?
Originally Posted by XDominator:
Потому что даже если так сделать один раз, то при любом изменении отчета перезагружать базу придется снова.
как бы ивенты всегда сопровождаются перезагрузкой сервера.

Originally Posted by XDominator:
Кол-во записано в виде разброса
поподробней,плиз.как узнать конкретное значение?потому что ответ прямо повлияет на следующий вопрос
Originally Posted by XDominator:
а шанс статичный. В случае с буковками, если они дропаются как писал мист, шанс является динамическим.
что мешает сделать шанс динамичным,как и в случае с аденой.написать в виде разброса,например.
Old 16.07.2015, 16:12
Re: Подарки для новичков
Originally Posted by реостат:
а вообще второй курс максимум.и даже если ты получил диплом,то это означает,что 3 курса были прогулены.
Видимо третьекурсник закукарекал Мог бы так откровенно-то не палиться. 6 лет работаю программистом. Такие дела.
Originally Posted by реостат:
натрави механизм адены на итем
О мой скотче. Ну зачем? Логика работы выпадения адены - > определить выпадет или нет. Если да, то взять случайное значение между адена.мин и адена.макс. И как это будет работать с буковками? Как этот механизм будет выбирать какую буковку выбить без допиливания в него костылей?

Originally Posted by реостат:
подпрограммы
Originally Posted by реостат:
сценарий.ты тупо подключаешь модуль.все.
Это у тебя в лабах по дельфи так) Да и словечки характерные, как у твоего 70 летнего препода.

Добавить новое поле в базу => изменить модель данных => добавить дополнительную логику в существующий движок. Оттестировать всё это. Ну вот зачем? Для того чтобы пару новых плагинов на файрфокс поставить, тоже будем добавлять новые либы или менять его исходники, пересобирать его и выпускать новую версию? Неужели так сложно понять архитектурную разницу?
Здесь и далее для упоротых, все эти эвенты сделаны на основе механизма запуска скриптов на различные игровые события, не затрагивая исходный движок, а лишь дополняя его. Хотя я не знаю сколько раз нужно привести пример с плагинами, чтобы неуч понял.

Dreadnought фришардер 78+ (возможно он ещё там!)
Warrior 28+ L2 Classic Maphr (очевидно будущий ВЛ)
HotSpot - Elven Oracle 32+ L2 Classic Gran Kain
I need a miracle and not someone's charity.
Old 16.07.2015, 16:25
Re: Подарки для новичков
Originally Posted by Zergatul:
похоже, что и квест итемы прописаны в скриптах
кусочек с ai.obj:
спасибо.все как я и говорил,не какой-то там отдельный "внешний ивентовый скрипт",а полноценный список дропа.все итемы указаны.

Добавлено через 6 минут
Originally Posted by Suh:
6 лет работаю программистом.
как грится,возраст еще ни о чем не говорит.если человек дожил до 90 лет,то это не означает,что он стал мудрецом.он может быть просто старым дураком.
Originally Posted by Suh:
О мой скотче. Ну зачем? Логика работы выпадения адены - > определить выпадет или нет. Если да, то взять случайное значение между адена.мин и адена.макс. И как это будет работать с буковками? Как этот механизм будет выбирать какую буковку выбить без допиливания в него костылей?
этим вопросом все сказано.
Originally Posted by Suh:
Добавить новое поле в базу => изменить модель данных => добавить дополнительную логику в существующий движок
ты точно не имеешь понятия о предмете.если у тебя при добавлении поля в бд меняется логика,то я даже не знаю о чем тут еще говорить.

Добавлено через 2 минуты
Originally Posted by Suh:
Да и словечки характерные, как у твоего 70 летнего препода.
да не.ларчик просто открывается.при загугле слова "скрипт" выдается результат в википедии на страницу "Сценарный язык".чтобы даже маленький мальчик смог понять о чем речь.но ты не маленький мальчик,я уже понял.
Last edited by реостат_renamed_1138173_19012025; 16.07.2015 at 16:25. Reason: Добавлено сообщение
Old 16.07.2015, 16:27
ToxicCherry's Avatar
Royal Guards of Rinka
Join Date:
29.01.2009
Космос
Re: Подарки для новичков
Originally Posted by Nevada:
это уже не ла2...
Да я в курсе, но что-то даже читать о нововведениях не хочется ... сижу на уютненькой фришечке GF x4 и не знаю печали

Old 16.07.2015, 16:28
Re: Подарки для новичков
Originally Posted by реостат:
ты точно не имеешь понятия о предмете.если у тебя при добавлении поля в бд меняется логика,то я даже не знаю о чем тут еще говорить.
DAL, BLL, говорит о чём нибудь?) Учись иди уже.

Dreadnought фришардер 78+ (возможно он ещё там!)
Warrior 28+ L2 Classic Maphr (очевидно будущий ВЛ)
HotSpot - Elven Oracle 32+ L2 Classic Gran Kain
I need a miracle and not someone's charity.
Old 16.07.2015, 16:38
Re: Подарки для новичков
Originally Posted by Suh:
DAL, BLL, говорит о чём нибудь?)
какая-то антинаучная куйня.
Old 16.07.2015, 16:50
Re: Подарки для новичков
Originally Posted by реостат:
какая-то антинаучная куйня.
лоль

Originally Posted by евгений11:
мне только 14, но в свои 8 я гнул атебальд =(
Old 16.07.2015, 16:53
Re: Подарки для новичков
Originally Posted by Zergatul:
лоль
согласен!тут мне рассказывают о каких-то сикуэлях,хотя,как видно выше,все умещается в один файл.притом для каждого моба написаны все те же строки.так устроены "базы данных" игрушек.
Old 16.07.2015, 17:08
Re: Подарки для новичков
ну там иногда сложная логика, некоторые квест итемы падают вместе, некоторые нет. какие-то вероятности непонятные. в скрипте выше есть какой-то quest_last_reward_time, неужели шанс зависит от того, как давно тебе выпал предыдущий айтем?

Originally Posted by евгений11:
мне только 14, но в свои 8 я гнул атебальд =(
Old 16.07.2015, 17:28
Re: Подарки для новичков
Originally Posted by Zergatul:
quest_last_reward_time
лень искать,но это скорее время последней сдачи квеста,а не дропа итема.у вас же вроде ограниченное кол-во повторяемых квестов и сброс в определенное время.вот и стоит это поле.
Old 16.07.2015, 18:34
Junin's Avatar
Мастер
Join Date:
15.09.2005
GoHa.Ru - Старожил Лекарь
Re: Подарки для новичков
Эвенты имеют свойство повторяться. мобы меняются, добавляются.
Вы и правда считаете, что исходный код постоянно переписывается?
Браво.
Old 16.07.2015, 20:03
Re: Подарки для новичков
Originally Posted by MrDarkAngel:
Вы и правда считаете, что исходный код постоянно переписывается?
ради смеха,после обновления посмотри какие файлы изменились.
Old 16.07.2015, 23:10
Re: Подарки для новичков
Originally Posted by MrDarkAngel:
Эвенты имеют свойство повторяться. мобы меняются, добавляются.
Вы и правда считаете, что исходный код постоянно переписывается?
Браво.
за 10 лет там такое наслоение кода... как движок это все еще выдерживает...
но к сожалению щас идет тенденция либо удаления контента по причинам "нагрузки на сервер", либо его оптимизация(упрощение). Примеры - удаление манора, системы 7 печатей, статистики, тв, квест-кампаний, зональных квестов; упрощение рыбалки, грядущее упрощение системы СА, объединение ряда инстов в один с рандомным попаданием в один из объединенных инстов(пример грядущее объединение Хрустального Лабиринта).


Now playing:
Rift 4.0: Starfall Prophecy; The Elder Scrolls Online, Blade'n'Soul
Old 16.07.2015, 23:33
Кланикус's Avatar
Император земли
Join Date:
24.11.2014
Берсеркер
Re: Подарки для новичков
Originally Posted by mistlight:
за 10 лет там такое наслоение кода... как движок это все еще выдерживает...
но к сожалению щас идет тенденция либо удаления контента по причинам "нагрузки на сервер", либо его оптимизация(упрощение). Примеры - удаление манора, системы 7 печатей, статистики, тв, квест-кампаний, зональных квестов; упрощение рыбалки, грядущее упрощение системы СА, объединение ряда инстов в один с рандомным попаданием в один из объединенных инстов(пример грядущее объединение Хрустального Лабиринта).
Еще какую то хрень намутили с прогрузкой персонажей, можно в 800 ренжа стоять от "места" прогрузки и не видеть бегущий на тебя пак (пример всякие мосты в ев, и коридоры между локациями)
Ощущение что всю игру разбили на зоны прогрузки а не просто относительно твоего персонажа как раньше, есть по этой штуке информация какая нибудь?

Old 17.07.2015, 07:33
Junin's Avatar
Мастер
Join Date:
15.09.2005
GoHa.Ru - Старожил Лекарь
Originally Posted by mistlight:
за 10 лет там такое наслоение кода... как движок это все еще выдерживает...
но к сожалению щас идет тенденция либо удаления контента по причинам "нагрузки на сервер", либо его оптимизация(упрощение). Примеры - удаление манора, системы 7 печатей, статистики, тв, квест-кампаний, зональных квестов; упрощение рыбалки, грядущее упрощение системы СА, объединение ряда инстов в один с рандомным попаданием в один из объединенных инстов(пример грядущее объединение Хрустального Лабиринта).
Я имел ввиду именно дроп эвент предметов
Old 17.07.2015, 09:11
Re: Подарки для новичков
Вчера собрал парик шт. 10 мобов убил масухой , вывалилось 6 букв О.
Походу там на каждую букву отдельные условия.
Old 17.07.2015, 10:04
Кланикус's Avatar
Император земли
Join Date:
24.11.2014
Берсеркер
Re: Подарки для новичков
Originally Posted by Lionchik:
Вчера собрал парик шт. 10 мобов убил масухой , вывалилось 6 букв О.
Походу там на каждую букву отдельные условия.
Регулярно водили парики, все буквы дропаются разные, тебе повезло не более

Old 17.07.2015, 10:45
Re: Подарки для новичков
Originally Posted by Lionchik:
вывалилось 6 букв О.
Можешь открыть 2 "ООО"
Old 17.07.2015, 11:50
Hugo Zuss's Avatar
Император Чижовки
Join Date:
20.02.2012
GoHa.Ru - 10 лет Веселый дембель
Re: Подарки для новичков
ну чо там хардкор этот ваш? теперь малиновый?

Old 17.07.2015, 12:18
Re: Подарки для новичков
Originally Posted by Lionchik:
Походу там на каждую букву отдельные условия.
Отдельное кол-во на каждую букву для "вброса" на сервер.
Old 17.07.2015, 12:35
Re: Подарки для новичков
Originally Posted by Lionchik:
Вчера собрал парик шт. 10 мобов убил масухой , вывалилось 6 букв О.
Походу там на каждую букву отдельные условия.
вчера ударил моба, нанес критом ровно 2000 урона. походу там на каждый урон отдельные условия

Originally Posted by евгений11:
мне только 14, но в свои 8 я гнул атебальд =(
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off