Quest [RELEASE] New Exp on Kill Quest - MHLab

Stato
Discussione chiusa ad ulteriori risposte.

ManHunter

Utente Jade
14 Settembre 2009
986
112
781
821
Ultima modifica da un moderatore:
Salve,

oggi ho realizzato la mia prima quest per Metin2, un po' per curiosità, un po' per conoscenza (e perché dovrò realizzare un sistema molto carino, che prossimamente vi mostrerò ;) ).

Bando alle ciance, ecco la quest:

Vedi: http://pastebin.com/d1tvrAcv


Tale quest permette ai giocatori di ottenere ricompense all'uccisione di avversari di regni differenti.
L'assegnazione delle ricompense (exp, gold e oggetti) è completamente casuale, gestita da una probabilità del 65%.
Inoltre, vi è anche la probabilità di ottenere una ricompensa extra.

La quest è facilmente personalizzabile.

I valori più importanti sono contenuti in questa funzione:

Codice:
function GetScriptData(data)            local questData = { ['expConstMul'] = 3,
                                ['expMul'] = 25,
                                ['goldConstMul'] = 4,
                                ['goldMul'] = 20,
                                ['successProb'] = 65,
                                ['extraSuccessProb'] = 20,
                                ['numOfRewards'] = 2}
            return rawget(questData, data)

        end

I valori
Codice:
['expConstMul'] = 3,
['expMul'] = 25,
modificano l'ammontare dell'exp ottenuta.

I valori

Codice:
['goldConstMul'] = 4,
['goldMul'] = 20,
modificano l'ammontare dell'oro ottenuto.

I valori

Codice:
['successProb'] = 65,
['extraSuccessProb'] = 20,
modificano l'ammontare della percentuale di assegnazione della ricompensa e della ricompensa extra.


In questa funzione

Codice:
function GetRewardItem(reward, extra)            if extra == 1 then
                local extraRewardList = {    4592,
                                            7676 }
                return extraRewardList[reward]
            else
                local rewardList = {     1000,
                                        3902 }
                return rewardList[reward]
            end

        end
dovrete inserire, nei due array, gli id degli oggetti che vorrete far comparire come ricompensa.
Inoltre, dovrete aggiornare tale valore

Codice:
['numOfRewards'] = 2
allorquando aggiungerete oggetti all'array.



Scrivi di aggiungere rawget nel quest_functions, altrimenti iniziano a scrivere che non funziona


Molti sistemi usati nella quest sono sconveniente e obsoleti, lo riconosco. Nella prossima versione aggiungerò altre features e sistemerò quelle già implementate.

Saluti :D
 
Carina, ma non va bene. In questo modo mi basta prendere un pg livello 1 di n'altro regno, portarlo da me e farmo come un maiale xD

Dovresti, tramite npc.get_vid() che puoi ottenere con una dif che trovi sul sito di blackyuko, ottenere le info sul pg che killi, controllarne livello ed altre eventuali stat, e magari fare un sistema che dopo x kill a tizio lo mette in blacklist fino a tot tempo per evitare di farmare con troppa facilità.

L'idea di base però ci sta :)
 
Man ca*** ti c'è voluto un giorno solo...
In verità era già pronta ieri, ma solo oggi BlackYuko mi ha detto che era corretta... xD

Carina, ma non va bene. In questo modo mi basta prendere un pg livello 1 di n'altro regno, portarlo da me e farmo come un maiale xD

Dovresti, tramite npc.get_vid() che puoi ottenere con una dif che trovi sul sito di blackyuko, ottenere le info sul pg che killi, controllarne livello ed altre eventuali stat, e magari fare un sistema che dopo x kill a tizio lo mette in blacklist fino a tot tempo per evitare di farmare con troppa facilità.

L'idea di base però ci sta :)
E' esatto, è un problema che avevo in mente di risolvere. Purtroppo, non avevo trovato funzioni per ottenere il livello dell'avversario, quindi ho lasciato alla prossima versione l'onere di risolvere tale malfunzionamento. :P
 
Oggi non l'avevo compilata perché non ero a casa, comunque va bene ci sono solo due righe dove hai messo GetScriptData invece di exp_kill.GetScriptData . Ah, scrivi di aggiungere rawget nel quest_functions, altrimenti iniziano a scrivere che non funziona
 
Oggi non l'avevo compilata perché non ero a casa, comunque va bene ci sono solo due righe dove hai messo GetScriptData invece di exp_kill.GetScriptData . Ah, scrivi di aggiungere rawget nel quest_functions, altrimenti iniziano a scrivere che non funziona
Ok, perfetto!
Corretto ciò che hai segnalato e riportato il tuo suggerimento nell'open post! :D
 
Carina, però come han detto si potrebbe mettere un controllo del livello soprattutto. Ma bravo per l'impegno, Like :)
 
Essendo la tua prima quest direi che è un ottimo lavoro, se non per qualche erroruccio che ti hanno già riportato sopra.
Complimenti per il lavoro svolto :sisi:
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom