Quest [RELEASE]Banna & Sbanna account (in game)

Stato
Discussione chiusa ad ulteriori risposte.

Th3~J0k3r

Utente Emerald
18 Agosto 2011
1,435
59
148
423
Ultima modifica da un moderatore:
Salve ragazzi, oggi sono qui per presentarvi una quest migliorata nell'ambito ban & and sban in game (tramite quest).
Prima della mia modifica

  • Si bannava solamente il personaggio, con gli altri potevi loggarci tranquillamente :alesisi:
Dopo la mia modifica

  • puoi bannare tutto l'account scrivendo il nome del pg (deve essere online ovviamente) :asd:
  • i say sono colorati, vi fornirò le righe da mettere nel questfunctions e nel questlib.lua :rulz:
Quest Pt. 1
Codice:
quest ban begin
    state start begin
        when login with pc.is_gm() begin
            send_letter("Banna & Sbanna Player")
        end

        when button or info begin
            say_title("Banna & Sbanna Player[ENTER]")
            say("Cosa vuoi fare?[ENTER]")
            local scelta = select("Banna", "Sbanna", "Status account", "Chiudi")
            if scelta == 1 then
                say_title("Banna Player[ENTER]")
                say_yellow("Inserisci il nome del player che vuoi bannare")
                local myVid = pc.get_vid()
                local nome = tostring(input())
                local vid_pg = find_pc_by_name(nome)
                local myVid = pc.get_vid()
                if nome == pc.get_name() then
                    say_title("Banna Player[ENTER]")
                    say_red("Non puoi inserire il tuo nome.[ENTER]")
                    return
                elseif vid_pg == 0 then
                    say_title("Banna Player[ENTER]")
                    say_red("Il player non e' connesso[ENTER]")
                    return
                else           
                    say_title("Banna Player[ENTER]")
                    say_yellow("Inserisci la causa del ban")
                    local causa = tostring(input())

                    pc.select(vid_pg)
                    account_id = pc.get_account_id()
                    game . set_event_flag("banned_"..account_id, "1")
                    chat("Sei stato bannato!")
                    notice_all("Il player "..pc.get_name().." e' stato bannato per "..causa)

                    pc.select(myVid)
                    chat("Ban al player "..nome.." avvenuto con successo") 
                    chat("Account id: "..account_id)
                    chat("Fallo crashare col comando /dc + nick")   
                end

            elseif scelta == 2 then
                say_title("Sbanna account[ENTER]")
                say_yellow("Inserisci l'id dell'account che vuoi sbannare")
                local id_account = tonumber(input())
                if game.get_event_flag("banned_"..id_account) == 0 then
                    say_title("Sbanna account[ENTER]")
                    say_orange("L'id "..id_account.." non e' bannato.[ENTER]")
                    return
                end

                game.set_event_flag("banned_"..id_account, "0")
                say_title("Sbanna account[ENTER]")
                say_green("L'id "..id_account.." e' stato sbannato.[ENTER]")

            elseif scelta == 3 then
                say_title("Status account[ENTER]")
                say("Inserisci l'id dell'account di cui vuoi vedere lo status")
                local id_account = tonumber(input())
                local status = game.get_event_flag("banned_"..id_account)
                if status == 1 then
                    say_title("Status account[ENTER]")
                    say_red("L'id "..id_account.." e' bannato[ENTER]")
                else
                    say_title("Status account[ENTER]")
                    say_green("L'id "..id_account.." non e' bannato[ENTER]")
                end
            end
        end
    end
end

Quest Pt. 2
Codice:
quest ban_tentato_login begin
    state start begin
        when login or levelup with game . get_event_flag("banned_"..pc.get_account_id()) == 1 begin
            command ( "quit" )
            chat("Sei stato bannato ora sloggherai.")
        end
    end
end

Funzioni per abilitare i say colorati
Codice:
--**
--** Inserire queste funzioni nel questlib.lua
--**

---------------------------------------------------------------------------------------------

--** Inserire queste righe nel questlib.lua per visualizzare i colori dei say

function say_green(str)
    say(color256(0,255,0)..str..color256(196, 196, 196))
