Jump to content

Question

Posted (edited)

So here's a script for changing sex but i cant make it work ...any suggestions??

 

Anyone who could help let me know :)

 

ERROR:  https://postimg.org/image/43usurd33/

 

CODE:
 

import sys
from com.l2jfrozen import Config
from com.l2jfrozen.util.database import L2DatabaseFactory
from com.l2jfrozen.gameserver.datatables.sql import CharTemplateTable
from com.l2jfrozen.gameserver.communitybbs.Manager import RegionBBSManager
from com.l2jfrozen.gameserver.model import L2World
from com.l2jfrozen.gameserver.model.quest import State
from com.l2jfrozen.gameserver.model.quest import QuestState
from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jfrozen.gameserver.network.serverpackets import EtcStatusUpdate
from com.l2jfrozen.gameserver.network.serverpackets import PledgeShowInfoUpdate
from com.l2jfrozen.util.random import Rnd

qn = "8700_Services"

NPC = 300300


# Items
Item = 57
GenreCount = 10

print "INFO Loaded: 8700_Services"

def AutoChat(npc, text) :
  chars = npc.getKnownList().getKnownPlayers().values().toArray()
  if chars != None :
    for pc in chars :
      sm = NpcSay(npc.getObjectId(), 0, npc.getNpcId(), text)
      pc.sendPacket(sm)

class Quest (JQuest) :

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

  def onAdvEvent(self, event, npc, player) :
    st = player.getQuestState(qn)
    htmltext = event

    if event == "changeGenre" :
      if st.getQuestItemsCount(Item) < GenreCount :
        htmltext = "cant.htm"
      elif player.isCursedWeaponEquipped() :
        AutoChat(npc, player.getName()+" you can't change your genre when you are equipped with a Cursed Weapon.")
        htmltext = "cant.htm"
      else :
        if player.getAppearance().getSex() == 1 :
          newGenre = 0
        else :
          newGenre = 1
        con = L2DatabaseFactory.getInstance().getConnection(None)
        offline = con.prepareStatement("UPDATE characters SET sex = ? WHERE charId = ?")
        offline.setInt(1, newGenre)
        offline.setInt(2, player.getObjectId())
        try :
          offline.executeUpdate()
          offline.close()
          con.close()
        except :
          try : con.close()
          except : pass
        player.store()
        player.broadcastUserInfo()
        player.decayMe()
        player.spawnMe(player.getX(), player.getY(), player.getZ())
	st.takeItems(Item, GenreCount)
        st.playSound("ItemSound.quest_finish")
        return "2.htm"
        st.exitQuest(1)
    
  
    
  
  def onTalk(self, npc, player) :
    htmltext = ""
    st = player.getQuestState(qn)
    if not st :
      st = self.newQuestState(player)
    htmltext = "2.htm"
    st.playSound("ItemSound.quest_accept")
    return htmltext

QUEST = Quest(8700,qn,"custom")

QUEST.addStartNpc(NPC)

QUEST.addTalkId(NPC)
Edited by protoftw

8 answers to this question

Recommended Posts

  • 0
Posted

 

So here's a script for changing sex but i cant make it work ...any suggestions??

 

Anyone who could help let me know :)

 

ERROR:  https://postimg.org/image/43usurd33/

 

CODE:

 

import sys
from com.l2jfrozen import Config
from com.l2jfrozen.util.database import L2DatabaseFactory
from com.l2jfrozen.gameserver.datatables.sql import CharTemplateTable
from com.l2jfrozen.gameserver.communitybbs.Manager import RegionBBSManager
from com.l2jfrozen.gameserver.model import L2World
from com.l2jfrozen.gameserver.model.quest import State
from com.l2jfrozen.gameserver.model.quest import QuestState
from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest
from com.l2jfrozen.gameserver.network.serverpackets import EtcStatusUpdate
from com.l2jfrozen.gameserver.network.serverpackets import PledgeShowInfoUpdate
from com.l2jfrozen.util.random import Rnd

qn = "8700_Services"

NPC = 300300


# Items
Item = 57
GenreCount = 10

print "INFO Loaded: 8700_Services"

def AutoChat(npc, text) :
  chars = npc.getKnownList().getKnownPlayers().values().toArray()
  if chars != None :
    for pc in chars :
      sm = NpcSay(npc.getObjectId(), 0, npc.getNpcId(), text)
      pc.sendPacket(sm)

class Quest (JQuest) :

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

  def onAdvEvent(self, event, npc, player) :
    st = player.getQuestState(qn)
    htmltext = event

    if event == "changeGenre" :
      if st.getQuestItemsCount(Item) < GenreCount :
        htmltext = "cant.htm"
      elif player.isCursedWeaponEquipped() :
        AutoChat(npc, player.getName()+" you can't change your genre when you are equipped with a Cursed Weapon.")
        htmltext = "cant.htm"
      else :
        if player.getAppearance().getSex() == 1 :
          newGenre = 0
        else :
          newGenre = 1
        con = L2DatabaseFactory.getInstance().getConnection(None)
        offline = con.prepareStatement("UPDATE characters SET sex = ? WHERE charId = ?")
        offline.setInt(1, newGenre)
        offline.setInt(2, player.getObjectId())
        try :
          offline.executeUpdate()
          offline.close()
          con.close()
        except :
          try : con.close()
          except : pass
        player.store()
        player.broadcastUserInfo()
        player.decayMe()
        player.spawnMe(player.getX(), player.getY(), player.getZ())
	st.takeItems(Item, GenreCount)
        st.playSound("ItemSound.quest_finish")
        return "2.htm"
        st.exitQuest(1)
    
  
    
  
  def onTalk(self, npc, player) :
    htmltext = ""
    st = player.getQuestState(qn)
    if not st :
      st = self.newQuestState(player)
    htmltext = "2.htm"
    st.playSound("ItemSound.quest_accept")
    return htmltext

QUEST = Quest(8700,qn,"custom")

QUEST.addStartNpc(NPC)

QUEST.addTalkId(NPC)

con = L2DatabaseFactory.getInstance().getConnection(None) // delete none

  • 0
Posted (edited)

now there are no problems but ,

the char is not changing sex ..all i get is the respawn

before player.store()

add this

player.getAppearance().setSex(newGenre)
Edited by melron
  • 0
Posted

i was trying with the first one u said but then i saw u edited ur post and i was like cmon ...make it work hahaha

so now it;s working great !! ty :) :)

  • 0
Posted (edited)

there;s a script error when u are equipped with cursed weapons(akamanah/zarihe) and you are trying to change sex

 

https://postimg.org/image/wlqltfs6x/

 

 

also how i can make the code get the char kicked after changing sex ??and also showing a message that he is going to get kicked

Edited by protoftw
  • 0
Posted

there;s a script error when u are equipped with cursed weapons(akamanah/zarihe) and you are trying to change sex

 

https://postimg.org/image/wlqltfs6x/

 

 

also how i can make the code get the char kicked after changing sex ??and also showing a message that he is going to get kicked

drop the message, player.logout(true);

  • 0
Posted

lock it problem fixed.

melron is the best guy seriously!

so kind,helpful and easy to communicate, thanks mate ;)

Guest
This topic is now closed to further replies.


×
×
  • Create New...