// ******************************************************************************************************************************
// * RPP Points System *
// * created by Admin Phoenix aka Levanthis from http://www.uo-tools.com *
// * *
// * Feature: *
// * Give your Players Role Playing Points by using the Ingame Command .rpp <args> *
// * With this Points, player can raise up their Stats or Skills *
// * The raise up depends on their Skill Cap *
// * GM can also remove RPP Points from the player by using the Command .rpn <args> *
// * *
// * All this stuff will be saved in a mysql data base *
// * You can read the rpp points the player have, which GM gave him the points and when *
// * For this you need a table called "charakter_daten" *
// * and rows called username, UID, RPP, RPP_Gesamt, rpp_name *
// * That is it *
// * Enjoy it *
// ******************************************************************************************************************************
[DEFNAME rpp_messages]
d_faehigkeit_steigern You can not raise up your Skill again
d_eigenschaften_steigern You can not raise up your Stat again
d_faehigkeit_grenze You reach your limit
d_faehigkeit_erhoehen You raise your Skill up with 0.1 Points
d_eigenschaft_erhoehen You raise up your Stat with 1 Point
d_keine_punkte You donĀ“t have enough RPP Points yet
d_rpp_abzug_skills 500
d_rpp_abzug_stats 1000
[FUNCTION f_dialog_rpp]
resizepic 0 0 2620 750 480
gumppictiled 6 7 739 486 2604
resizepic 30 25 2620 580 40
resizepic 30 55 2620 580 400
resizepic 50 80 2620 200 40
resizepic 50 128 2620 200 40
resizepic 50 175 2620 200 260
resizepic 245 175 2620 100 260
resizepic 245 128 2620 100 40
resizepic 340 128 2620 100 40
resizepic 340 175 2620 100 260
resizepic 435 128 2620 100 40
resizepic 435 175 2620 100 260
resizepic 290 80 2620 300 40
dtext 155 35 2523 RPP Gump - To spread your Role Playing Points.
dtext 60 90 2523 available Points:
dtext 180 90 025 <dargs>
dtext 120 137 2523 Skill:
dtext 253 137 2523 current Level
dtext 370 137 2523 Grenze:
IF (<isempty <tag0.rpp_message>>)
dtext 300 90 2523 No advert
ELSE
dtext 300 90 2523 <tag0.rpp_message>
ENDIF
dtext 470 137 2523 Up:
dtext 615 35 025 Charges:
dtext 615 55 2523 0.1 Skill Raise up
dtext 615 75 2523 for 500 RPPs
dtext 615 105 2523 1 Stat Raise Up
dtext 615 125 2523 for 1000 RPPs
dtext 20 454 2523 Seite <eval <ctag0.rpp_side>+1>
[DIALOG d_rpp_1]
0,0
src.dialogclose d_rpp_1
page 0
IF (<DB.CONNECTED>)
DB.QUERY "SELECT * FROM charakter_daten WHERE username='<account.name>' AND UID='<uid>'";
local.rpp_gesamt=<db.row.0.RPP_Gesamt>
ENDIF
f_dialog_rpp <dlocal.rpp_gesamt>
page 1
IF (<ctag0.rpp_side> == 0)
local.skill=0
local.up=11
ELSEIF (<ctag0.rpp_side> == 1)
local.skill=12
local.up=11
ELSEIF (<ctag0.rpp_side> == 2)
local.skill=24
local.up=11
ELSEIF (<ctag0.rpp_side> == 3)
local.skill=36
local.up=11
ELSEIF (<ctag0.rpp_side> == 4)
local.skill=48
local.up=6
ENDIF
local.a=20
FOR i <dlocal.skill> <eval <local.skill>+<local.up>>
dtext 60 <eval <local.a>+164> 2523 <serv.skill.<local.i>.title>
dtext 280 <eval <local.a>+164> 025 <fval <<serv.skill.<dlocal.i>.key>>>
dtext 380 <eval <local.a>+164> 025 <fval <skillclass.<serv.skill.<local.i>.key>>>
button 475 <eval <local.a>+170> <hval 04ba> <hval 04b9> 1 0 <eval <dlocal.i>+1>
local.a=<eval <local.a>+18>
ENDFOR
IF (<ctag0.rpp_side> == 4)
dtext 60 328 2523 Str
dtext 280 328 025 <ostr>
button 475 333 <hval 04ba> <hval 04b9> 1 0 80
dtext 60 348 2523 Dex
dtext 280 348 025 <odex>
button 475 353 <hval 04ba> <hval 04b9> 1 0 81
dtext 60 368 2523 Int
dtext 280 368 025 <oint>
button 475 373 <hval 04ba> <hval 04b9> 1 0 82
dtext 380 328 025 <skillclass.str>
dtext 380 348 025 <skillclass.dex>
dtext 380 368 025 <skillclass.int>
ENDIF
button 540 413 4014 4015 1 0 100
button 570 413 4005 4006 1 0 200
[DIALOG d_rpp_1 BUTTON]
ON=0
tag0.rpp_message=
ON=100
IF (<dctag0.rpp_side> == 0)
ctag0.rpp_side=4
ELSE
ctag0.rpp_side -= 1
ENDIF
dialog d_rpp_1
ON=200
IF (<dctag0.rpp_side> == 4)
ctag0.rpp_side=0
ELSE
ctag0.rpp_side += 1
ENDIF
dialog d_rpp_1
ON=1 55
local.skill=<eval <argn>-1>
DB.QUERY "SELECT * FROM charakter_daten WHERE username='<account.name>' AND UID='<uid>'";
local.rpp_gesamt=<db.row.0.RPP_Gesamt>
IF (<dlocal.rpp_gesamt> < <def0.d_rpp_abzug_skills>)
tag0.rpp_message = <def0.d_keine_punkte>
ELSEIF (<<serv.skill.<dlocal.skill>.key>> > 999)
tag0.rpp_message = <def0.d_faehigkeit_steigern>
ELSEIF (<eval <<serv.skill.<dlocal.skill>.key>>> >= <eval <skillclass.<serv.skill.<dlocal.skill>.key>>> )
tag0.rpp_message = <def0.d_faehigkeit_grenze>
ELSE
tag0.rpp_message = <def0.d_faehigkeit_erhoehen>
local.rpp_gesamt -= <def0.d_rpp_abzug_skills>
DB.QUERY "UPDATE charakter_daten SET RPP_Gesamt='<dlocal.RPP_Gesamt>' WHERE username='<account.name>' AND UID='<uid>';"
try src.<dlocal.skill>=<src.<dlocal.skill>>+1
ENDIF
dialog d_rpp_1
ON=80
DB.QUERY "SELECT * FROM charakter_daten WHERE username='<account.name>' AND UID='<uid>'";
local.rpp_gesamt=<db.row.0.RPP_Gesamt>
IF (<dlocal.rpp_gesamt> < <def0.d_rpp_abzug_stats>)
tag0.rpp_message = <def0.d_keine_punkte>
ELSEIF (<str> > <skillclass.str>)
tag0.rpp_message = <def0.d_eigenschaften_steigern>
ELSE
tag0.rpp_message = <def0.d_eigenschaft_erhoehen>
local.rpp_gesamt -= <def0.d_rpp_abzug_stats>
DB.QUERY "UPDATE charakter_daten SET RPP_Gesamt='<dlocal.RPP_Gesamt>' WHERE username='<account.name>' AND UID='<uid>';"
str +=1
ENDIF
dialog d_rpp_1
ON=81
DB.QUERY "SELECT * FROM charakter_daten WHERE username='<account.name>' AND UID='<uid>'";
local.rpp_gesamt=<db.row.0.RPP_Gesamt>
IF (<dlocal.rpp_gesamt> < <def0.d_rpp_abzug_stats>)
tag0.rpp_message = <def0.d_keine_punkte>
ELSEIF (<dex> > <skillclass.dex>)
tag0.rpp_message = <def0.d_eigenschaften_steigern>
ELSE
tag0.rpp_message = <def0.d_eigenschaft_erhoehen>
local.rpp_gesamt -= <def0.d_rpp_abzug_stats>
DB.QUERY "UPDATE charakter_daten SET RPP_Gesamt='<dlocal.RPP_Gesamt>' WHERE username='<account.name>' AND UID='<uid>';"
dex +=1
ENDIF
dialog d_rpp_1
ON=82
DB.QUERY "SELECT * FROM charakter_daten WHERE username='<account.name>' AND UID='<uid>'";
local.rpp_gesamt=<db.row.0.RPP_Gesamt>
IF (<dlocal.rpp_gesamt> < <def0.d_rpp_abzug_stats>)
tag0.rpp_message = <def0.d_keine_punkte>
ELSEIF (<int> > <skillclass.int>)
tag0.rpp_message = <def0.d_eigenschaften_steigern>
ELSE
tag0.rpp_message = <def0.d_eigenschaft_erhoehen>
local.rpp_gesamt -= <def0.d_rpp_abzug_stats>
DB.QUERY "UPDATE charakter_daten SET RPP_Gesamt='<dlocal.RPP_Gesamt>' WHERE username='<account.name>' AND UID='<uid>';"
int +=1
ENDIF
dialog d_rpp_1
// ******************************************************************************************************************************
// * GM command *
// ******************************************************************************************************************************
[PLEVEL 2]
rpp
rpn
// ******************************************************************************************************************************
// * Give Player RPP Points *
// ******************************************************************************************************************************
[FUNCTION rpp]
IF (<dargs> > 1000)
smsg @<def.def_smsg_sys>,3 This are too much amoung of points!
ELSEIF (<dargs> == 0)
smsg @<def.def_smsg_sys>,3 Zero is a little bit to low.
ELSE
smsg @<def.def_smsg_info>,3 Choose a player, who will get <dargs> RPPs.
targetfg f_rpp <dargs>,0
ENDIF
// ******************************************************************************************************************************
// * Remove Player RPP Points *
// ******************************************************************************************************************************
[FUNCTION rpn]
IF (<dargs> > 1000)
smsg @<def.def_smsg_sys>,3 This are too much amoung of points!
ELSEIF (<dargs> == 0)
smsg @<def.def_smsg_sys>,3 Zero is a little bit to low.
ELSE
smsg @<def.def_smsg_info>,3 Choose a player, who will remove <dargs> RPPs.
targetfg f_rpp <dargs>,1
ENDIF
[FUNCTION f_rpp]
ref1=<argo.uid>
local.rpps=<argv[0]>
local.p=<argv[1]>
IF !(<ref1.isplayer>)
smsg @<def.def_smsg_sys>,3 That is not a player!
ELSE
DB.CONNECT
IF (<DB.CONNECTED>)
DB.QUERY SELECT * FROM charakter_daten WHERE username='<ref1.account.name>' AND UID='<ref1.uid>';
local.rpp_gesamt=<db.row.0.RPP_Gesamt>
IF (<dlocal.p> == 0)
local.RPP_Gesamt += <local.rpps>
local.RPP = <dlocal.rpps>
ELSEIF (<dlocal.p> == 1)
local.RPP_Gesamt -= <local.rpps>
local.RPP -= <dlocal.rpps>
ENDIF
IF (<dlocal.p> == 0)
IF (<ref1.tag0.rpp_on>)
ref1.smsg @<def.def_smsg_good>,3 You got <dlocal.rpps> RPP points.
ENDIF
serv.log <name> gave <dlocal.rpps> RPPs to player <ref1.name>.
smsg @<def.def_smsg_info>,3 You gave <dlocal.rpps> RPPs to player <ref1.name>.
local.rpp_name="<name> gave <dlocal.rpps> RPP Points to the account <ref1.account.name> and player name <ref1.name> at <serv.rtime><def.br>"
ELSEIF (<dlocal.p> == 1)
IF (<ref1.tag0.rpp_on>)
ref1.smsg @<def.def_smsg_info>,3 The Staff removed <dlocal.rpps> from you!
ENDIF
serv.log <name> removeed <dlocal.rpps> RPPs from player <ref1.name>.
smsg @<def.def_smsg_info>,3 You removed <dlocal.rpps> RPPs from player <ref1.name>.
local.rpp_name="<name> removed <dlocal.rpps> RPP Points from the account <ref1.account.name> and player name <ref1.name> at <serv.rtime> <def.br>"
ENDIF
DB.QUERY UPDATE charakter_daten SET RPP='<dlocal.RPP>',RPP_Gesamt='<dlocal.RPP_Gesamt>',rpp_name='<local.rpp_name>' WHERE username='<ref1.account.name>' AND UID='<ref1.uid>';
ELSE
smsg @<def.def_smsg_sys>,3 SQl Server is unavailable. Try it again later.
serv.log MySQL: Connection FAILED!
ENDIF
DB.CLOSE
ELSE
smsg @<def.def_smsg_sys>,3 You can only give Players RPP Points.
ENDIF
// ******************************************************************************************************************************
// * Player command *
// ******************************************************************************************************************************
[PLEVEL 1]
role
rpps
[FUNCTION role]
IF (<dtag0.rpp_on>)
tag0.rpp_on=
smsg @<def.def_smsg_info>,3 Now you will get no News about getting new RPP Points.
ELSE
tag0.rpp_on = 1
smsg @<def.def_smsg_info>,3 Now you will get News about getting new RPP Points.
ENDIF
[FUNCTION rpps]
dialog d_rpp_1
[EOF]