Quest System C++ Nuovo quest trigger - Receive item trigger

Mitachi

Utente Emerald
20 Febbraio 2019
935
21
699
378
Ultima modifica:
Ciao ragazzi!
Come tutti sappiamo, l'unico trigger per le missioni su metin2 che viene attivato al ricevimento di un oggetto è il trigger di raccolta (when 19.pickup begin).
Sfortunatamente, questo copre solo il caso in cui raccogli un oggetto da terra, quindi è molto limitato.
Alcune persone chiedevano di migliorarlo, quindi ho creato un nuovo trigger, con il quale puoi coprire altri casi.

L'idea è quella di arricchirlo col tempo ed avere un trigger che conta tutti gli ottenimenti possibili, metti che vuoi fare una quest
dove raggiunto un tot numero di item X, questi si scambino automaticamente con item Y, l'unico modo per farlo è costringere il giocatore a raccogliere l'oggetto

Per ora funziona in questi casi:

Commercio
Acquista da negozio npc
Acquista da negozio npcEx
Acquista da negozio pc
Raccogli da terra
/item command(per test)


Esempio:
.gif


Download:

1655956455170howtodownloadgithub.png


Quest esempio se vuoi utilizzarlo per swappare item in real time:​
C++:
quest swap_item begin
    state start begin
        when 70001.receive begin

            local item_to_change = 70001
            local count_needed = 10

            local reward_vnum = 19
            local reward_count = 1

            while(pc.count_item(item_to_change) >= count_needed) do
                if not pc.enough_inventory(reward_vnum) then
                    syschat("You don't have enough space to receive the item, free up space.")
                    syschat("After freeing up space, you will have to receive it again.")
                    break
                end
                pc.remove_item(item_to_change, count_needed)
                pc.give_item2(reward_vnum, reward_count)
                syschat(string.format("Congratulations! You have collected %s x %d! In return you will receive: %s x %d", item.get_name(item_to_change), count_needed, item.get_name(reward_vnum), reward_count ))
            end

        end
    end
end
NB: Se hai alcuni sistemi che interagiscono con oggetti, dovrai aggiungere una riga di codice al nuovo caso, puoi chiedere info qui sotto.​