Jump to content

[Share+Guide] RPS Game (Script)


Recommended Posts

Gia sas ekana search sto forum tis L2j kai vrika ena endiaferwn Game

Gia osous variounte na pane gia PvP, PK i oti dipote allo edw einai i lisi (pou leei o logos)

As arsisw.

Lipon Pate sto C:\myserver\gameserver\data\scripts\custom <= ftiaxnete ena fakelo me name 4003_Rockgame!

ekei mesa ftiaxnete ena txt kai to kanete rename se __init__.py

ekei mesa vazete!

### Settings
qn = "4003_Rockgame"
NPC         = [6953]
QuestId     = 4003
QuestName   = "Rockgame"
QuestDesc   = "custom"
InitialHtml = "1.htm"

### Items - Format [name, eventId, giveItemId, giveItemQty, takeItem1Id, takeItem1Qty, takeItem2Id, takeItem2Qty]
Items       = [
["1000_Rock", 1001, 1000, 57, 1000, 57, 1], #Edw allazete to Item p 8a dinoun kai pou 8a pernoun
["1000_Paper", 1002, 1000, 57, 1000, 57, 1], #to idio
["1000_Scissors", 1003, 1000, 57, 1000, 57, 1] #to idio
]

### ---------------------------------------------------------------------------
### MIN ALLAZETE TPT EKTOS MA DITE KANA (#)
### ---------------------------------------------------------------------------

print "importing " + QuestDesc + ": " + str(QuestId) + ": " + QuestName + ": " + str(len(Items)) + " item(s)",
import sys
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

### doRequestedEvent
def do_RequestedEvent(event, st, giveItemId, giveItemQty, takeItem1Id, takeItem1Qty, takeItem2Id, takeItem2Qty) :
    if event == "1001" :
        n = st.getRandom(300)
        if st.getQuestItemsCount(takeItem1Id) >= takeItem1Qty :
            st.takeItems(takeItem1Id, takeItem1Qty)
            if n <= 100 :
                st.giveItems(57,1000) #edw einai posa Items na dosei ama vgite Isopalia
                return "I chose Rock as well. Looks like a tie! Better Luck next time!"
            if n <= 200 and n > 100 :
                return "I chose Paper. Paper covers Rock, you lose. Better Luck next time!"
            if n > 200 :
                st.giveItems(57,2000) #edw posa Items na dosei ama nikisete
                return "I chose Scissors. Rock smashes Scissors. You Win! Congrats!"
        else :
            return "You do not have enough adena."
        
    if event == "1002" :
        n = st.getRandom(300)
        if st.getQuestItemsCount(takeItem1Id) >= takeItem1Qty :
            st.takeItems(takeItem1Id, takeItem1Qty)
            if n <= 100 :
                st.giveItems(57,2000)
                return "I chose Rock. Paper covers Rock. You Win! Congrats!"
            if n <= 200 and n > 100 :
                st.giveItems(57,1000)
                return "I chose Paper as well. Looks like a tie! Better Luck next time!"
            if n > 200 :
                return "I chose Scissors. Scissors cut Paper, you lose. Better Luck next time!"
        else :
            return "You do not have enough adena."
        
    if event == "1003" :
        n = st.getRandom(300)
        if st.getQuestItemsCount(takeItem1Id) >= takeItem1Qty :
            st.takeItems(takeItem1Id, takeItem1Qty)
            if n <= 100 :
                return "I chose Rock. Rock smashes Scissors, you lose. Better Luck next time!"
            if n <= 200 and n > 100 :
                st.giveItems(57,2000)
                return "I chose Paper. Scissors cut Paper. You Win! Congrats!"
            if n > 200 :
                st.giveItems(57,1000)
                return "I chose Scissors as well. Looks like a tie! Better Luck next time!"
        else :
            return "You do not have enough adena."

### main code
class Quest (JQuest) :

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

def onEvent (self,event,st) :
    htmltext = event

    if event == "0":
        return InitialHtml

    for item in Items:
        if event == str(item[1]):
            htmltext = do_RequestedEvent(event, st, item[1], item[2], item[3], item[4], item[5], item[6])

    return htmltext

def onTalk (Self,npc,player):
   htmltext = "<html><head><body>I have nothing to say with you</body></html>"
   return InitialHtml

### Quest class and state definition
QUEST       = Quest(QuestId,qn,QuestDesc)


for item in NPC:
   QUEST.addStartNpc(item)
   QUEST.addTalkId(item)
###   QUEST.addTalkId(npcId)
### Quest NPC initialization
###   STARTED.addTalkId(item)

print "...done"

 

