Secret Experience

Secret Experience (https://secretexperience.net/)
-   [L2J] Dúvidas Solucionadas (https://secretexperience.net/l2j-duvidas-solucionadas/)
-   -   Skill Vip Buffer (https://secretexperience.net/l2j-duvidas-solucionadas/23344-skill-vip-buffer.html)

BrunoCrusher 15-07-2010 06:09 PM

Skill Vip Buffer
 
Ola pessoal!!!

Eu comprei um server de um amigo com a rev l2equal.... o problema é q a rev tava toda bugada... dai eu resolvi fazer migração de data base de equal para l2jteon rev 759... até ai tudo bem tudo correto sem nenhum tipo de problemas axceto pelo npc vip buffer... q pra min ta sendo um enigma...

no server atual vc vai no npc vip buffer tendo o vip card no invetario ele te da um skill que se chama Vip Buffer esse skill te da 15% a mais de cada status... um unico buffzinho...

no equal ele funciona mas no teon ele da erro vejam as fotos


Buffer no equal funcionando :
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]


Buffer no teon dando erro

[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

a script ta assim:
Aki era do equal:
import sys
from com.equal.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from com.equal.gameserver.datatables import SkillTable
from com.equal import L2DatabaseFactory
from com.equal.gameserver.model.quest import State
from com.equal.gameserver.model.quest import QuestState
from com.equal.gameserver.model.quest.jython import QuestJython as JQuest


Mudando pro teon ficou assim:
Código:

import sys
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from net.sf.l2j.gameserver.datatables import SkillTable
from net.sf.l2j                              import L2DatabaseFactory
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest

Código:



qn = "9998_NPCBuffer"

NPC=[50005]
ADENA_ID=15007
QuestId    = 9998
QuestName  = "NPCBuffer"
QuestDesc  = "custom"
InitialHtml = "1.htm"

print "importing " + QuestDesc + ": " + str(QuestId) + ": " + QuestName + ": " + QuestName,

class Quest (JQuest) :

        def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)


        def onEvent(self,event,st):
                htmltext = event
                count=st.getQuestItemsCount(ADENA_ID)
                if count < 1 :
                        htmltext = "<html><head><body>Buffer Exclusivo para Char Vip</body></html>"
                else:
                        st.getPlayer().setTarget(st.getPlayer())
                        if event == "1":
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100046,1),False,False)
                                st.getPlayer().restoreMP()                       
                                return "1.htm"
                                st.setState(COMPLETED)

                        if event == "3":
                                st.takeItems(ADENA_ID,0)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100001,2),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100002,3),False,False)       
                                st.getPlayer().restoreMP()       
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100043,3),False,False)       
                                st.getPlayer().restoreMP()       
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100005,4),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100017,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100006,6),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100007,6),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100008,2),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100009,4),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100032,6),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100010,2),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100011,6),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100033,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100012,4),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100034,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100016,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100035,2),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100018,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100019,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100020,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100021,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100024,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100036,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100037,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100038,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100039,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100040,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100041,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100042,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100031,1),False,False)
                                st.getPlayer().restoreMP()
                                return "4.htm"
                                st.setState(COMPLETED)

                        if event == "4":
                                st.takeItems(ADENA_ID,140000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4346,4),False,False)
                                st.getPlayer().restoreHPMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4342,2),False,False)
                                st.getPlayer().restoreHPMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4343,3),False,False)
                                st.getPlayer().restoreHPMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4344,3),False,False)
                                st.getPlayer().restoreHPMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4345,3),False,False)
                                st.getPlayer().restoreHPMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4349,2),False,False)
                                st.getPlayer().restoreHPMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4348,6),False,False)
                                st.getPlayer().restoreHPMP()
                                return "4.htm"
                                st.setState(COMPLETED)
                       
                        if event == "5":
                                st.takeItems(ADENA_ID,0)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100001,2),False,False)       
                                st.getPlayer().restoreMP()       
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100002,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100003,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100004,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100005,4),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100006,6),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100007,6),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100008,2),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100009,4),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100010,2),False,False)
                                st.getPlayer().restoreMP()               
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100011,6),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100012,4),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100013,2),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100014,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100015,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100016,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100017,3),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100018,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100019,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100020,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100021,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100022,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100023,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100024,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100025,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100026,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100027,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100028,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100029,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100030,1),False,False)
                                st.getPlayer().restoreMP()
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100031,1),False,False)
                                st.getPlayer().restoreMP()
                                return "4.htm"                       
                                st.setState(COMPLETED)

                        if event == "6":
                                st.takeItems(ADENA_ID,1000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100044,1),False,False)
                                st.getPlayer().restoreMP()
                                return "1.htm"               
                                st.setState(COMPLETED)

                        #Wind Walk
                        if event == "7":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100001,2),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Teste
                        if event == "8":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1141,2),False,False)
                                return "1.htm"               
                                st.setState(COMPLETED)

                        #Shield
                        if event == "9":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100002,3),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Might
                        if event == "10":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100003,3),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Mental Shield
                        if event == "11":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100005,4),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Bless the Body
                        if event == "12":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100006,6),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Bless the Soul
                        if event == "13":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100007,6),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Magic Barrier
                        if event == "14":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100008,2),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Resist Shock
                        if event == "15":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100009,4),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Concentration
                        if event == "16":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4351,6),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Berserker Spirit
                        if event == "17":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100010,2),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Bless Shield
                        if event == "18":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100011,6),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Vampiric Rage
                        if event == "19":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100012,4),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Acumen
                        if event == "20":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4355,3),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Empower
                        if event == "21":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4356,3),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Haste
                        if event == "22":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100013,2),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Guidance
                        if event == "23":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100014,3),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Focus
                        if event == "24":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100015,3),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Death Whisper
                        if event == "25":
                                st.takeItems(ADENA_ID,15000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100016,3),False,False)
                                st.getPlayer().restoreMP()
                                return "5.htm"               
                                st.setState(COMPLETED)

                        #Greater Might
                        if event == "26":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100004,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Greater Shield 
                        if event == "27":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1389,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)             

                        #Holy Resistance 
                        if event == "28":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1392,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)
           
                        #UNHoly Resistance 
                        if event == "29":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1393,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)             

                        #Propherty of Fire 
                        if event == "30":

                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1356,1),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Elemental Protection 
                        if event == "31":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1352,1),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Wind Magic   
                        if event == "32":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1303,2),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Advenced Block 
                        if event == "33":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100017,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Divine Protection 
                        if event == "34":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1353,1),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Prophecy of Water 
                        if event == "35":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1355,1),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Prophecy of Wind 
                        if event == "36":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1357,1),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Life Cubic   
                        if event == "37":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4338,1),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Body of Avatar   
                        if event == "38":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1311,6),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Mana Regeneration   
                        if event == "39":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1047,4),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Deflect Arrow   
                        if event == "40":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(112,4),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Reflect Damage   
                        if event == "41":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(86,170),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Majesty 
                        if event == "42":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(82,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Clarity   
                        if event == "43":
                                st.takeItems(ADENA_ID,50000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1397,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "5.htm"
                                st.setState(COMPLETED)

                        #Summon Phantom Cubic 
                        if event == "44":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(33,8),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Vampiric Cubic   
                        if event == "45":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(22,7),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Viper Cubic   
                        if event == "46":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(278,6),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Storm Cubic   
                        if event == "47":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(10,8),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Life Cubic   
                        if event == "48":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(67,7),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Sumon Binding Cubic   
                        if event == "49":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1279,9),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Spark Cubic 
                        if event == "50":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1281,9),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Summon Aqua Cubic   
                        if event == "51":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1280,9),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Blessing of Queen 
                        if event == "52":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4699,13),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Gift of Queen   
                        if event == "53":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4700,13),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Blessing of Seraphim 
                        if event == "54":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4702,13),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Gift of  Seraphim   
                        if event == "55":
                                st.takeItems(ADENA_ID,15000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(4703,13),False,False)       
                                st.getPlayer().restoreMP()
                                return "6.htm"
                                st.setState(COMPLETED)

                        #Flame Chant   
                        if event == "56":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1002,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Fire   
                        if event == "57":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1006,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Battle   
                        if event == "58":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1007,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Shielding   
                        if event == "59":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1009,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Soul Shield 
                        if event == "60":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1010,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Life 
                        if event == "61":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1229,18),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Evasion   
                        if event == "62":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1252,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Fury   
                        if event == "63":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1252,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Seal of Rage   
                        if event == "64":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1253,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Predator   
                        if event == "65":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1308,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Eagle   
                        if event == "66":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1309,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Vampire   
                        if event == "67":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1310,4),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #War Chant   
                        if event == "68":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1390,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chant of Spirit   
                        if event == "69":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100031,1),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Chanet of Victory   
                        if event == "70":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100030,1),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Earth Chant   
                        if event == "71":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1391,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "7.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Blessing   
                        if event == "72":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1005,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Wisdom 
                        if event == "73":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1004,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Glory   
                        if event == "74":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1008,3),False,False)       
                                st.getPlayer().restoreMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Sight   
                        if event == "75":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1249,3),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Heart   
                        if event == "76":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1256,13),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Tact   
                        if event == "77":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1260,3),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Rage   
                        if event == "78":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1261,2),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Chant of Revenge   
                        if event == "79":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1284,3),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Honor 
                        if event == "80":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1305,5),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Eye 
                        if event == "81":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1364,1),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's of Soul 
                        if event == "82":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1365,1),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Shield   
                        if event == "83":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1250,3),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Speed 
                        if event == "84":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1282,2),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        #Pa'agrio's Power 
                        if event == "85":
                                st.takeItems(ADENA_ID,1000000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(1003,3),False,False)       
                                st.getPlayer().restoreHPMP()
                                return "8.htm"
                                st.setState(COMPLETED)

                        if event == "86":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100025,1),False,False)       
                                st.getPlayer().restoreMP()
                                return "2.htm"

                        if event == "87":
                                st.takeItems(ADENA_ID,20000)       
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100029,1),False,False)
                                st.getPlayer().restoreMP()
                                return "2.htm"

                        if event == "88":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(273,1),False,False)
                                st.getPlayer().restoreMP()
                                return "2.htm"

                        if event == "89":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100027,1),False,False)
                                st.getPlayer().restoreMP()
                                return "2.htm"

                        if event == "90":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100026,1),False,False)
                                st.getPlayer().restoreMP()
                                return "2.htm"

                        if event == "91":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(276,1),False,False)
                                st.getPlayer().restoreMP()
                                return "2.htm"

                        if event == "92":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(277,1),False,False)
                                st.getPlayer().restoreMP()
                                return "2.htm"

                        if event == "93":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(307,1),False,False)
                                st.getPlayer().restoreMP()
                                return "2.htm"

                        if event == "94":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(309,1),False,False)
                                st.getPlayer().restoreHPMP()
                                return "2.htm"

                        if event == "95":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100028,1),False,False)
                                st.getPlayer().restoreMP()
                                return "2.htm"

                        if event == "96":
                                st.takeItems(ADENA_ID,20000)               
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(311,1),False,False)
                                st.getPlayer().restoreMP()
                                return "2.htm"

                        if event == "97":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(366,1),False,False)
                                st.getPlayer().restoreHPMP()
                                return "2.htm"

                        if event == "98":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(365,1),False,False)
                                st.getPlayer().restoreHPMP()                       
                                return "2.htm"

                        if event == "99":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100018,1),False,False)       
                                st.getPlayer().restoreMP()
                                return "3.htm"

                        if event == "100":
                                st.takeItems(ADENA_ID,1000)       
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100045,1),False,False)
                                st.getPlayer().restoreMP()
                                return "1.htm"

                        if event == "101":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100019,1),False,False)
                                st.getPlayer().restoreMP()
                                return "3.htm"

                        if event == "102":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100020,1),False,False)
                                st.getPlayer().restoreMP()
                                return "3.htm"

                        if event == "103":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100021,1),False,False)
                                st.getPlayer().restoreMP()
                                return "3.htm"

                        if event == "104":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100022,1),False,False)
                                st.getPlayer().restoreMP()
                                return "3.htm"

                        if event == "105":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(270,1),False,False)
                                st.getPlayer().restoreHPMP()
                                return "3.htm"

                        if event == "106":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100024,1),False,False)
                                st.getPlayer().restoreMP()
                                return "3.htm"

                        if event == "107":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(305,1),False,False)
                                st.getPlayer().restoreMP()
                                return "3.htm"

                        if event == "108":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(306,1),False,False)
                                st.getPlayer().restoreMP()
                                return "3.htm"       

                        if event == "109":
                                st.takeItems(ADENA_ID,20000)       
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(308,1),False,False)
                                st.getPlayer().restoreMP()
                                return "3.htm"

                        if event == "110":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(363,1),False,False)
                                st.getPlayer().restoreHPMP()
                                return "3.htm"

                        if event == "111":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(100023,1),False,False)
                                st.getPlayer().restoreMP()
                                return "3.htm"       

                        if event == "112":
                                st.takeItems(ADENA_ID,20000)
                                st.getPlayer().useMagic(SkillTable.getInstance().getInfo(349,1),False,False)
                                st.getPlayer().restoreHPMP()
                                return "3.htm"               
                                st.setState(COMPLETED)

                        if htmltext != event:
                                st.setState(COMPLETED)
                                st.exitQuest(1)
                return htmltext

        def onTalk (self,npc,player):
          st = player.getQuestState(qn)
          htmltext = "<html><head><body>I have nothing to say to you</body></html>"
          st.setState(STARTED)
          return InitialHtml



