[Python] Effect meghívások

Indította Red, 2016-11-10, 19:34:33

2016-11-10, 19:34:33 Utolsó szerkesztés: 2016-11-13, 22:22:18 Szerző: Red
Sziasztok.

Régen ezeket az effecteket Pythonban hívtam meg, de már forrásra cseréltem őket így hasztalanná váltak.
Szeretném nektek publikálni, hátha hasznotokra válik.

Nevekhez effect meghívás:



game.py

Keress rá erre:

def OnUpdate(self):

Közvetlen alá adjuk ezt:

gamemasta = player.GetName()

Majd ebben a funkcióban keressük meg ezt a részt:

self.interface.BUILD_OnUpdate()

És adjuk alá ezt:

if app.GetGlobalTimeStamp() - self.lastupdate < 0:
self.lastupdate = app.GetGlobalTimeStamp()
if app.GetGlobalTimeStamp() - self.lastupdatee < 0:
self.lastupdatee = app.GetGlobalTimeStamp()
if gamemasta.find("[VIP]")!=-1:
if self.lastupdate == 0:
self.lastupdate = app.GetGlobalTimeStamp()
if app.GetGlobalTimeStamp() - self.lastupdate >= 5:
self.lastupdate = app.GetGlobalTimeStamp()
net.SendEmoticon(12)
if gamemasta.find("[PvP]")!=-1:
if self.lastupdate == 0:
self.lastupdate = app.GetGlobalTimeStamp()
if app.GetGlobalTimeStamp() - self.lastupdate >= 5:
self.lastupdate = app.GetGlobalTimeStamp()
net.SendEmoticon(13)
if gamemasta.find("[K]")!=-1:
if self.lastupdate == 0:
self.lastupdate = app.GetGlobalTimeStamp()
if app.GetGlobalTimeStamp() - self.lastupdate >= 5:
self.lastupdate = app.GetGlobalTimeStamp()
net.SendEmoticon(14)



Majd keressünk rá erre:

def __init__(self, stream):

Ezen a funkción belül ez alatt:

self.pressNumber = None

Adjuk hozzá ezeket:

self.lastupdate = 0
self.lastupdatee = 0


Nyissuk meg a playersettingmodule-py-t.

Keressünk rá erre:

chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+11, "", EmoticonStr+"fish.mse")
net.RegisterEmoticonString("(fish)")


Majd adjuk alá ezeket:

chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+12, "", EmoticonStr+"vip.mse")
net.RegisterEmoticonString("(vipppxşĐľĆ)")

chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+13, "", EmoticonStr+"pvp.mse")
net.RegisterEmoticonString("(pvpppxxşĐľĆ)")

chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+14, "", EmoticonStr+"kaszt.mse")
net.RegisterEmoticonString("(kasztttxxşĐľĆ)")


Effectekkel nem tudok szolgálni, de nem nagy dolog újat csinálni szerintem.
Effectek itt legyenek:

d:/ymir work/effect/etc/emoticon/


Használata:
Nézzük meg ezt a részt:

if gamemasta.find("[VIP]")!=-1:
if self.lastupdate == 0:
self.lastupdate = app.GetGlobalTimeStamp()
if app.GetGlobalTimeStamp() - self.lastupdate >= 5:
self.lastupdate = app.GetGlobalTimeStamp()
net.SendEmoticon(12)


Akinek benne van a nevében, hogy [VIP] hozzá rendeli a 12-es számú emoticon effectet.

Jelen esetbent ezt:
chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+12, "", EmoticonStr+"vip.mse")
net.RegisterEmoticonString("(vipppxşĐľĆ)")


Így kapott a játékos egy VIP logot a feje fölé. És így működik ez  a többivel is.



PvP-hez effect rendelés:

game.py

Keressük meg ezt:

"MyShopPriceList" : self.__PrivateShop_PriceList,

Adjuk alá ezeket:

"redvidgame"        : self.redvidgame,
"redvid"        : self.redvid,
"redstartgame"        : self.redstartgame,
"redongame"        : self.redongame,
"redendgame"        : self.redendgame, 
"redwsgame" : self.redwsgame,
"redwsvidgame" : self.redwsgame,
"redgogame" : self.redgogame,
"redgovidgame" : self.redgogame,
"redwingame" : self.redwingame,


Majd keressünk rá erre a funkcióra(Ha nincs akkor add hozzá ezt is):

def OpenQuestWindow(self, skin, idx):
if constInfo.INPUT_IGNORE == 1:
return
else:
self.interface.OpenQuestWindow(skin, idx)


És add hozzá alatta ezeket:

def redvidgame(self, id):
import constInfo
constInfo.redvidgame = int(id)