Lipon ola me to (#) sviste ta gia na min exoume kana Error!

tora as ftiaksoume ena htm mesa sto fakelo auton gia na exei pou na dosei ta Commands!

Ftiakste ena txt kai kante to rename se 1.htm

tora ekei mesa valte auta

<html><head><body>
<table width=200>
<tr><td align="center">RPS Game Manager</td></tr>
</table><br>
<a action="bypass -h Quest 4003_Rockgame 1001">[Choose Rock]</a><br>
<a action="bypass -h Quest 4003_Rockgame 1002">[Choose Paper]</a><br>
<a action="bypass -h Quest 4003_Rockgame 1003">[Choose Scissors]</a><br>
</body></html>

Tora pate sto C:\myserver\gameserver\data\sripts.cfg to anigete me notepad kai mesa vazete custom/4003_Rockgame/__init__.py

Lipon edw teliosame tora as ftiaksoume ena NPC

6953,35587,Andromeda,1,RPS Game,1,NPC.a_common_peopleA_FHuman,8,21,5,70,fenake,L2Npc,40,99,99,0,0,10,10,10,10,10,10,0,0,10,10,10,10,10,0,10,0,0,0,10,132,,0,0,0,LAST_HIT,0,0,0,fighter

tora pame sto C:\myserver\gameserver\data\html\default < kai edw kanoume ena txt kai to kanoume rename se 6953.htm

tora ekei mesa grafoume ta ekseis.

<html>
<head>
<body>
RPS Manager:<br>
<br>
Wanna play a game of Rock, Paper, Scissors?<br>
<br>
<a action="bypass -h npc_%objectId%_Quest 4003_Rockgame">Play RPS</a>
</a>
</body>
</html>

kai iste etimoi!

kante ena restart ton server kai 8a einai etimo (L2j Support ama 8elete L2jFree)

Den kserw akrivos alla as kanw  mia apopira na to dokimasw

 

### Settings
qn = "4003_Rockgame"
NPC         = [6953]
QuestId     = 4003
QuestName   = "Rockgame"
QuestDesc   = "custom"
InitialHtml = "1.htm"

### Items - Format [name, eventId, giveItemId, giveItemQty, takeItem1Id, takeItem1Qty, takeItem2Id, takeItem2Qty]
Items       = [
["1000_Rock", 1001, 1000, 57, 1000, 57, 1], #Edw allazete to Item p 8a dinoun kai pou 8a pernoun
["1000_Paper", 1002, 1000, 57, 1000, 57, 1], #to idio
["1000_Scissors", 1003, 1000, 57, 1000, 57, 1] #to idio
]

### ---------------------------------------------------------------------------
### MIN ALLAZETE TPT EKTOS MA DITE KANA (#)
### ---------------------------------------------------------------------------

print "importing " + QuestDesc + ": " + str(QuestId) + ": " + QuestName + ": " + str(len(Items)) + " item(s)",
import sys
from com.l2jfree.gameserver.model.quest import State
from com.l2jfree.gameserver.model.quest import QuestState
from com.l2jfree.gameserver.model.quest.jython import QuestJython as JQuest

### doRequestedEvent
def do_RequestedEvent(event, st, giveItemId, giveItemQty, takeItem1Id, takeItem1Qty, takeItem2Id, takeItem2Qty) :
    if event == "1001" :
        n = st.getRandom(300)
        if st.getQuestItemsCount(takeItem1Id) >= takeItem1Qty :
            st.takeItems(takeItem1Id, takeItem1Qty)
            if n <= 100 :
                st.giveItems(57,1000) #edw einai posa Items na dosei ama vgite Isopalia
                return "I chose Rock as well. Looks like a tie! Better Luck next time!"
            if n <= 200 and n > 100 :
                return "I chose Paper. Paper covers Rock, you lose. Better Luck next time!"
            if n > 200 :
                st.giveItems(57,2000) #edw posa Items na dosei ama nikisete
                return "I chose Scissors. Rock smashes Scissors. You Win! Congrats!"
        else :
            return "You do not have enough adena."
        
    if event == "1002" :
        n = st.getRandom(300)
        if st.getQuestItemsCount(takeItem1Id) >= takeItem1Qty :
            st.takeItems(takeItem1Id, takeItem1Qty)
            if n <= 100 :
                st.giveItems(57,2000)
                return "I chose Rock. Paper covers Rock. You Win! Congrats!"
            if n <= 200 and n > 100 :
                st.giveItems(57,1000)
                return "I chose Paper as well. Looks like a tie! Better Luck next time!"
            if n > 200 :
                return "I chose Scissors. Scissors cut Paper, you lose. Better Luck next time!"
        else :
            return "You do not have enough adena."
        
    if event == "1003" :
        n = st.getRandom(300)
        if st.getQuestItemsCount(takeItem1Id) >= takeItem1Qty :
            st.takeItems(takeItem1Id, takeItem1Qty)
            if n <= 100 :
                return "I chose Rock. Rock smashes Scissors, you lose. Better Luck next time!"
            if n <= 200 and n > 100 :
                st.giveItems(57,2000)
                return "I chose Paper. Scissors cut Paper. You Win! Congrats!"
            if n > 200 :
                st.giveItems(57,1000)
                return "I chose Scissors as well. Looks like a tie! Better Luck next time!"
        else :
            return "You do not have enough adena."

### main code
class Quest (JQuest) :

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

def onEvent (self,event,st) :
    htmltext = event

    if event == "0":
        return InitialHtml

    for item in Items:
        if event == str(item[1]):
            htmltext = do_RequestedEvent(event, st, item[1], item[2], item[3], item[4], item[5], item[6])

    return htmltext

def onTalk (Self,npc,player):
   htmltext = "<html><head><body>I have nothing to say with you</body></html>"
   return InitialHtml

### Quest class and state definition
QUEST       = Quest(QuestId,qn,QuestDesc)


for item in NPC:
   QUEST.addStartNpc(item)
   QUEST.addTalkId(item)
###   QUEST.addTalkId(npcId)
### Quest NPC initialization
###   STARTED.addTalkId(item)

print "...done"

Auto etc nomizw pos einai gia L2jFree alla ama den doulevei telos panton!

Credits: Someone from L2jServer.

Shared here by me :P

Some SS:

gflj7t9w5am1kr6jrbi4_thumb.jpg

m7uvau7k799f7zmb4b09_thumb.jpg

ztcy1w0fmls5f2fzpaew_thumb.jpg

ieyb63x7stu8u0h9oac6_thumb.jpg

55so80i7uvxzefvgz7qr_thumb.jpg

Link to comment
Share on other sites

  • 2 weeks later...

Prin milisete koita3te ligo ta imports..

 

net.sf.l2j.gameserver.model.quest

 

ta imports t l2jfree (opws mas leei to paidi oti einai gia l2jfree) einai etsi sto INTERLUDE,ta imports meta alla3an se com.l2jfree.gameserver ktlp

 

Opote auto dn einai gia gracia alla gia interlude opws to blepw 8)

 

