Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Avadon

Pages: [1]
1
General Discussion / Donations
« on: May 16, 2007, 10:44:20 am »
I've been thinking of donating.  However I have a few requests before I donate.
I'd like to see the financial books become public, it's only fair since PS requires complete ownership over every artistic creation used in PS.
How have previous funds been used?
How were the use of the funds justified?
How much of the funds went to feeding, clothing, or assisting the devs pay bills?
How much money does PS currently have and how is it allocated?

2
Development Deliberation / AI
« on: May 11, 2007, 10:32:07 am »
Who does the AI coding?
I'm assuming it's coded in C++ then converted to assembly/stack code?
Is it hardcoded or in a script file that can be modified without recompiling?

If it looks similar to this, then I would love to join the team and assist you with all your AI needs.  The following code is something I created for a private Lineage 2 server.
Code: [Select]
class smuggler_begin : default_npc
handler 3 13 //  TALKED
variable_begin
"talker"
"myself"
"_choiceN"
"_code"
"_from_choice"
variable_end

push_event //  myself //check karma
push_const 704
add
fetch_i
push_event //  talker
push_const 32
add
fetch_i
push_const 412   //karma
push_const 49   //amt
greater
branch_false L44
L43 //hi
push_event //  myself
push_const 704
add
fetch_i
push_event //  talker
push_const 40
add
fetch_i
S4193. "smuggler_begin001.htm" //hi
push_string S4193
func_call 184680516 //  func[ShowPage]
shift_sp -2
shift_sp -1
jump L45
L44 //need karma
push_event //  myself
push_const 704
add
fetch_i
push_event //  talker
push_const 40
add
fetch_i
S4093. "smuggler_begin002.htm" //need karma
push_string S4093
func_call 184680516 //  func[ShowPage]
shift_sp -2
shift_sp -1
L45
handler_end

handler 4 //  TALK_SELECTED
variable_begin
"fhtml0"
"talker"
"myself"
"_choiceN"
"_code"
"_from_choice"
variable_end

