[Release] Ingame Banpanel

12/31/2011 18:34 lautlosertot#16
E:function select2(tab) fehlte^^
12/31/2011 18:50 Mijago#17
Quote:
Originally Posted by lautlosertot View Post
E:function select2(tab) fehlte^^
Sie fehlte nicht, sie ist in der Questlib und muss nur in die quest_functions eingetragen werden ..
12/31/2011 19:04 £αšεℜ™#18
Niice geht klappt ohne fehler
12/31/2011 19:49 lautlosertot#19
jetzt kackt mein server immer mit concetion refused ab xDDDD nur weil ich
command("dc "..q.name[auswahl].."") einbauen wollte was nichtmal funkt-.-
01/01/2012 08:13 ProfiFighter#20
Quote:
Originally Posted by Mijago View Post
look in my Questlib:
Deine Funktion ist schon beinahe perfekt, aber guck sie dir mal genauer an, denn ich bin alles durchgegangen und hab' bermerkt das die Funktion bei einer viel größeren Liste ein paar Fehler aufwirft, aber die kann man ganz leicht fixxen. Dann würde ich das mit "Abbrechen" in die Funktion reinnehmen, damit nicht ggf. "Nächste Seite" und dann "Abbrechen" kommt, das wär nämlich etwas blöd - schöner wer's wenn bei der letzten Auswahl statt "Nächste Seite" "Abbrechen" kommen würde. Naja, das ist meine Meinung - dh. du kannst sie auch ignorieren xD. Aber ich dank dir auch für deinen Einfallsreichtum, denn du hast mich auf eine großartige Idee gebracht, die ich vllt. nie realisieren werden, aber dennoch hat das was zu bedeuten xD.
MfG
01/01/2012 08:20 ProfiFighter#21
Quote:
Originally Posted by Mijago View Post
look in my Questlib:
Deine Funktion ist schon beinahe perfekt, aber guck sie dir mal genauer an, denn ich bin alles durchgegangen und hab' bermerkt das die Funktion bei einer viel größeren Liste ein paar Fehler aufwirft, aber die kann man ganz leicht fixxen. Dann würde ich das mit "Abbrechen" in die Funktion reinnehmen, damit nicht ggf. "Nächste Seite" und dann "Abbrechen" kommt, das wär nämlich etwas blöd - schöner wer's wenn bei der letzten Auswahl statt "Nächste Seite" "Abbrechen" kommen würde. Naja, das ist meine Meinung - dh. du kannst sie auch ignorieren xD. Aber ich dank dir auch für deinen Einfallsreichtum, denn du hast mich auf eine großartige Idee gebracht, die ich vllt. nie realisieren werde, aber dennoch hat das was zu bedeuten xD.
MfG
01/01/2012 09:32 Mijago#22
Quote:
Originally Posted by ProfiFighter View Post
Deine Funktion ist schon beinahe perfekt, aber guck sie dir mal genauer an, denn ich bin alles durchgegangen und hab' bermerkt das die Funktion bei einer viel größeren Liste ein paar Fehler aufwirft, aber die kann man ganz leicht fixxen. Dann würde ich das mit "Abbrechen" in die Funktion reinnehmen, damit nicht ggf. "Nächste Seite" und dann "Abbrechen" kommt, das wär nämlich etwas blöd - schöner wer's wenn bei der letzten Auswahl statt "Nächste Seite" "Abbrechen" kommen würde. Naja, das ist meine Meinung - dh. du kannst sie auch ignorieren xD. Aber ich dank dir auch für deinen Einfallsreichtum, denn du hast mich auf eine großartige Idee gebracht, die ich vllt. nie realisieren werden, aber dennoch hat das was zu bedeuten xD.
MfG
Deine Meinung Zählt schon was :D
hab die Func nur mit 11 Einträgen alá 5/Seite getestet, soweit hatt's geklappt, mehr braucht man ja normalerweise auch nicht..

