Jump to content
  • 0

[HELP] Add Restriction in NPC Buffer


rafiuskyz

Question

how do I say that the player in this event and can not use the Buff?

 

I tried without success for some forms... example

 

def onTalk (self,npc,player):

  st = player.getQuestState(qn)

  if st.getPlayer().TVTEvent.isParticipating() :

      return "Warning: You are attending the event TvT and can not use NPC Buffer!"

      st.exitQuest(1) 

 

  elif st.getPlayer()._inEventCTF() :

      return "Warning: You are attending the event CTF and can not use NPC Buffer!"

      st.exitQuest(1) 

 

  else:

      st.setState(STARTED)

      return InitialHtml

 

 

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

Que versao do core vc usa? no core que estou codificando qq evento tvt ou ctf q vc cria ele removes todos os efeitos dos char (buffs, etc) ao entrar no evento. portanto isso que vc esta querendo fazer é algo desnecessario. Ele pode se buffar quantas vezes quiser e com qq tipo de buff ao entrar no evento ele irá perder todos.

Link to comment
Share on other sites

  • 0

Quero adicionar esta restrição pro NPC BUFFER nao BUFFAR o cara se ele estiver registrado nos Eventos, eu sei que ele perde os buffs ao inicio do evento, mas tem sempre os safados que tentam de tudo

Link to comment
Share on other sites

  • 0

não adianta ele tentar, o buff sera removido, pode ver q todo server q tem evento ctf e tvt nao se preocupa com isso. Tem um função dentro do core responsavel por essa tarefa, se alguem descobrir algum bug o cara nem vai usar seu npc buffer ele vai criar um char buffer pra entra no evento buffado, isso se ele conseguir. Não sei se no python o objeto do character herda propriedades ou methodos dos eventos nunca testei isso, creio que seja possivel, mas fazer isso com uma proteçao ja existente no core na minha opniao é algo inutil, sem contar q uma codificação pelo core é mais segura que em um script python.

Link to comment
Share on other sites

  • 0

try that and tell me

 

def onEvent(self,event,st):
htmltext = event
if st.getPlayer().isInFunEvent: 
htmltext = "<html><head><body>bla bla bla</body></html>"

Link to comment
Share on other sites

  • 0

fakoykas, I tried as you said and all that without being restricted to event.

 

if st.getPlayer().isInFunEvent:
      return "Warning: You are attending the event TvT and can not use NPC Buffer!"

 

and also tried the following  adding () also unsuccessfully, not restricted anyone! =/

 

if st.getPlayer().isInFunEvent() :
      return "Warning: You are attending the event TvT and can not use NPC Buffer!"

 

sorry for my English I use translator.

Link to comment
Share on other sites

  • 0

do it

 

if st.getplayer()._inEvent()  <<<<

 

try player._inEvent or st.player._inEvent or any object related to players with this function ._inEvent [boolean]

 

I sayid maybe the object 'player' in python dont inherit methods, functions, classes from the classes related to events.

 

I think this code is useless because when the character enter in the tvt zone all effects are removed.

Link to comment
Share on other sites

  • 0

or easier way go to the tvt.java and add a check to the npc dont give buff on event

 

1st you need a private static int npcId = the buffers id;(private or public it doesnt matter here)

 

and than the check is easy

 

if (npcId == the buffers id)

    return false;(or an activeChar.sendMessage or an action failed packet or what you want)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • I guess if you want to learn the whole process, your best bet is to start with a classic client (like salvation? also must be easy to modify so that you don't get stuck behind paywalls) and check how the network communication is implemented. L2jmobius has a lot of sources that use classic clients.
    • DISCORD : utchiha_market telegram : https://t.me/utchiha_market SELLIX STORE : https://utchihamkt.mysellix.io/ Join our server for more products : https://discord.gg/hoodservices https://campsite.bio/utchihaamkt  
    • WTS Gold bars reborn interlude x10   discord : xeenthekeen
    • Guys, if you'd let me be the bearer of bad news, No amount of "break from server development" can justify your complete lack of idea how things work. If it was this easy, you should've been seeing 90% of the servers of the popular old versions, such as IL and HF, running on the newest client. For this task, you would need a lot of time - think at least 2 months, if you can code, have access to all the necessary tools for client development, and you have a relatively good idea of how server<->client communication works. f you don't, then you either find yourself a well-paying job and find someone who would do it for you or you put the idea aside (for no less than 1-2 years) and start reading and learning asap. Let me give you a little preview/breakdown of what some of the work includes. The work can be split into two parts - SERVER side and CLIENT side.  The server and the client communicate through packets. Each of these packets has a defined structure. Both, the server and the client MUST know this structure and MUST use the same structure, otherwise they won't be able to "understand" each other. - The server side predominantly includes the alteration of existing packet structure and the creation (from zero) of missing packets that the client requires. Then you also have to take these changes into account and alter the existing features of your server to match the changes. A good example for this is SKILL ENCHANTING. On older chronicles, the enchant level is determined by the LEVEL value of the skill and on the new clients, it has been taken out into a separate value. What this means is that you would have to figure out a way to adapt the old system to the new requirements. - Now that we mentioned the client, you would also need to edit a bunch of files, such as Interface, UTX, UNR, as well as DAT files, including those related to ITEMS, SKILLS, QUESTS, NPCS, and AUGMENTATION STATS and DESCRIPTIONS, etc. For some of those, you would also have to figure out how to check for missing entries and how to parse data from the older client to the new. The best example, again, would be the SKILLS. On the latest clients, the skill enchanting was limited to only +20. As such, even if there were some matching skills between the two different client versions, you would still need to add the missing 10 levels to +30. And once you complete all of that, you start testing and fixing bugs and sh1t. And once you have fixed all of that, you can start adding new features from the new client, because otherwise it would be one big mess and a waste of time and/or money.
  • Topics

×
×
  • Create New...