L33330 //Check Level of PC
push_event //  talker
push_const 32
add
fetch_i //  level
push_const 888
add
fetch_i
push_const 39
greater
branch_false L33333 // too low level
//INVENTORY CHECK begin
push_event //  myself
push_const 704
add
fetch_i
push_event //  talker
push_const 40
add
fetch_i
push_const 0
func_call 184680556 //  func[GetInventoryInfo]
shift_sp -2
push_event //  myself
push_const 704
add
fetch_i
push_event //  talker
push_const 40
add
fetch_i
push_const 1
func_call 184680556 //  func[GetInventoryInfo]
shift_sp -2
push_const 0.800000
mul
greater_equal
push_reg_sp
fetch_i
branch_true L128456
push_event //  myself
push_const 704
add
fetch_i
push_event //  talker
push_const 40
add
fetch_i
push_const 2
func_call 184680556 //  func[GetInventoryInfo]
shift_sp -2
push_event //  myself
push_const 704
add
fetch_i
push_event //  talker
push_const 40
add
fetch_i
push_const 3
func_call 184680556 //  func[GetInventoryInfo]
shift_sp -2
push_const 0.800000
mul
greater_equal
or
L128456
branch_false L128458 //jump inventory GOOD
L128457 //inventory BAD
push_event //  myself
push_const 704
add
fetch_i
push_event //  talker
push_const 40
add
fetch_i
push_const 1118
func_call 184680517 //  func[ShowSystemMessage]
shift_sp -2
shift_sp -1
exit_handler
L128458 //inventory GOOD
//INVENTORY CHECK end
L33337 //if pc has quest, then jump to accepted quest html
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
push_const 700 //Smugglers Quest#
func_call 59 //  func[HaveMemo]
shift_sp -2
push_const 1
equal
branch_false L33339
L33338
push_event //  talker
push_const 32
add
fetch_i
S10905. "smuggler_begin008.htm" //quest accepted
push_string S10905
func_call 43 //  func[ShowPage]
shift_sp -2
shift_sp -1
shift_sp 1
jump L33306
L33339
push_event //  _from_choice
push_const 332
add
fetch_i
push_const 0
equal
branch_false L33292
L33291
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
push_const 700 //Smugglers Quest#
func_call 59 //  func[HaveMemo]
shift_sp -2
push_const 0
equal
branch_false L33294
L33293
push_event //  _choiceN
push_const 328
add
push_reg_sp
fetch_i
push_event //  _choiceN
push_const 328
add
fetch_i
push_const 1
add
assign
shift_sp -1
push_event //  _code
push_const 324
add
push_reg_sp
fetch_i
push_const 0
assign
shift_sp -1
shift_sp 1
push_const 0
S10906. "Shadow Smuggler"
push_string S10906
func_call 131 //  func[AddChoice]
shift_sp -2
shift_sp -1
L33294
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
push_const 700 //Smugglers Quest#
func_call 59 //  func[HaveMemo]
shift_sp -2
push_const 1
equal
push_reg_sp
fetch_i
branch_false L33297
L33296
push_event //  _choiceN
push_const 328
add
push_reg_sp
fetch_i
push_event //  _choiceN
push_const 328
add
fetch_i
push_const 1
add
assign
shift_sp -1
push_event //  _code
push_const 324
add
push_reg_sp
fetch_i
push_const 1
assign
shift_sp -1
shift_sp 1
push_const 1
S10907. "Shadow Smuggler"
push_string S10907
func_call 131 //  func[AddChoice]
shift_sp -2
shift_sp -1
L33297
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
push_const 700 //Smugglers Quest#
func_call 59 //  func[HaveMemo]
shift_sp -2
push_const 1
equal
push_reg_sp
fetch_i
branch_false L33300
L33299
push_event //  _choiceN
push_const 328
add
push_reg_sp
fetch_i
push_event //  _choiceN
push_const 328
add
fetch_i
push_const 1
add
assign
shift_sp -1
push_event //  _code
push_const 324
add
push_reg_sp
fetch_i
push_const 2
assign
shift_sp -1
shift_sp 1
push_const 2
S10908. "Shadow Smuggler"
push_string S10908
func_call 131 //  func[AddChoice]
shift_sp -2
shift_sp -1
L33300
push_event //  _choiceN
push_const 328
add
fetch_i
push_const 1
greater
branch_false L33302
L33301
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
push_const 1
func_call 132 //  func[ShowChoicePage]
shift_sp -2
shift_sp -1
exit_handler
L33302
L33292
push_event //  _from_choice
push_const 332
add
fetch_i
push_reg_sp
fetch_i
branch_true L33303
push_event //  _choiceN
push_const 328
add
fetch_i
push_const 1
equal
or
L33303
branch_false L33305
L33304
push_event //  _code
push_const 324
add
fetch_i
push_reg_sp
fetch_i
push_const 0
equal
branch_false L33308
L33307
push_event //  _from_choice
push_const 332
add
fetch_i
push_const 0
equal
push_reg_sp
fetch_i
branch_true L33309
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
push_const 700 //Smugglers Quest#
func_call 59 //  func[HaveMemo]
shift_sp -2
push_const 0
equal
or
L33309
branch_false L33311
L33310
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
func_call 58 //  func[GetMemoCount]
shift_sp -1
push_const 16
less
branch_false L33313
L33312
push_event //  myself
push_const 704
add
fetch_i
push_event //  talker
push_const 40
add
fetch_i
S10909. "smuggler_begin010.htm" //accept quest
push_string S10909
func_call 184680516 //  func[ShowPage]
shift_sp -2
shift_sp -1
jump L33314
L33313
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
S10911. "fullquest.htm"
push_string S10911
func_call 43 //  func[ShowPage]
shift_sp -2
shift_sp -1
L33314
L33311
jump L33306
jump L33315
L33308
push_reg_sp
fetch_i
push_const 1
equal
branch_false L33316
L33315
push_event //  _from_choice
push_const 332
add
fetch_i
push_const 0
equal
push_reg_sp
fetch_i
branch_true L33317
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
push_const 700 //Smugglers Quest#
func_call 59 //  func[HaveMemo]
shift_sp -2
push_const 1
equal
push_reg_sp
fetch_i
L33317
jump L33306
L33316
push_reg_sp
fetch_i
push_const 2
equal
branch_false L33322
L33321
push_event //  _from_choice
push_const 332
add
fetch_i
push_const 0
equal
push_reg_sp
fetch_i
branch_true L33323
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
push_const 700 //Smugglers Quest#
func_call 59 //  func[HaveMemo]
shift_sp -2
push_const 1
equal
push_reg_sp
fetch_i
L33323
jump L33306
jump L33329
L33333
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
S10912. "smuggler_begin009.htm" //level low
push_string S10912
func_call 43 //  func[ShowPage]
shift_sp -2
shift_sp -1
L33322
L33329
L33306
shift_sp -1
exit_handler
L33305
call_super
handler_end

