Este es un tema popular. Edward™ Publicado 15 de Diciembre del 2014 Este es un tema popular. Reportar Compartir Publicado 15 de Diciembre del 2014 Bueno @Jfirewall y yo hemos estado haciendo un sistema. El sistema consta en: En el npc que queráis, le dais 50 coins y os dan el acceso premium. No desaparece nunca el premium. "Todo esto es fácil de editar" Dentro del .rar viene toda la información necesaria para instalarlo. Sabemos que el sistema tiene muchas consultas sql, pero en la siguiente versión, lo vamos a renderizar mucho mas. PD: Tiene un bugg que vamos a arreglarlo y es que te sale el logo de V.I.P pero si te pones una armadura por ejemplo, se te quita el logo, pero al cabo de 1 minuto se te vuelve a poner. PD2: Vamos a ir actualizando el post con novedades del sistema. PD3: Cualquier bugg, dejarlo anotado en el post. Contraseña del rar con su link de descarga. Así os quedaría si meteis el uiquest.py Contraseña: Jfirewall-Edward Debes iniciar sesión para ver el contenido del enlace en esta publicación. Agradecimiento: -SeMa por ayuda con mysql_query. -Rafa23Alzira por sus consejos y unas funciones. CHELO, boker9999, ellen98 y 33 mas reacciono a esto 34 1 1 Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Este es un tema popular. Jfirewall Publicado 12 de Enero del 2015 Este es un tema popular. Reportar Compartir Publicado 12 de Enero del 2015 Bueno aca les comparto lo ultimo que se trabajo algo mas avanzado y mejorado para nuestro uso, se puede mejorar mas pero mi tiempo es muy poco y edward tambien esta alejado entonces cuando pueda lo mejoro y se los comparto les adjunto fotos y los demas archivos Debes iniciar sesión para ver el contenido del enlace en esta publicación. Debes iniciar sesión para ver el contenido del enlace en esta publicación. Debes iniciar sesión para ver el contenido del enlace en esta publicación. Debes iniciar sesión para ver el contenido del enlace en esta publicación. Debes iniciar sesión para ver el contenido del enlace en esta publicación. --[[ Quest: Premium System Version: 1.2 (Game 34k en adelante) ]] quest premium begin state start begin when 20094.chat.'Sistema Premium' begin say_title'Sistema Premium' say(pc.get_name()) say'Hola aca tienes la opcion de poder ser miembo [VIP] de nuestro servidor[ENTER]' say'Con esta opcion tienes la posibilidad de tener nuevos bonus, ademas de nuevas tiendas para tu uso[ENTER]' say'Ademas tu nombre tendra una manera distinta de verse con [VIP], un logo que te ara ver mejor[ENTER]' say'Ademas que cuando hablas podran ver tu rango [VIP], para obtener esto y muchos mas privilegios[ENTER]' say'Deberas cancelar la suma de 50 coins por mes, para poder disfrutar de este sistema.' say_reward'Realmente Quieres obtenerlo?' local elejir = select('Si, Comprarlo', 'Salir') if elejir == 2 then return end if pc.get_coins() < 50 then say_title'Sistema Premium' say(pc.get_name()) say'Lo siento, no tienes los coins suficientes para ser miembo VIP' else say_title'Sistema Premium' say(pc.get_name()) say'FELICIDADES!, de ahora en adelante eres miembro vip de nuestro servidor[ENTER]' say'Usalo bien y con cautela todo estara moritoriado por el staff del servidor.' say'Recibido: bonus de experiencia' pc.change_coins(-50) affect.add(43, 100, 60*60*24) pc.set_vip() end end end end --[[ Quest: Premium System Version: 1.2 (Game 34k en adelante) ]] quest shop_vip begin state start begin when login begin -- aqui yo entiendo que es: cuando se conecta cualquier user, ya le da el premium. Premium.Shop1() end when button or info begin say_title'Sistema Premium' say(pc.get_name()) say'Tienda VIP activa, compra tus objetos unicos' npc.open_shop(3) end end end --[[ Quest: Premium System Version: 1.2 (Game 34k en adelante) ]] quest shop_vip2 begin state start begin when login begin Premium.Shop2() end when button or info begin local items = {19,29,39,49,59}-- vnum items local bonus = { -- puedes agregar mas bonus si lo deseas {1,5000}, -- Max Hp {2,20}, -- Max Sp {3,20}, -- Vitalidad {4,20}, -- Inteligencia {5,20}, -- Fuerza {6,20}, -- Dextreza {7,20}, -- Velocidad de ataque {8,20}, -- Velocidad de Movimiento {9,20}, -- Velocidad Hechizo {10,20}, -- Regeneración de HP {11,20}, -- Regeneración de SP {12,20}, -- Probabilidad de Envenenamiento {13,20}, -- Probabilidad de Apagon {14,20}, -- Probabilidad de Retardo {15,20}, -- Probabilidad de golpes críticos {16,20}, -- Probabilidad de golpes de penetración {17,20}, -- Fuerza Contra MedioHumanos {18,20}, -- Fuerza Contra Animales {19,20}, -- Fuerza Contra Orcos {20,20}, -- Fuerza Contra Misticos {21,20}, -- Fuerza Contra No-muertos {22,20}, -- Fuerza Contra Demonios {23,20}, -- Probabilidad de Absorver HP {24,20}, -- Probabilidad de Absorver SP {25,20}, -- Probabilidad de robar HP {26,20}, -- Probabilidad de recuperar SP al golpear {27,20} -- Posibilidad de bloquear un ataque cuerpo a cuerpo } if pc.getqf('iniciar') <= 5 then say_title'Sistema Premium' say(pc.get_name()) say'Aqui podras obtener un item vip, el cual se te dara al azar.' say'Solo puedes usar 5 veces este metodo.' local aceptar = select('Si, quiero', 'Salir') if aceptar == 2 then return end say_title'Agregar bonus 1' local bonus1 = select('Maximo Hp', 'Maximo Sp', 'Vitalidad', 'Inteligencia', 'Fuerza', 'Dextreza', 'Velocidad de ataque', 'Velocidad de Movimiento', 'Velocidad Hechizo', 'Regeneracion de HP', 'Regeneracion de SP', 'Probabilidad de Envenenamiento', 'Probabilidad de Apagon', 'Probabilidad de Retardo', 'Probabilidad de golpes criticos', 'Probabilidad de golpes de penetracion', 'Fuerza Contra MedioHumanos', 'Fuerza Contra Animales', 'Fuerza Contra Orcos', 'Fuerza Contra Misticos', 'Fuerza Contra No-muertos', 'Fuerza Contra Demonios', 'Probabilidad de Absorver HP', 'Probabilidad de Absorver SP', 'Probabilidad de robar HP', 'Probabilidad de recuperar SP al golpear', 'Posibilidad de bloquear un ataque cuerpo a cuerpo') say_title'Agregar bonus 2' local bonus2 = select('Maximo Hp', 'Maximo Sp', 'Vitalidad', 'Inteligencia', 'Fuerza', 'Dextreza', 'Velocidad de ataque', 'Velocidad de Movimiento', 'Velocidad Hechizo', 'Regeneracion de HP', 'Regeneracion de SP', 'Probabilidad de Envenenamiento', 'Probabilidad de Apagon', 'Probabilidad de Retardo', 'Probabilidad de golpes criticos', 'Probabilidad de golpes de penetracion', 'Fuerza Contra MedioHumanos', 'Fuerza Contra Animales', 'Fuerza Contra Orcos', 'Fuerza Contra Misticos', 'Fuerza Contra No-muertos', 'Fuerza Contra Demonios', 'Probabilidad de Absorver HP', 'Probabilidad de Absorver SP', 'Probabilidad de robar HP', 'Probabilidad de recuperar SP al golpear', 'Posibilidad de bloquear un ataque cuerpo a cuerpo') say_title'Agregar bonus 3' local bonus3 = select('Maximo Hp', 'Maximo Sp', 'Vitalidad', 'Inteligencia', 'Fuerza', 'Dextreza', 'Velocidad de ataque', 'Velocidad de Movimiento', 'Velocidad Hechizo', 'Regeneracion de HP', 'Regeneracion de SP', 'Probabilidad de Envenenamiento', 'Probabilidad de Apagon', 'Probabilidad de Retardo', 'Probabilidad de golpes criticos', 'Probabilidad de golpes de penetracion', 'Fuerza Contra MedioHumanos', 'Fuerza Contra Animales', 'Fuerza Contra Orcos', 'Fuerza Contra Misticos', 'Fuerza Contra No-muertos', 'Fuerza Contra Demonios', 'Probabilidad de Absorver HP', 'Probabilidad de Absorver SP', 'Probabilidad de robar HP', 'Probabilidad de recuperar SP al golpear', 'Posibilidad de bloquear un ataque cuerpo a cuerpo') say_title'Agregar bonus 4' local bonus4 = select('Maximo Hp', 'Maximo Sp', 'Vitalidad', 'Inteligencia', 'Fuerza', 'Dextreza', 'Velocidad de ataque', 'Velocidad de Movimiento', 'Velocidad Hechizo', 'Regeneracion de HP', 'Regeneracion de SP', 'Probabilidad de Envenenamiento', 'Probabilidad de Apagon', 'Probabilidad de Retardo', 'Probabilidad de golpes criticos', 'Probabilidad de golpes de penetracion', 'Fuerza Contra MedioHumanos', 'Fuerza Contra Animales', 'Fuerza Contra Orcos', 'Fuerza Contra Misticos', 'Fuerza Contra No-muertos', 'Fuerza Contra Demonios', 'Probabilidad de Absorver HP', 'Probabilidad de Absorver SP', 'Probabilidad de robar HP', 'Probabilidad de recuperar SP al golpear', 'Posibilidad de bloquear un ataque cuerpo a cuerpo') say_title'Agregar bonus 5' local bonus5 = select('Maximo Hp', 'Maximo Sp', 'Vitalidad', 'Inteligencia', 'Fuerza', 'Dextreza', 'Velocidad de ataque', 'Velocidad de Movimiento', 'Velocidad Hechizo', 'Regeneracion de HP', 'Regeneracion de SP', 'Probabilidad de Envenenamiento', 'Probabilidad de Apagon', 'Probabilidad de Retardo', 'Probabilidad de golpes criticos', 'Probabilidad de golpes de penetracion', 'Fuerza Contra MedioHumanos', 'Fuerza Contra Animales', 'Fuerza Contra Orcos', 'Fuerza Contra Misticos', 'Fuerza Contra No-muertos', 'Fuerza Contra Demonios', 'Probabilidad de Absorver HP', 'Probabilidad de Absorver SP', 'Probabilidad de robar HP', 'Probabilidad de recuperar SP al golpear', 'Posibilidad de bloquear un ataque cuerpo a cuerpo') pc.give_item2_select(items[math.random(1,5)]) -- si agregas mas items debes modificar el numero 4 asta el numero mayor de items agregados item.set_value(0,bonus[bonus1][1],bonus[bonus1][2]) item.set_value(1,bonus[bonus2][1],bonus[bonus2][2]) item.set_value(2,bonus[bonus3][1],bonus[bonus3][2]) item.set_value(3,bonus[bonus4][1],bonus[bonus4][2]) item.set_value(4,bonus[bonus5][1],bonus[bonus5][2]) pc.setqf('iniciar', pc.getqf('iniciar') + 1) else say_title'Sistema Premium' say(pc.get_name()) say'Lo siento, ya lo usaste mas de 5 veces' say'compra premium item para volver a utilizar este metodo otras 5 veces' end end when 40002.use begin say_title'Sistema Premium' say(pc.get_name()) say'Al usar este item premium obtienes la posibilidad de 5 nuevos items nuevos, con los bonus al azar' say'Usalo cuando lo veas necesario es un item bastante valioso' pc.setqf('iniciar', 0) end end end questlib --[[ Quest: Premium System Version: 1.2 (Game 34k en adelante) ]] Premium = Premium or {} function Premium.Shop1() cmdchat("tiendita1 "..q.getcurrentquestindex()) end function Premium.Shop2() cmdchat("tiendita2 "..q.getcurrentquestindex()) end function pc.change_coins(x) mysql_query("UPDATE account.account SET coins=coins+'"..x.."' WHERE id='"..pc.get_account_id().."' LIMIT 1") end function pc.get_coins() local a = mysql_query("select * from account.account where id ='"..pc.get_account_id().."' LIMIT 1") return a.coins[1] end function pc.set_vip() local nombre = pc.get_name() mysql_query("UPDATE player.player SET name='[VIP]"..nombre.."' WHERE account_id='"..pc.get_account_id().."' LIMIT 1") end function pc.give_item2_select(...) local tmp = { ['Alt']={}, ['Neu']={} } for i =0,89 do item.select_cell(i) if not tmp.Alt[item.get_id()] then tmp.Alt[item.get_id()] = i end end if table.getn(arg)< 2 then pc.give_item2(arg[1]) else pc.give_item2(arg[1],arg[2]) end for i =0,89 do item.select_cell(i) if not tmp.Neu[item.get_id()] then tmp.Neu[item.get_id()] = i end end local data = {{},{}} for id,slot in next,tmp.Alt do table.insert(data[1],slot) end for id,slot in next,tmp.Neu do table.insert(data[2],slot) end table.sort(data[1]);table.sort(data[2]) for i = 1,table.getn(data[1]) do for i = 1,table.getn(data[2]) do if data[1][i] ~= data[2][i] then item.select_cell(data[2][i]) return end end end end parte clientegame.py class GameWindow(ui.ScriptWindow): def __init__(self, stream): self.lastupdate = 0 self.lastupdatee = 0 onPressKeyDict[app.DIK_F6] = lambda : self.__premium() def OnUpdate(self): premiumvip = player.GetName() if app.GetGlobalTimeStamp() - self.lastupdate < 0: self.lastupdate = app.GetGlobalTimeStamp() if app.GetGlobalTimeStamp() - self.lastupdatee < 0: self.lastupdatee = app.GetGlobalTimeStamp() if premiumvip.find("[VIP]")!=-1: if self.lastupdate == 0: self.lastupdate = app.GetGlobalTimeStamp() if app.GetGlobalTimeStamp() - self.lastupdate >= 60: self.lastupdate = app.GetGlobalTimeStamp() net.SendEmoticon(12) def __ServerCommand_Build(self): serverCommandList={ # sistema vip 'tiendita1' : self.__tienda1, 'tiendita2' : self.__tienda2, # end sistema vip def __premium(self): import uipremium self.fire = uipremium.Premium() self.fire.Show() def __tienda1(self, tienda1vip): import event,constInfo constInfo.SHOP1 = int(tienda1vip) def __tienda2(self, tienda2vip): import event,constInfo constInfo.SHOP2 = int(tienda2vip) crean el archivo uipremium.py import ui,uiCommon,item,player class Premium(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) self.Fire() def __del__(self): ui.ScriptWindow.__del__(self) def Fire(self): self.Board = ui.BoardWithTitleBar() self.Board.SetSize(220, 280) self.Board.SetCenterPosition() self.Board.AddFlag("movable") self.Board.AddFlag("float") self.Board.SetTitleName("Panel Premium") self.Board.SetCloseEvent(self.Close) self.Board.Show() self.cancelar = ui.Button() self.cancelar.SetParent(self.Board) self.cancelar.SetPosition(135,250) self.cancelar.SetUpVisual('d:/ymir work/ui/game/windows/tab_button_small_01.sub') self.cancelar.SetOverVisual('d:/ymir work/ui/game/windows/tab_button_small_02.sub') self.cancelar.SetDownVisual('d:/ymir work/ui/game/windows/tab_button_small_03.sub') self.cancelar.SetText("Cancelar") self.cancelar.SetEvent(ui.__mem_func__(self.Close)) self.cancelar.Show() self.refrescar = ui.Button() self.refrescar.SetParent(self.Board) self.refrescar.SetPosition(90,250) self.refrescar.SetUpVisual('d:/ymir work/ui/game/windows/tab_button_small_01.sub') self.refrescar.SetOverVisual('d:/ymir work/ui/game/windows/tab_button_small_02.sub') self.refrescar.SetDownVisual('d:/ymir work/ui/game/windows/tab_button_small_03.sub') self.refrescar.SetText("Refrescar") self.refrescar.SetEvent(ui.__mem_func__(self.__refrescar)) self.refrescar.Show() self.aceptar = ui.Button() self.aceptar.SetParent(self.Board) self.aceptar.SetPosition(45,250) self.aceptar.SetUpVisual('d:/ymir work/ui/game/windows/tab_button_small_01.sub') self.aceptar.SetOverVisual('d:/ymir work/ui/game/windows/tab_button_small_02.sub') self.aceptar.SetDownVisual('d:/ymir work/ui/game/windows/tab_button_small_03.sub') self.aceptar.SetEvent(ui.__mem_func__(self.__Premium)) self.aceptar.SetText("Aceptar") self.aceptar.Show() self.fileListBox = ui.ListBoxEx() self.fileListBox.SetParent(self.Board) self.fileListBox.SetPosition(20, 50) self.fileListBox.Show() self.ScrollBar = ui.ScrollBar() self.ScrollBar.SetParent(self.Board) self.ScrollBar.SetPosition(190, 35) self.ScrollBar.SetScrollBarSize(220) self.fileListBox.SetScrollBar(self.ScrollBar) self.fileListBox.AppendItem(Item("Abrir Tienda VIP")) self.fileListBox.AppendItem(Item("Obtener Items VIP")) self.ScrollBar.Show() def Close(self): self.Board.Hide() self.ScrollBar.Hide() self.fileListBox.Hide() def __refrescar(self): self.fileListBox.Hide() self.fileListBox.Show() def __Premium(self): premiumvip = player.GetName() elItem=self.fileListBox.GetSelectedItem() if premiumvip.find("[VIP]")!=-1: if elItem: alcanzado=elItem.GetText() if alcanzado =="Abrir Tienda VIP": import event,constInfo event.QuestButtonClick(constInfo.SHOP1) elif alcanzado =="Obtener Items VIP": import event,constInfo event.QuestButtonClick(constInfo.SHOP2) else: self.PopupMessage = uiCommon.PopupDialog() self.PopupMessage.SetWidth(200) self.PopupMessage.SetText("No Seleccionaste ninguna opcion") self.PopupMessage.Show() else: self.PopupMessage = uiCommon.PopupDialog() self.PopupMessage.SetWidth(200) self.PopupMessage.SetText("No Seleccionaste ninguna opcion") self.PopupMessage.Show() else: self.PopupMessage = uiCommon.PopupDialog() self.PopupMessage.SetWidth(200) self.PopupMessage.SetText("Lo siento, no eres miembro VIP") self.PopupMessage.Show() class Item(ui.ListBoxEx.Item): def __init__(self, fileName): ui.ListBoxEx.Item.__init__(self) self.canLoad=0 self.text=fileName self.textLine=self.__CreateTextLine(fileName[:40]) def __del__(self): ui.ListBoxEx.Item.__del__(self) def GetText(self): return self.text def SetSize(self, width, height): ui.ListBoxEx.Item.SetSize(self, 6*len(self.textLine.GetText()) + 4, height) def __CreateTextLine(self, fileName): textLine=ui.TextLine() textLine.SetParent(self) textLine.SetPosition(0, 0) textLine.SetText(fileName) textLine.Show() return textLine constinfo.py SHOP1 = 0 SHOP2 = 0 playersettingmodule.py chrmgr.RegisterEffect(chrmgr.EFFECT_EMOTICON+12, "", EmoticonStr+"vip_mark.mse") net.RegisterEmoticonString("(vip)") agregan la emocion en ymir work\effect\etc\emoticonreemplazan el uiquest.pyDebes iniciar sesión para ver el contenido del enlace en esta publicación. buen resto de dia Reizo, n1njutsu, xReeDx DBL y 27 mas reacciono a esto 28 1 1 Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
isma140 Publicado 7 de Diciembre del 2019 Reportar Compartir Publicado 7 de Diciembre del 2019 resubir el link please Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Mensajes recomendados
Unirse a la conversación
Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.