Jump to content

[HELP] Infinite running script


Ludo

Recommended Posts

Salve a tutti, sono nuovo nella community e questo è il mio primo post. Non ho trovato la sezione "presentazione" o cose simili quindi penso che non ce ne sia bisogno. Comunque siccome è di buona regola presentarsi, vi do una breve descrizione di me:

Sono un ragazzo di 13 anni e scripto in lua da circa 5-6 mesi. Me la cavo abbastanza bene anche se le cose che non capisco sono molte, come per esempio le funzioni legate a table. Infatti il mio problema riguarda proprio questo:

Ho creato uno script per il joinquit con una tabella, il problema è che non va, perchè nel debugscript mi esce scritto:

ERROR: Infinite/too long execution (nome_script)

Aborting; infinite running script in nome_script

Non capisco cosa ci sia di sbagliato... Comunque lo script serve per trovare la nazione dalla quale entra il giocatore.

IPList = { 
    ["31.201.76.0 - 31.201.76.255"] = "AD", 
    --Una serie di valori (circa 1300 quindi circa 1300 linee) 
} 
  
function getPlayerCountry(player) 
    theIP = getPlayerIP(player) 
    IP1 = tostring(math.adjust(tonumber(gettok(theIP, 1, 46)))) 
    IP2 = tostring(math.adjust(tonumber(gettok(theIP, 2, 46)))) 
    IP3 = tostring(math.adjust(tonumber(gettok(theIP, 3, 46)))) 
    IP4 = tostring(math.adjust(tonumber(gettok(theIP, 4, 46)))) 
    IP = tonumber(tostring(IP1..IP2..IP3..IP4)) 
    for ip1, ip2 in pairs(IPList) do 
        if ip1 and ip2 then 
            IPStart = tostring(gettok(ip1, 1, 45)) 
            IPEnd = tostring(gettok(ip1, 2, 45)) 
            IPCode = tostring(ip2) 
            if IPStart ~= "" and IPEnd ~= "" and IPCode ~= "" then 
                IPS1 = tostring(math.adjust(tonumber(gettok(IPStart, 1, 46)))) 
                IPS2 = tostring(math.adjust(tonumber(gettok(IPStart, 2, 46)))) 
                IPS3 = tostring(math.adjust(tonumber(gettok(IPStart, 3, 46)))) 
                IPS4 = tostring(math.adjust(tonumber(gettok(IPStart, 4, 46)))) 
                IPE1 = tostring(math.adjust(tonumber(gettok(IPEnd, 1, 46)))) 
                IPE2 = tostring(math.adjust(tonumber(gettok(IPEnd, 2, 46)))) 
                IPE3 = tostring(math.adjust(tonumber(gettok(IPEnd, 3, 46)))) 
                IPE4 = tostring(math.adjust(tonumber(gettok(IPEnd, 4, 46)))) 
                IPS = tonumber(tostring(IPS1..IPS2..IPS3..IPS4)) 
                IPE = tonumber(tostring(IPE1..IPE2..IPE3..IPE4)) 
                if IP >= IPS and IP <= IPE then 
                    flag = IPCode 
                end 
            end 
        end 
    end 
    return flag or "N/A" 
end 

math.adjust è una cosa che ho fatto io ma sono sicuro che funzioni. Anche senza quella mi da sempre lo stesso errore, quindi il problema riguarda lo script di per se... Ho provato a mettere "break" con una tabella più piccola e funziona, ma con questa non va più... Spero possiate aiutarmi. Grazie in anticipo!

Link to comment

Non Complicarti la vita :mrgreen: Se vuoi il country ip te lo do io completo di chat "onPlayerJoin" + le bandiere nel scoreboard.

Se poi vuoi creare una cosa tutta tua non posso aiutarti perche per me questo è solo un hobby.Conosco il Lua ma non a questo punto :D

Posso dirti però che puoi benissimo chiamare le funzione che ti servono nell' admin panel.

La risorsa che ho io chiama l'ip del giocatore nel pannello admin e tramite un table converte la parola IT in italia,con questi elementi posso sia settare l'outputchat che il scoreboard.

Fammi Sapere.

Link to comment

Grazie della risposta Hunterix, ho già quello che dici tu, o se non è perfettamente uguale comunque è simile... Se ho capito quello che dici è tramite il file .csv, vero? Il problema è che di quello non capisco come aggiungere un range di indirizzi.. E poi secondo me, questo metodo è più preciso perchè comprende TUTTI gli ip che esistono..

Comunque grazie lo stesso per l' aiuto, penso che posterò nella sezione globale sperando che qualcun' altro riesca ad aiutarmi :)

OT: Ho visto i tuoi lavori e sono veramente fatti bene, quindi perchè hai scritto "Conosco il Lua ma non a questo punto"? Secondo me invece lo conosci molto bene, non ti sottovalutare :)

EDIT: La sezione esatta per postare questo problema qual è? Intendo la globale. Grazie ancora :P

Link to comment

Non so quale risorsa hai visto ma il mio country ip e personalizzato con tutti i country.

L'admin panel ha di base 178 bandiere e io le ho aggiunte tutte (quasi 300),in pratica ogni country worka e non ho mai visto un n/a nel mio server.

Se ti riferisci ad una risorsa della community sicuramente hai fra inteso.

Cmq se fai un country ip tuo è molto meglio :mrgreen: ,se ci riesci tanto di cappello.Per me è un lavoro molto stressante selezionare gli ip e dargli il titolo . . A TUTTI OMG. Non ti stressa scusa?

Ci passerai 3 4 giorni per farlo e alla fine avrai lo stesso risultato perche l'admin panel ha tutti gli ip ma non le bandiere.

La sezione che cerchi e scripting.

Per agevolare il lavoro ti consiglio di usare questo :

  
 exports.admin:getPlayerCountry(source) 
  

Quindi automaticamente ti chiama l'ip del giocatore.

puoi usarlo per questo :

  
 country  =  exports.admin:getPlayerCountry(source) 
        if country  ==  nil or country  ==  false then 
           country  =  "ZZ" 
  

Link to comment

Penso che continuerò quello che sto facendo ora >_>

Comunque

A TUTTI OMG. Non ti stressa scusa?
No non mi stressa perchè con le macro di notepad++ si fa velocemente. Altro che 3-4 giorni, in circa un ora si potrebbe fare tutto :)

Comunque grazie ancora per l' aiuto, e se mi potessidire dove postare nella sezione globale per il supporto, mi aiuteresti tanto.

Link to comment
Penso che continuerò quello che sto facendo ora >_>

Comunque

A TUTTI OMG. Non ti stressa scusa?
No non mi stressa perchè con le macro di notepad++ si fa velocemente. Altro che 3-4 giorni, in circa un ora si potrebbe fare tutto :)

Comunque grazie ancora per l' aiuto, e se mi potessidire dove postare nella sezione globale per il supporto, mi aiuteresti tanto.

Te l'ho detto . . .in scripting puoi chiedere aiuto

here : viewforum.php?f=91

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...