end

function say_light_yellow(str)
    say(color256(255,255,128)..str..color256(196, 196, 196))
end

function say_yellow(str)
    say(color256(255,255,53)..str..color256(196, 196, 196))
end

function say_orange(str)
    say(color256(255,191,24)..str..color256(196, 196, 196))
end

function say_red(str)
    say(color256(255, 0, 0)..str..color256(196, 196, 196))
end

function say_blue(str)
    say(color256(0, 0, 255)..str..color256(196, 196, 196))
end

function say_light_blue(str)
    say(color256(130, 192, 255)..str..color256(196, 196, 196))
end

---------------------------------------------------------------------------------------------

--**
--** Inserire queste righe nel quest_functions
--**

say_yellow
say_light_yellow
say_orange
say_blue
say_light_blue
say_red
say_green

P.S.
Se ci dovesse essere qualche bug ditemelo tranquillamente, ma non credo avendolo testato più e più volte.
 
Utile,ma secondo me dovresti abilitarlo solamente a tot persone.

Inviato dal mio ASUS_Z00ED utilizzando Tapatalk
 
Utile,ma secondo me dovresti abilitarlo solamente a tot persone.

Inviato dal mio ASUS_Z00ED utilizzando Tapatalk
Basta fare così
Codice:
 when login with pc.is_gm() begin
            if pc.get_name() == "[GM]Nome1" or pc.get_name() == "[GM]Nome2" then
                send_letter("Banna & Sbanna Player")
            end
end
 
Bravo per l'impegno
Un buon metodo/alternativo è quello di creare un user mysql da dare a poche persone con i seguenti permessi:
2u7pwr8.png


E' molto limitato come si può vedere ed inoltre è più gestibile
 
Bravo per l'impegno
Un buon metodo/alternativo è quello di creare un user mysql da dare a poche persone con i seguenti permessi:
2u7pwr8.png


E' molto limitato come si può vedere ed inoltre è più gestibile
Non lo sapevo, non sono molto pratico con mysql, preferisco gestire tutto quanto da quest, però se funziona è un'altra strada per stessa soluzione
 
Ciao Joker.
Complimenti per l'impegno in questo periodo!
Ti consiglio di usare le funzioni MySQL e mandare una query per bannare e settare lo Status dell'Account da OK a BLOCK e per sbloccarlo da BLOCK a OK.
Good luck ;)
 
Ciao Joker.
Complimenti per l'impegno in questo periodo!
Ti consiglio di usare le funzioni MySQL e mandare una query per bannare e settare lo Status dell'Account da OK a BLOCK e per sbloccarlo da BLOCK a OK.
Good luck ;)
Grazie mille! :orgoglio:
Se volessimo fare le cose veramente bene, bisognerebbe implementare il comando /ban nei source server (come ho già fatto nel mio mini progetto).

Le soluzioni migliori riguardo al ban sono come hai detto tu la query implementata nello script lua, oppure (secondo me opzione migliore) come ho detto sopra implementare quel comando.

P.S. Questo script si vede lontano un miglio che è un tapullo per bannare :asd: (infatti ti fa loggare, fa il comando quit e slogghi dopo 3 secondi). La vittima ha a diritto solo 3 secondi di libertà per il suo personaggio :myeah:
 
Grazie mille! :orgoglio:
Se volessimo fare le cose veramente bene, bisognerebbe implementare il comando /ban nei source server (come ho già fatto nel mio mini progetto).

Le soluzioni migliori riguardo al ban sono come hai detto tu la query implementata nello script lua, oppure (secondo me opzione migliore) come ho detto sopra implementare quel comando.

P.S. Questo script si vede lontano un miglio che è un tapullo per bannare :asd: (infatti ti fa loggare, fa il comando quit e slogghi dopo 3 secondi). La vittima ha a diritto solo 3 secondi di libertà per il suo personaggio :myeah:
Volendo oltre il comando ban, se proprio vorresti fare una cosa TOP, si potrebbe fare anche con GUI ahaha (Mh bell'idea)
 
Stato
Discussione chiusa ad ulteriori risposte.