Poli wraio gia an bariountai oi users thanks ;)

 

Btw dn blepw kana flood protector,an einai etsi to game 8a paizoun mexri na mazepsoun tis kakomiras ta items.Kalitera na baleis kana delay,dld an pai3ei kapoios na prepei na perasei kapoio xroniko orio mexri na ksanapai3ei.

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
Reply to this topic...

×   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

    • Welcome to my store :  https://topestore.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 50.99 $ 2016 Discord Account : 10$ 2017 Discord Account :3.99 $ 2018 Discord Account : 3.50$ 2019 Discord Account : 2.70 $ 2020 Discord Account :1.50$ 2021 Discord Account :0.99$ 2022 Discord Account :0.70$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord : @ultrasstore11 Telegram : https://t.me/ultrastore1 Welcome to my store :  https://topestore.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 50.99 $ 2016 Discord Account : 10$ 2017 Discord Account :3.99 $ 2018 Discord Account : 3.50$ 2019 Discord Account : 2.70 $ 2020 Discord Account :1.50$ 2021 Discord Account :0.99$ 2022 Discord Account :0.70$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord : @ultrasstore11
    • L2 ArenaWar: Low Rate PvP Server with Free Buffs & Autofarm [PVP]⚔️ [Free]🆓 Classic Interlude with  3x XP rates! Free starter pack(no grade) to kickstart your adventure! Autofarm for convenient grinding! Free buffs to keep you fighting fit! (2 job buffs) No experience loss on death! (Except with Karma) Clear Karma system to keep things fair! ⚖️ Active community of 800-1k players! Join our Discord to learn more! >> Discord <<     Server website: https://l2arenawar.com/en/    
    • This is dedication! 2 years working on a problem. Congratulations!
    • You indeed have to save player position over Enterworld to properly clean it up later (if you don't, even trying to delete packet content would eventually keep it up), that's what we do with debug packet (which is a reusable Map of ExServerPrimitive packets) on aCis.   It doesn't solve the FPS stuttering - more you draw/delete lines, more your client becomes laggy. It's like if client wasn't deleting drawn points/lines properly, but instead simply hide them and redrawn content above.   If you got a solution, I would happy to integrate it.   You should check aCis#Player _debug packet integration, it allows very big amount of lines/points to be drawn, it is also reusable.   https://gitlab.com/Tryskell/acis_public/-/blob/master/aCis_gameserver/java/net/sf/l2j/gameserver/model/actor/Player.java?ref_type=heads https://gitlab.com/Tryskell/acis_public/-/blob/master/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java?ref_type=heads  
    • we sell website templates, make websites to order. Great selection at very good prices. My contacts discord : advert1231 telegram : https://t.me/ggwpins  
  • Topics

×
×
  • Create New...