def redongame(self):
constInfo.INPUT_IGNORE = 1
       
def redendgame(self):
constInfo.INPUT_IGNORE = 0

def redstartgame(self):
net.SendQuestInputStringPacket(str(constInfo.redstartgame))

def redvid(self, id):
constInfo.redvid = int(id)

def redwsgame(self):
net.SendChatPacket("(redwsgame)")
return

def redgogame(self):
net.SendChatPacket("(redgogame)")
return

def redwingame(self):
net.SendChatPacket("(redwingame)")
return


constinfo.py

Add hozzá ezeket:

redvidgame = 0
redstartgame = 0
redvid = 0
INPUT_IGNORE = 0 #Ha, ez létezik már nem kell



playersettingmodule.py

Keresünk rá az előzőnek már berakott effectre:

chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+14, "", EmoticonStr+"kaszt.mse")
net.RegisterEmoticonString("(kasztttxxşĐľĆ)")



Add hozzá alatta ezeket:

chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+15, "", "d:/ymir work/akiragame/demirgogame.mse")
net.RegisterEmoticonString("(redgogame)")

chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+16, "", "d:/ymir work/akiragame/demirwsgame.mse")
net.RegisterEmoticonString("(redwsgame)")

chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+17, "", "d:/ymir work/akiragame/demirwingame.mse")
net.RegisterEmoticonString("(redwingame)")



uitarget.py

Importáld be felül ezeket ha, még nincsenek importálva(constInfo tuti már benne van):

import constInfo
import event


Keress rá ezeket:

self.buttonDict[localeinfo.TARGET_BUTTON_FIGHT].SetEvent(ui.__mem_func__(self.OnPVP))
self.buttonDict[localeinfo.TARGET_BUTTON_ACCEPT_FIGHT].SetEvent(ui.__mem_func__(self.OnPVP))
self.buttonDict[localeinfo.TARGET_BUTTON_AVENGE].SetEvent(ui.__mem_func__(self.OnPVP))


Cseréld le erre:
self.buttonDict[localeInfo.TARGET_BUTTON_FIGHT].SetEvent(ui.__mem_func__(self.redwsgame))
self.buttonDict[localeInfo.TARGET_BUTTON_ACCEPT_FIGHT].SetEvent(ui.__mem_func__(self.redgogame))
self.buttonDict[localeInfo.TARGET_BUTTON_AVENGE].SetEvent(ui.__mem_func__(self.redgogame))



Keress rá erre:

def OnPVP(self):

Majd az egész funkciót cseréld le erre:

def redwsgame(self):
net.SendChatPacket("/pvp %d" % (self.vid))
constInfo.redstartgame = self.vid
event.QuestButtonClick(constInfo.redvidgame)

def redgogame(self):
constInfo.redstartgame = self.vid
event.QuestButtonClick(constInfo.redvid)



uichat.py

Keress rá erre:

def __SendChatPacket(self, text, type):

Közvetlen alatta add hozzá ezt:

redgame = ["(redgogame)","(redwsgame)","(redwingame)"]
for x in xrange(len(redgame)):
if(text.find(redgame[x]) != -1):
return


questlib.lua-ba írd bele ezeket:

function setvarchar(name, var)
local laenge = string.len (var)
local setchar = 0
local save_name = 0
local letter = 0
while laenge > setchar do
setchar = setchar + 1
letter = string.sub (var, setchar, setchar)
letter = string.byte(letter, 1)
save_name = ""..name.."_char_"..setchar..""
pc.setqf(save_name, letter)
end
local save_laenge=""..name.."laenge"
pc.setqf(save_laenge, laenge)
end

function getvarchar(name)
local save_laenge = ""..name.."laenge"
local laenge = pc.getqf(save_laenge)
local save_name = 0
local var = ""
local letter = 0
local getchar = 0
while laenge > getchar do
getchar = getchar + 1
save_name = ""..name.."_char_"..getchar..""
letter = pc.getqf(save_name)
if letter!=0 then
letter = string.char(letter)
else
letter = ""
end
var = ""..var..""..letter..""
end
return var
end


quest_functions-ba add hozzá ezeket:

setvarchar
getvarchar



Effectek, és lua hozzá:

http://data.hu/get/10093080/hungaryra_Effectek_red.rar

Lényeg:

PvP-nél ha kihívsz valakit megjelenik egy WS effect.
Ha, elfogadjál a pvp-t visszaszámol effectekkel. 3,2,1,go effect.
Ha, nyer valaki a kap egy WIN effect.

Nagyjából ennyi lenne.

Bármi hiba, probléma esetén írj PM-et és segítek.