Unmantained Guida [RELEASE]3 In 1, HonorPoints + Item-Shop + ExpKillPG

Una guida contrassegnata come Unmantained contiene informazioni su un argomento obsoleto, non più utile o files non aggiornati da parte del creatore.
Stato
Discussione chiusa ad ulteriori risposte.

Sl3ven

Utente Platinum
23 Febbraio 2010
3,046
154
318
1,131
Ultima modifica da un moderatore:
Salve Inforge, Dato che la Release di mr-newtorn in LUA come struttura fà leggermente cagare e vi spiego il perchè :
Se uccido qualcuno in duello ricevo un punto però come item... in poche parole ho una slot piena inutilmente.... io cosa ho fatto?
Questo script lo ho da 2-3 Mesi ed è giunto il momento... xD
In Pratica la funzione è quella, Killare Qualunque pg e potete ricevere in maniera RANDOM ( casuale ) 1 Points, 2 Points , Nessun Points.
L'unica Differenza è che questi punti saranno ''virtuali'' cioè potrete sapere quanti ne avete semplicemente cliccando sul pannello ( papiro tipo missione ) sul lato sinistro e vi dirà i vostri HonorPoints, in questo modo non avete nessuna slot impegnata ecc...
Ecco Lo Script

PHP:
 quest honorpoints begin
    state start begin
        when login begin
            set_state(parte1)
        end
    end
    
    state parte1 begin
        when letter begin
            send_letter("Honor Points")
        end
        
        when button or info begin
            local nome = pc.get_name()
            game.set_event_flag(nome .. "_Honor",game.get_event_flag(nome .. "_Honor"))
            local b = game.get_event_flag(nome .. "_Honor")
            say_title("Honor Points")
            say("Attualmente hai:")
            say_reward(b .. " Honor Points")
        end
            
          when kill with npc.is_pc() and pc.level >= 80 and npc.get_empire() ~= pc.get_empire() begin
            local a = tostring(number(1,6))
            if a == 1 then
                local nome = pc.get_name()
                local c = game.get_event_flag(nome .. "_Honor") + 1
                game.set_event_flag(nome .. "_Honor",c)
                chat("Hai ricevuto 1 Honor Points")
            elseif a == 6 then
                local nome = pc.get_name()
                local c = game.get_event_flag(nome .. "_Honor") + 2
                game.set_event_flag(nome .. "_Honor",c)
                chat("Hai ricevuto 2 Honor Points")
            elseif a == 2 or a == 3 or a == 4 or a == 5 then
                chat("Hai ricevuto 0 Honor Points")
                return
            end
        end
    end
end
ITEM-SHOP HONOR POINTS
Cosa ce ne facciamo di punti senza poteri scambiare? xD
Logicamente ho pensato anche a questo.... Ecco quì
Con Questo Item-Shop potete scambiare i vostri HONOR-POINTS per bonus a tempo Es :
100 Honor Points Vi darà 24 Ore di 50% Mezziuomini e così via...
Script :
PHP:
function t()
say_title("Negozio Honor")
end

local nome = pc.get_name()
local h = game.get_event_flag(nome .. "_Honor")
local d = game.get_event_flag(nome .. "_Honor") - 50
local e = game.get_event_flag(nome .. "_Honor") - 90

t()
say("Benvenuto nel negozio Honor Points.")
say("Qui potrai scambiare i tuoi punti")
say("Honor per bonus.Scegli cosa fare:")
say_reward("Bonus 24 ore: 50 Honor Points.")
say_reward("Bonus 48 ore: 90 Honor Points.")
local a = select ("Bonus 24 Ore","Bonus 48 Ore","Chiudi")
if a == 3 then
    return