Wenn du sie (vor mir :p) verbesserst, schreib sie mir bitte, dann kann ich sie in die Lib einfügen :)

PHP Code:
function select2(tab)
    
local max tab[1]; table.remove(tab,1)
    
local tablen,outputstr,outputcount,nextc,incit table.getn(tab),"",0,0,0
    table
.foreach(tab,
        function(
i,l)
            
outputcount outputcount 1
            
if outputcount == 1 then
                outputstr
=outputstr..'sel = select("'..l..'"'
            
elseif outputcount == max and tablen outputcount+incit  then
                
if tablen ~= outputcount+incit+1 then
                    outputstr
=outputstr..',"'..l..'","Nächste Seite") + '..incit..' '
                    
if nextc 0 then
                        outputstr 
outputstr..'end '
                    
end
                    outputstr
=outputstr..'; if sel == '..(incit+max+1)..' then '        -- Anfangen der neuen Abfrage
                    nextc
outputcountincitnextc+1,0,incit+max
                
else
                    
outputstr=outputstr..',"'..l..'"'
                
end
            
else
                
outputstr=outputstr..',"'..l..'"'
            
end
        end
    
)
    
outputstr outputstr..') + '..incit
    
if nextc 0 then
        outputstr 
outputstr..' end'
    
end
    outputstr
outputstr.. '; return sel'
    
print(outputstr)
    
local sel assert(loadstring(outputstr))()
    
tablen,outputstr,outputcount,nextc,incit nil,nil,nil,nil,nil -- Speicher freimachen
    
return sel
end 
Code:
>dofile('questing.lua')
Questlib by Mijago | 1.1.2012 - Happy new Year!
>local arr = {}
>for i=1,22,1 do
>    arr[i] = i
>end
>arr[1] = 5
>select2(arr)
sel = select("2","3","4","5","6","Nõchste Seite") + 0 ; if sel == 6 then sel = s
elect("7","8","9","10","11","Nõchste Seite") + 5 end ; if sel == 11 then sel = s
elect("12","13","14","15","16","Nõchste Seite") + 10 end ; if sel == 16 then sel
 = select("17","18","19","20","21","22") + 15 end; return sel
Freut mich, dass ich dir einen kleinen Denkanstoß geben konnte. Kann aus Lua noch mehr rauszaubern :)

Vielleicht kann man ja mal zusammen an irgendetwas arbeiten? :>

lg Mijago
01/01/2012 12:33 ProfiFighter#23
So gefällt mir die Funktion schon viel besser :). Konnte leider erst jetzt ins Internet, da ich bis eben noch woanders war... Also ich weiß ja nicht ob ich mit dir mal an was arbeiten kann, da ich meistens inaktiv bin wegen meinem RL und sow - zudem bin ich nur Hobbyscripter und nicht so ein Genie wie du^^. Du hast Ideen die mehr als fantastisch sind und zudem biste nicht so ein Egomane wie ein paar Andere hier in E*PvP...
01/01/2012 12:45 Mijago#24
Ich sehe das als Lob o: Danke :D
Aber Genie? Naja, hält sich in Grenzen :>

Nun, wenn du wenig Zeit hast, kannst du mir ja dennoch ein paar Ideen' sagen, was ich noch so machen könnte.. :D
01/01/2012 13:44 cihad2008#25
Nice (Y)
01/01/2012 18:15 £αšεℜ™#26
PHP Code:
quest ingamebann2 begin
    state start begin
        when 20095.chat
."Bannen/Entbannen" with pc.is_gm() begin
            say
("Was möchtest du tun?")
            
local s select('Bannen','Entbannen',"Nichts")
            if 
== 3 then return end
            local ban
,bantxt,bantxt2 "BLOCK","bannen","gebannt"
            
if == 2 then
                ban
,bantxt,bantxt2 "OK","entbannen","entbannt"
            
end
            say
(col.blue('Spieler '..bantxt)); say('[ENTER]Gib den Spielernamen ein.[ENTER](ein Teil reicht auch)')
            
