Originally Posted by JeeX
N1ce Release,
hab aber ein Problem damit...
Hab alles genau so eingefügt; Clientside habe ich keinen Fehler!
Serverside habe ich das:
[Only registered and activated users can see links. Click Here To Register...]
Compilte Quest:
notarget/button
Code:
local cmd = new_switcher . client_command ( new_switcher . getinput ( "NEWSWITCHER QUESTCMD" ) )
if cmd [ 1 ] == "USE_SWITCHER" then
if cmd [ 2 ] == "76026" then
if pc . getqf ( "login" ) >= get_time ( ) then syschat ( "Du kannst erst 5 Seckunden nach dem einloggen Gegenstand verzaubern+ verwenden" ) return end
if not pc . can_warp ( ) then syschat ( "Bitte warte 10 Seckunden" ) return end
if pc . is_dead ( ) then syschat ( "du musst erst auf stehen bevor du Gegenstand verzaubern+ verwenden kannst." ) return end
if pc . is_polymorphed ( ) then syschat ( "Du kannst Gegenstand verzaubern+ nicht verwenden so lange du verwandelt bist" ) return end
cmdchat ( "NEWSWITCHER CLEAR_BONUS" )
new_switcher . check_actual_bonis ( tonumber ( cmd [ 3 ] ) , tonumber ( cmd [ 4 ] ) , tonumber ( cmd [ 5 ] ) )
end
elseif cmd [ 1 ] == "SWITCH" then
item . select_cell ( tonumber ( cmd [ 3 ] ) )
local itemVnum = item . get_vnum ( )
if itemVnum ~= tonumber ( cmd [ 2 ] ) then syschat ( "Ein Fehler ist aufgetreten!" ) return end
new_switcher . switch_boni ( cmd , itemVnum )
end
notarget/info
Code:
local cmd = new_switcher . client_command ( new_switcher . getinput ( "NEWSWITCHER QUESTCMD" ) )
if cmd [ 1 ] == "USE_SWITCHER" then
if cmd [ 2 ] == "76026" then
if pc . getqf ( "login" ) >= get_time ( ) then syschat ( "Du kannst erst 5 Seckunden nach dem einloggen Gegenstand verzaubern+ verwenden" ) return end
if not pc . can_warp ( ) then syschat ( "Bitte warte 10 Seckunden" ) return end
if pc . is_dead ( ) then syschat ( "du musst erst auf stehen bevor du Gegenstand verzaubern+ verwenden kannst." ) return end
if pc . is_polymorphed ( ) then syschat ( "Du kannst Gegenstand verzaubern+ nicht verwenden so lange du verwandelt bist" ) return end
cmdchat ( "NEWSWITCHER CLEAR_BONUS" )
new_switcher . check_actual_bonis ( tonumber ( cmd [ 3 ] ) , tonumber ( cmd [ 4 ] ) , tonumber ( cmd [ 5 ] ) )
end
elseif cmd [ 1 ] == "SWITCH" then
item . select_cell ( tonumber ( cmd [ 3 ] ) )
local itemVnum = item . get_vnum ( )
if itemVnum ~= tonumber ( cmd [ 2 ] ) then syschat ( "Ein Fehler ist aufgetreten!" ) return end
new_switcher . switch_boni ( cmd , itemVnum )
end
notarget/login
Code:
cmdchat ( "NEWSWITCHER QID/" .. q . getcurrentquestindex ( ) )
pc . setqf ( "login" , get_time ( ) + 5 )
state
Code:
new_switcher={["start"]=0,getinput= function (par)cmdchat ( "getinputbegin" )
local ret = input ( cmdchat ( par ) )
cmdchat ( "getinputend" )
return ret
end ,client_command= function (command_)return new_switcher . split_ ( command_ , "#" )
end ,item_get_wearflag= function (itemVnum)return tonumber ( mysql_query ( "SELECT wearflag FROM player.item_proto WHERE vnum='" .. itemVnum .. "';" ) . wearflag [ 1 ] )
end ,get_bonis= function ()local result = { }
local bonis = io . open ( "/usr/home/game/share/locale/germany/quest/item_attr.txt" , "r" )
for boni in bonis : lines ( ) begin
local value = new_switcher . split_ ( boni , "#" )
table . insert ( result , { value [ 1 ] , value [ 2 ] , value [ 3 ] , value [ 4 ] , value [ 5 ] , value [ 6 ] , value [ 7 ] , value [ 8 ] , value [ 9 ] , value [ 10 ] , value [ 11 ] , value [ 12 ] , value [ 13 ] , value [ 14 ] , value [ 15 ] } )
end
return result
end ,get_bonis_via_wearfleg= function (wearfleg)local bonis = {
[ 1 ] = { } ,
[ 2 ] = { } ,
[ 4 ] = { } ,
[ 8 ] = { } ,
[ 16 ] = { } ,
[ 32 ] = { } ,
[ 64 ] = { } ,
[ 256 ] = { } ,
}
local wearflag_lines = { [ 8 ] = 16 , [ 9 ] = 1 , [ 10 ] = 8 , [ 11 ] = 4 , [ 12 ] = 32 , [ 13 ] = 2 , [ 14 ] = 256 , [ 15 ] = 256 }
local all_bonis = new_switcher . get_bonis ( )
for i = 1 , table . getn ( all_bonis ) begin
for a = 8 , 15 begin
if tonumber ( all_bonis [ i ] [ a ] ) == 5 or tonumber ( all_bonis [ i ] [ a ] ) == 1 then
local value_number = apply [ tostring ( all_bonis [ i ] [ 1 ] ) ]
table . insert ( bonis [ wearflag_lines [ a ] ] , { value_number , all_bonis [ i ] [ 3 ] , all_bonis [ i ] [ 4 ] , all_bonis [ i ] [ 5 ] , all_bonis [ i ] [ 6 ] , all_bonis [ i ] [ 7 ] } )
end
end
end
return bonis [ tonumber ( wearfleg ) ]
end ,get_random_bonis= function (itemVnum,attr_count,wearfleg)local result = { }
local bonis = new_switcher . get_bonis_via_wearfleg ( wearfleg )
for i = 1 , attr_count begin
local number = math . random ( 1 , table . getn ( bonis ) )
table . insert ( result , { bonis [ number ] [ 1 ] , bonis [ number ] [ math . random ( 2 , 6 ) ] } )
table . remove ( bonis , number )
end
for i = 1 , table . getn ( result ) begin
cmdchat ( string . format ( "NEWSWITCHER NEW_ATTR/%d/%d" , tonumber ( result [ i ] [ 1 ] ) , tonumber ( result [ i ] [ 2 ] ) ) )
pc . setqf ( string . format ( "switcher_attrtype_%s" , i - 1 ) , result [ i ] [ 1 ] )
pc . setqf ( string . format ( "switcher_attrvalue_%s" , i - 1 ) , result [ i ] [ 2 ] )
end
cmdchat ( "NEWSWITCHER OPEN" )
end ,check_actual_bonis= function (cell,slot,wearflag)local attr_count = 0
item . select_cell ( tonumber ( cell ) )
local itemVnum = item . get_vnum ( )
pc . setqf ( "itemVnum" , 0 )
pc . setqf ( "cell" , 0 )
pc . setqf ( "itemVnum" , itemVnum )
pc . setqf ( "cell" , tonumber ( cell ) )
local check_flag = new_switcher . item_get_wearflag ( itemVnum )
if check_flag ~= tonumber ( wearflag ) then syschat ( "Den Client zu manipulieren ist nicht erlaubt und wird bestraft!" ) return end
local attr = { item . get_attribute ( 0 ) , item . get_attribute ( 1 ) , item . get_attribute ( 2 ) , item . get_attribute ( 3 ) , item . get_attribute ( 4 ) }
if attr [ 1 ] [ 1 ] == 0 and attr [ 1 ] [ 2 ] == 0 then syschat ( "Du musst erst Attribute hinzufügen!" ) return end
item . select_cell ( tonumber ( slot ) )
local switcher_vnum = item . get_vnum ( )
if switcher_vnum ~= 76026 then syschat ( "Den Client zu manipulieren ist nicht erlaubt und wird bestraft!" ) return end
item . remove ( )
for i = 1 , table . getn ( attr ) begin
if attr [ i ] [ 2 ] ~= 0 then
attr_count = attr_count + 1
cmdchat ( string . format ( "NEWSWITCHER OLD_ATTR/%d/%d/%d" , itemVnum , attr [ i ] [ 1 ] , attr [ i ] [ 2 ] ) )
end
end
new_switcher . get_random_bonis ( itemVnum , attr_count , tonumber ( wearflag ) )
end ,switch_boni= function (cmd,itemVnum)local attrs = { }
local count = ( table . getn ( cmd ) - 3 ) / 2
local cell , vnum = pc . getqf ( "cell" ) , pc . getqf ( "itemVnum" )
if itemVnum ~= vnum or cell ~= tonumber ( cmd [ 3 ] ) then syschat ( "Den Client zu manipulieren ist nicht erlaubt und wird bestraft!" ) return end
for i = 1 , count begin
table . insert ( attrs , { pc . getqf ( string . format ( "switcher_attrtype_%s" , i - 1 ) ) , pc . getqf ( string . format ( "switcher_attrvalue_%s" , i - 1 ) ) } )
pc . setqf ( string . format ( "switcher_attrtype_%s" , i - 1 ) , 0 )
pc . setqf ( string . format ( "switcher_attrvalue_%s" , i - 1 ) , 0 )
end
item . select_cell ( tonumber ( cmd [ 3 ] ) )
for i = 1 , table . getn ( attrs ) begin
item . set_attribute ( i - 1 , attrs [ i ] [ 1 ] , attrs [ i ] [ 2 ] )
end
syschat ( "Du hast die Verbesserung geändert" )
end ,split_= function (string_,delimiter)local result = { }
local from = 1
local delim_from , delim_to = string . find ( string_ , delimiter , from )
while delim_from begin
table . insert ( result , string . sub ( string_ , from , delim_from - 1 ) )
from = delim_to + 1
delim_from , delim_to = string . find ( string_ , delimiter , from )
end
table . insert ( result , string . sub ( string_ , from ) )
return result
end }
Kann mir da jemand helfen? bzw. da etwas rauslesen???
Danke!
|