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

    • imbadon.com If u deleted me from the content, it is your problem. This 200 euro is not money at all. But you... just scammer. People should know about you. I can share the whole conversation if you want, but it will not change that you are a scammer. 
    • For upcoming changes, You should consider making those 3 tabs (or whatever more You will have with new games) more visible and standing out, because right it looks like all topics hidden under those 3 tabs.
    • While not particularly active over the years, I've been around for as long as I could remember, so here are my 2 cents too. On top of what has already been said, I'd like to touch on a few thing that might be improved upon. While it is easy to notice and say "there's lack of engagement" or "community has outgrown the ganre", I've seen numerous forums get forgotten and die while others continue to thrive to this day. The main issue, in my humble opinion, is that the sector has been commercialised to an unsustainable extent. When nobody is willing to share anything, even if it is just a rework of an open-sourced or already-shared resource, the sense of "community" gets deminished. Now back on the pressing matter. From what I've seen, the lack of engagement could be circumvented with a redesign and functionality expansion that would/could/should include: - a built-in chat functionality. - incentives for engagement/interaction, ideas of which I'll list as separate pointers, as not to limit your creativity. But just as an example, from a more user/human perspective, having an easily identifiable way to get into "the club of the cool kids on the block", figuratively speaking, is an incentive on its own. - separation of the reputation into reactions and reputation. One to be used to posts, such as up-vote and what not, while the other to be awarded as means of appreciation. - automated ranks with actual benefits/perks, not like the current ones providing nothing. - the ability to hide text for user/group of users, not just premium/no premium. - increased visibility of the HOT topics and the RECENTLY ACTIVE threads/posts. Can be also expanded to most liked posts, etc. ps.: I'll update my post when I have some free time on my hands.
    • There was no way I didn't refunded or delivered files. I don't see You on my conrtact list on Discord, can You send me a message or at least tell me for what project was this updater? I always resolve if I can't deliver on time or customer bailes.
  • Topics

×
×
  • Create New...