handler 31 //  QUEST_ACCEPTED
variable_begin
"quest_id"
"talker"
"myself"
"_choiceN"
"_code"
"_from_choice"
variable_end

push_event //  quest_id
push_const 96
add
fetch_i
push_const 700 //Smugglers Quest#
equal
branch_false L33331
L33332
shift_sp 1
func_call 23 //  func[GetCurrentTick]
push_event //  talker
push_const 32
add
fetch_i //  quest_last_reward_time
push_const 644
add
fetch_i
sub
push_const 1
greater
branch_false L33335
L33334
push_event //  talker
push_const 32
add
fetch_i //  quest_last_reward_time
push_const 644
add
push_reg_sp
fetch_i
shift_sp 1
func_call 23 //  func[GetCurrentTick]
assign
shift_sp -1
shift_sp 1
L33340
push_event //  talker
push_const 32
add
fetch_i
S10913. "smuggler_begin008.htm" //quest accepted
push_string S10913
func_call 43 //  func[ShowPage]
shift_sp -2
shift_sp -1
shift_sp 1
L33341
push_event //  talker
push_const 32
add
fetch_i
push_const 700 //Smugglers Quest#
func_call 60 //  func[SetMemo]
shift_sp -2
shift_sp -1
push_event //  myself
push_const 704
add
fetch_i
push_const 1
push_event //  talker
push_const 40
add
fetch_i
push_const 700
func_call 184746363 //  func[AddLog]
shift_sp -3
shift_sp -1
push_event //  myself
push_const 704
add
fetch_i
push_event //  talker
push_const 40
add
fetch_i
push_const 700
push_const 1
func_call 184746087 //  func[SetFlagJournal]
shift_sp -3
shift_sp -1
push_event //  myself
push_const 704
add
fetch_i
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
S10914. "ItemSound.quest_accept"
push_string S10914
func_call 173 //  func[SoundEffect]
shift_sp -2
shift_sp -1
shift_sp 1
L33342
L33343
shift_sp 1
push_event //  talker
push_const 32
add
fetch_i
push_const 18320
push_const 1
func_call 77 //  func[GiveItem1]
shift_sp -3
shift_sp -1
L33335
L33336
L33331
exit_handler
handler_end

3
I feel the following idea would greatly benefit us by bringing a new aspect and sense of realism into the game.  This should not be hard to implement.  Most of the coding would be in the AI of guard class NPCs.  A few new checks would need to be added to the server code.

Server determines type of fight, based on challenge code, if fight is within sight of an NPC or reported by player alerting guards manually, otherwise fight is not reported.
Server determines distance from fight to guards, utilizing x, y, z coordinate system already in game.  (this is the easy way, or this would generate a path the guards would take and then calculate that distance)
Guards despawn or start running. (Running would be the prefered method)
If despawned: Server waits period of time based off distance and type of fight.
If guards run: Server waits period of time based off distance and type of fight, then sends the guards running towards the fight.  (delay to simulate the amount of time it takes for a npc or player to tell the guards)
Guards spawn or arrive near fight and break up fight. If the fight began due to both players wanting or deciding to fight, both get punished.  If fight began due to provocation, skill used that if failed auto challenges person, then the person responsible for starting the fight gets punished.  IE: Failing to pickpocket auto challenges the person you tried to steal from. 

Types of pickpocket outcomes:
Item Stolen, no notification. 
Item Stolen, with notification of player and guards. 
Item Stolen, with notification and thief auto challenges person, person accepts or declines, if accepted guards summoned, if declined guards notified.
Theft Failed, no notification.
Theft Failed, with notification of player and guards. 
Theft Failed, with notification and thief auto challenges person, person accepts or declines, if accepted guards summoned, if declined guards notified.

If provoker goes near Notified guards, then they punish provoker.

Pages: [1]