elseif a == 1 then
    t()
    say("Scegli quale bonus applicare per 24 ore:")
    local b = select ("VIT","STR","INT","DEX","Chiudi")
    if b == 5 then
        return
    elseif b == 1 then
        if h < 50 then
            t()
            say("Devi avere almeno 50 Honor Points.")
            say("Al momento hai:")
            say(h .. " Honor Points.")
        else
            t()
            say("Bonus applicato con successo.")
            affect.add_collect(apply.CON,50,60*60*24)
            game.set_event_flag(nome .. "_Honor", d )
            return
        end
    elseif b == 2 then
        if h < 50 then
            t()
            say("Devi avere almeno 50 Honor Points.")
            say("Al momento hai:")
            say(h .. " Honor Points.")
        else
            t()
            say("Bonus applicato con successo.")
            affect.add_collect(apply.STR,50,60*60*24)
            game.set_event_flag(nome .. "_Honor", d )
            return
        end
    elseif b == 3 then
        if h < 50 then
            t()
            say("Devi avere almeno 50 Honor Points.")
            say("Al momento hai:")
            say(h .. " Honor Points.")
        else
            t()
            say("Bonus applicato con successo.")
            affect.add_collect(apply.INT,50,60*60*24)
            game.set_event_flag(nome .. "_Honor", d )
            return
        end
    elseif b == 4 then
        if h < 50 then
            t()
            say("Devi avere almeno 50 Honor Points.")
            say("Al momento hai:")
            say(h .. " Honor Points.")
        else
            t()
            say("Bonus applicato con successo.")
            affect.add_collect(apply.DEX,50,60*60*24)
            game.set_event_flag(nome .. "_Honor", d )
            return
        end
    end
elseif a == 2 then
    t()
    say("Scegli quale bonus applicare per 48 ore:")
    local b = select ("VIT","STR","INT","DEX","Chiudi")
    if b == 5 then
        return
    elseif b == 1 then
        if h < 90 then
            t()
            say("Devi avere almeno 90 Honor Points.")
            say("Al momento hai:")
            say(h .. " Honor Points.")
        else
            t()
            say("Bonus applicato con successo.")
            affect.add_collect(apply.CON,50,60*60*24)
            game.set_event_flag(nome .. "_Honor", e )
            return
        end
    elseif b == 2 then
        if h < 90 then
            t()
            say("Devi avere almeno 90 Honor Points.")
            say("Al momento hai:")
            say(h .. " Honor Points.")
        else
            t()
            say("Bonus applicato con successo.")
            affect.add_collect(apply.STR,50,60*60*24)
            game.set_event_flag(nome .. "_Honor", e )
            return
        end
    elseif b == 3 then
        if h < 90 then
            t()
            say("Devi avere almeno 90 Honor Points.")
            say("Al momento hai:")
            say(h .. " Honor Points.")
        else
            t()
            say("Bonus applicato con successo.")
            affect.add_collect(apply.INT,50,60*60*24)
            game.set_event_flag(nome .. "_Honor", e )
            return
        end
    elseif b == 4 then
        if h < 90 then
            t()
            say("Devi avere almeno 90 Honor Points.")
            say("Al momento hai:")
            say(h .. " Honor Points.")
        else
            t()
            say("Bonus applicato con successo.")
            affect.add_collect(apply.DEX,50,60*60*24)
            game.set_event_flag(nome .. "_Honor", e )
            return
        end
    end
end
Al Momento è possibile ottenere solo VIT - DEX - STR - INT
Domani metterò anche gli altri bonus.
Credits: Brendon

RICORDO, IL TUTTO SENZA AVERE NULLA IN INVENTARIO!

EXP KILLANDO PG.
con questo script, killando dei pg potrete ricevere EXP

PHP:
quest itemexp begin
    state start begin
        when kill with npc . is_pc ( ) == true begin
            local b = pc.get_level()
            if b < 90 then
                return
            else
                local exp1 = tostring(number(1000,150000))
                pc . give_exp2 ( exp1 )
            end
        end
    end
end
Se Volete cambiare Punti exp da ricevere, basta cambiare quì
PHP:
                local exp1 = tostring(number(1000,150000))
 
Di base sono simili cambia solo il QF; Cmq si è più comodo degli itemm cmq puoi tranquillamente evitare la dichirazione di alcune variabili e fare il set in un'unica riga ;)
Saluti, DrAg0n
 
di base però.... però siccome Ganja non ha mai trattato il lua ha fatto cose semplicissime
 
Perdona la domanda ignorante ma:

when kill with npc.is_pc() and npc.get_empire() != pc.get_empire()
L'istruzone viene eseguita alla kill di un Pg, e quando i due regni sono diversi perchè "==" è l'opposto di "!=" ma cosi ti da i punti solo se sei di regno differente,e non se duelli con uno del tuo regno giusto?
 
Ultima modifica:
Esatto dimenticavo questo particolare, risolvo subito wait
Edit: Aggiustato, ORa solo se sei 80 ricevi punti
 