QUEST      = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)

for npcId in NPC:
 QUEST.addStartNpc(npcId)
 QUEST.addTalkId(npcId)

print "...done"

Se alguem souber como proceder me ajude ai por favor...

Ou quem souber de um npc Vip Buffer que de uma unica skill q de alguns % em todos os status, mas que o player nao consiga essa skill fazendo char e upando....

poste ai...

Ja revirei a secret warez de cabeça pra baixo e nao achei um npc Vip Buffer bom... os npcs Vip Buffer q tem aki são ruins porque se o player fizer os char e upar ele tem os buffs vip isso em um server pvp é ruin...

Me ajudem ai por favor ja migrei tudo bem certinho so falta o Npc Vip Buffer pra completar estou so esperando por isso


Vlw gente

Macabro 15-07-2010 06:16 PM

Pow veio ali ta falando que o Erro e no Script. Se o script era do l2equal você tem que modificar ele para l2jteon. Nessa imagem do console ta falando que o erro e na init. . ( Poste o Script dele aki)

BrunoCrusher 15-07-2010 06:24 PM

Mas eu modifiquei os imports... mas acho q nao fiz direito =(

Da uma luz ai maninho ^^ Eu editei o post ali encima com o script completo

HELTONxD 15-07-2010 06:54 PM

troque isto:

print "importing " + QuestDesc + ": " + str(QuestId) + ": " + QuestName + ": " + QuestName,


por isto:

print "importing custom: 9998: NPC Buffer"




BrunoCrusher 15-07-2010 07:20 PM

Fiz o q vc disse mas continua dando erro:

[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

HELTONxD 15-07-2010 07:30 PM

Não entendi muito bem o tópico, mas creio que tu teja falando que o npc buffer vip não esta funcionando...


bom, o que tem de especial nesse npc que tu quer preservar? apenas esse Buffer que da 15% a mais de status? pois aqui no forum tem varios npcs de buffer vip, por exemplo esse [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

BrunoCrusher 15-07-2010 07:51 PM

@HELTONxD
Citação:

no server atual vc vai no npc vip buffer tendo o vip card no invetario ele te da um skill que se chama Vip Buffer esse skill te da 15% a mais de cada status... um unico buffzinho...
Citação:

Ou quem souber de um npc Vip Buffer que de uma unica skill q de alguns % em todos os status, mas que o player nao consiga essa skill fazendo char e upando....

Ta escrito tudo la encima... mais detalhado do q isso eu nao sei fazer ^^

Eu ja tive olhando esse npc q vc postou ai... mas tipo se algum player fizer a classe do buff q está la no npc Vip Buffer desse link q vc me passou ele consegue obter o buff vip sem precisar do vip card (donatar)...
Por esse motivo o Vip Buff q eu tenho serve... pq no q eu tenho na rev equal ele da
1 UNICO BUFF QUE ALMENTA TODOS OS STATUS 15% Sendo esse buff impossivel de conseguir se não for doando... Entendeu???

paytaly 15-07-2010 10:50 PM

Tente apenas remover a linha destacada em vermelho:
Código:

        def onTalk (self,npc,player):
          st = player.getQuestState(qn)
          htmltext = "<html><head><body>I have nothing to say to you</body></html>"
          st.setState(STARTED)
          return InitialHtml


BrunoCrusher 15-07-2010 11:12 PM

@paytaly

no inicio tava dando esse erro:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

Daí eu mudei uma coisa no init.py de :

st.setState(STARTED)

Para:

st.setState(State.STARTED)

Eu fiz o q vc disse la mas deu esse erro...


será que você consegue identificar o erro atravez do q aparece no game server...


[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

Se derrepente vc souber de um npc vip buffer q seja como akele q eu citei acima... q de um unico buff q almente 15% cada status do player.... akeles npcs vip buffer quem tem aki na secret warez é falho ... pq se o player fizer os char q tem akeles skills eles conseguem se buffar sem precizar do vip card entende???

HELTONxD 15-07-2010 11:21 PM

cara, faz o npc buffer ter uma skill que da 15% a mais de cada status não é o NPC BUFFER.

é o simples fato do cara ter feito uma skill dando esses atributos e adicionou ela em um NPC Buffer VIP. apenas isso e nada mais.

BrunoCrusher 15-07-2010 11:24 PM

Consegui gente a resposta era mais simples do q eu imaginava....


Lendo alguns topicos aki da secret fui pela logica e o segredo estava na xml era so copiar a xml do equal e passar pro teon q resolvia.....

O coisa besta... mas ja serviu de lição pra min xD mais uma coisa q aprendi errando xD


Pode mandar o topico para duvidas solucionadas


100000-100099.xml


Horários baseados na GMT -3. Agora são 04:59 AM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0