local inp input(); inp mysql_escape(inp)
            if 
inp == "" or inp == pc.get_name() then
                say
(col.red('Ungültige Eingabe.[ENTER]Abbruch!'))
                return
            
end
            local q 
mysql_query('select * from player.player WHERE name LIKE \\"%'..inp..'%\\" AND name NOT like \\"%[%\\"''root'daroo'5.58.220.100')
            if 
== "ERROR" then
                say
(col.red('Fehler beim Lesen der Daten oder es existiert niemand mit diesem Namen.'))
                return
            
end
            say
('Wähle den User, der '..bantxt2..' werden soll:')
            
local wahl q.nametable.insert(wahl,"-Abbruch-")
            
table.insert(wahl,1,6)
            
local auswahl select2(wahl)
            if 
wahl[auswahl] == "-Abbruch-" then
                
return
            
end
            say
('Den Spieler \\"'..q.name[auswahl]..'\\" wirklich '..bantxt..'?')
            if 
select("Ja","Nein") == 2 then
                
return
            
end
            mysql_query
('UPDATE account.account SET status = \\"'..ban..'\\" WHERE id = '..q.account_id[auswahl]..' LIMIT 1'root'daroo'5.58.220.100')
            say('
Der Spieler wurde gebannt.')
        end
    end
end 
Error occured on compile ingamebann2.quest

Ich weiss nicht worann es liegt
01/01/2012 20:26 lautlosertot#27
like \\"%[%\\"''root'daroo'5.58.220.100') ein ' zuviel glaub ich^^
01/02/2012 08:42 Mijago#28
\\"%[%\\"''root'daroo'5.58.220.100')
PHP Code:
 \\"%[%\\"','root','daroo',nil,'5.58.220.100') 
01/02/2012 09:22 TeRRoRSiZex3#29
Naja Nice wie immer von dir halt^^

Thanks given^^
01/02/2012 17:38 £αšεℜ™#30
PHP Code:
quest ingamebann2 begin
    state start begin
        when 20095.chat
."Bannen/Entbannen" with pc.is_gm() begin
            say
("Was möchtest du tun?")
            
local s select('Bannen','Entbannen',"Nichts")
            if 
== 3 then return end
            local ban
,bantxt,bantxt2 "BLOCK","bannen","gebannt"
            
if == 2 then
                ban
,bantxt,bantxt2 "OK","entbannen","entbannt"
            
end
            say
(col.blue('Spieler '..bantxt)); say('[ENTER]Gib den Spielernamen ein.[ENTER](ein Teil reicht auch)')
            
local inp input(); inp mysql_escape(inp)
            if 
inp == "" or inp == pc.get_name() then
                say
(col.red('Ungültige Eingabe.[ENTER]Abbruch!'))
                return
            
end
            local q 
mysql_query('select * from player.player WHERE name LIKE \\"%'..inp..'%\\" AND name NOT like "%[%\\"','root','daroo',nil,'5.58.220.100)
            if q == "ERROR" then
                say(col.red('
Fehler beim Lesen der Daten oder es existiert niemand mit diesem Namen.'))
                return
            end
            say('
Wähle den Userder '..bantxt2..' werden soll:')
            local wahl = q.name; table.insert(wahl,"-Abbruch-")
            table.insert(wahl,1,6)
            local auswahl = select2(wahl)
            if wahl[auswahl] == "-Abbruch-" then
                return
            end
            say('
Den Spieler \\"'..q.name[auswahl]..'\\" wirklich '..bantxt..'?')
            if select("Ja","Nein") == 2 then
                return
            end
            mysql_query('
UPDATE account.account SET status = \\"'..ban..'\\" WHERE id '..q.account_id[auswahl]..' LIMIT 1','root','daroo','5.58.220.100)
            
say('Der Spieler wurde gebannt.)
        end
    end
end 
So müsste sie gehen oder?