Ultima modifica:
Inoltre:
if a == 1 then
local nome
= pc.get_name()
local c = game.get_event_flag(nome .. "_Honor") + 1
game
.set_event_flag(nome .. "_Honor",c)
chat("Hai ricevuto 1 Honor Points")
elseif
a == 6 then
local nome
= pc.get_name()
local c = game.get_event_flag(nome .. "_Honor") + 2
game
.set_event_flag(nome .. "_Honor",c)
chat("Hai ricevuto 2 Honor Points")
elseif
a == 2 or a == 3 or a == 4 or a == 5 then
chat
("Hai ricevuto 0 Honor Points")
return
end
Al posto di If / elseif / elseif non conviene usare uno Switch?

Inoltre non si potrebbe far cosi?
game
.set_event_flag(
pc.get_name().. "_Honor",game.get_event_flag(pc.get_name() .. "_Honor") + 1)

Saluti, il solito dragon xD
 
dragon mi stai solo complicando la cosa... lascio così come stà e diavolo.... alla fie invece di scrivere nome dovrei scrivere pc.get_name()..
 
Veramente è semplificata, e essendoci meno variabili dichiarate è meno pensate, anche se di poco :P

Cmq vabbe era per avere una sintassi migliore :P

Vado notte, buon lavoro :P
 
Il problema è peggiore di quello che stai a dire Dragon o.o perché usare una variabile globale?? A che scopo?? Usa invece pc.getqf e pc.setqf =)
 
Questo script era su un server tempo fa , non ricordo nome .... Quindi direi copiato.
Copiato... mmm.. Quindi slash è entrato nel server di questi tizi che hai nominato, bucandogli le protezioni , scaricando/rubando lo script degli honor e poi l'ha postato su IF.. Poi ovviamente ha deletato tutto perchè aveva tempo libero facendo cosi chiudere anche questo server di cui parli :D:D:D

Non male come teoria... Amras vai a vedere patate va !

Bravo Slash.

ps:

tranquillo non me ne faccio nulla ^^... se solo potessi convertirli in € diventerei milionario
84 euro? Milionario ? :D
 
Copiato... mmm.. Quindi slash è entrato nel server di questi tizi che hai nominato, bucandogli le protezioni , scaricando/rubando lo script degli honor e poi l'ha postato su IF.. Poi ovviamente ha deletato tutto perchè aveva tempo libero facendo cosi chiudere anche questo server di cui parli :D:D:D

Non male come teoria... Amras vai a vedere patate va !

Bravo Slash.

ps:

84 euro? Milionario ? :D


ahahha la tua teoria non fà una piega.

84 euro no però... magari postare a infinito fino ad arrivare ad una somma incomprensibile di Reputazione e convertirli in banconote da 5 € <.<
ahahahha
 
Complimenti a SlashDomy per aver condiviso il lavoro.
Avrei però un paio di domande:

In questa parte
Codice:
[FONT=Century Gothic][COLOR=#000000][COLOR=#0000BB]          when kill with npc[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]is_pc[/COLOR][COLOR=#007700]() and [/COLOR][COLOR=#0000BB]pc[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]level [/COLOR][COLOR=#007700]>= [/COLOR][COLOR=#0000BB]80 [/COLOR][COLOR=#007700]and [/COLOR][COLOR=#0000BB]npc[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]get_empire[/COLOR][COLOR=#007700]() ~= [/COLOR][COLOR=#0000BB]pc[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]get_empire[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]begin
[/COLOR][/COLOR][/FONT]

la funzione ## pc.level >= 80 ## prende il livello del pg che killa, mentre le funzioni npc.get_empire prende il regno del pg killato.
Esiste una funzione simile che prenda anche il livello del pg killato? cosi da settare gli honor point in modo che si possano prendere solo da pg fino a un X di differenza evitando che la gente si metta a killare a ripetizione propri secondi pg di liv 1 creati apposta.
Sempre per lo stesso motivo, si possono settare dei qf che limitino il "drop" degli honor point ad esempio non piu di 1 punto ogni 6-12 o 24 ore. Quindi se io killo il tuo pg ricevo gli honor point, ma non potrò riceverne altri fino a domani.

Non so se è chiaro quello che ho detto >_>
 
B3s io ci ho messo un bel pò x trovare quella funzione e dovrebbe essere così :

PHP:
        when kill with npc.is_pc() and npc.get_empire() != pc.get_empire() and pc.get_level() >= 80 begin
per l'altro tuo suggerimento, si ho capito però io la vedo una sciocchezza come cosa, poi bhò
 
Ultima modifica:
Edit: Non avevo letto bene, i crediti ci sono :D
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom