Page 1 of 1

Help with code for Custom Buffer

Posted: Tue Oct 27, 2009 8:00 pm
by l2chrono
L2J Revision 3662:
L2JDP Revision 6757:

I need to create a NPC buffer... with a custom Code... every time he buffs a player... the duration of the buff should be 3 hours... but I want to do this without changing the time of the skills in configuration or in Xml...
for example if a player use Improved condition ... he'll have 40 minutes of buff... if he buy the buff from the NPC will have 3 Hours

I got an Idea but I do not know what code to use :roll:

Code: Select all

if event == "1":		st.takeItems(ADENA_ID,10)		SkillTable.getInstance().getInfo(1204,2).getEffects(st.getPlayer(),st.getPlayer()) [b]//Here i neded to change the Buff duration[/b]		return "1.htm"				st.setState(COMPLETED)

if someone can post a list of the core codes would help a lot :wink:
if someone tells me what code to use I would be grateful :D

PS: Sorry for bad English... i'm finishing the course :P

Re: Help with code for Custom Buffer

Posted: Tue Oct 27, 2009 9:13 pm
by Tan
I think there is no other way then just change it by :
Chracter.Proparites:
EnableModifySkillDuration = true
# Skill duration list
# Format: skillid,newtime;skillid2,newtime2...
# Example:
# This enable 1h(3600) duration for songs, the "\"indicates new line,
# and is only set for formating purposes.
# SkillDurationList = 264,3600;265,3600;266,3600;267,3600;268,3600;\
# 269,3600;270,3600;304,3600;305,1200;306,3600;308,3600;349,3600;\
# 363,3600;364,3600
SkillDurationList = here you write id of these buffs you have in the NPC buffer

or trough editing XML
{by using the program on attach will be easier}

Re: Help with code for Custom Buffer

Posted: Tue Oct 27, 2009 9:59 pm
by janiii
you have to use 2 different skills if you want to have 2 different skill durations. you can check the admin buffs and use those skills for special buffs with different duration.

Re: Help with code for Custom Buffer

Posted: Wed Oct 28, 2009 9:18 am
by l2chrono
Thanks for help ^^

Re: Help with code for Custom Buffer

Posted: Thu Nov 05, 2009 12:12 pm
by lakshman
can someone please help make this one work:

Code: Select all

#Cancellation			if event == "90":				st.takeItems(ADENA_ID,1000)				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4094,12),False,False)				st.getPlayer().stopAllEffects())				return "6.htm"				st.setState(COMPLETED)
its for my custom buffer...
tnx!!

Re: Help with code for Custom Buffer

Posted: Thu Nov 05, 2009 12:26 pm
by janiii
what is not working on that?

Re: Help with code for Custom Buffer

Posted: Thu Nov 05, 2009 12:33 pm
by lakshman
there is an error when loading server with this line
st.getPlayer().stopAllEffects())

....

and when i want to use fighter buffs i only get prohpet/orc buffs but not song and dances

Code: Select all

#Fighter Buffs			if event == "80":				st.takeItems(ADENA_ID,1000000)				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4355,3),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4353,6),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4360,3),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4359,3),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4357,2),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4350,4),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4352,2),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4347,6),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1388,3),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4358,3),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4354,4),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(271,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())   				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(274,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(275,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(264,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(268,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(267,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(363,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(304,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(269,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp()) 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(270,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(364,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(349,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                 				st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1363,1),False,False)				st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp())                                                                                             				return "6.htm"				st.setState(COMPLETED) 
any ideas?

Re: Help with code for Custom Buffer

Posted: Thu Nov 05, 2009 12:36 pm
by janiii
lakshman wrote:there is an error when loading server with this line
st.getPlayer().stopAllEffects())
what error is on that line? write the error message from server! just give full info about the error and then we will be able to help you!

Re: Help with code for Custom Buffer

Posted: Thu Nov 05, 2009 1:03 pm
by wan
lakshman wrote:there is an error when loading server with this line
st.getPlayer().stopAllEffects())

any ideas?
And this bracket is necessary in the end?

Re: Help with code for Custom Buffer

Posted: Thu Nov 05, 2009 1:10 pm
by _DS_
Never use stopAllEffects(), players will use it for cheating.

Re: Help with code for Custom Buffer

Posted: Thu Nov 05, 2009 1:14 pm
by lakshman

Code: Select all

Error on: ..../gameserver/data/scripts/custom/70006_NPCBuffer/__init__.py.error.logLine: -1 - Column: -1 Traceback (innermost last):  (no code object) at line 0SyntaxError: ('invalid syntax', ('__init__.py', 655, 64, '\t\t\t\tst.getPlayer().stopAllEffects())'))
and when i use preset for mage or fighter buffs there is no error written/seen on server it just doesnt do anything, only gives prophet/orc buffs....

Re: Help with code for Custom Buffer

Posted: Thu Nov 05, 2009 1:16 pm
by lakshman

Code: Select all

#Cancellation			if event == "70":				st.takeItems				SkillTable.getInstance().getInfo(4094,12).getEffects(st.getPlayer(),st.getPlayer())				st.getPlayer().stopAllEffects()				return "1.htm"				st.setState(State.COMPLETED)
this is the original from my super old buffer. the scripts dont work any more in gracia final...