Domanda [Richiesta]Una quest un pò particolare...

Stato
Discussione chiusa ad ulteriori risposte.
15 Dicembre 2011
1,812
95
464
749
Ultima modifica:
Ragazzi siccome con il mob_drop_item riscontro alcuni problemi , qualcuno potrebbe gentilmente fornirmi una quest che all'uccisione di un determinato mob ti compaia un item scelto a caso tra quelli elencati ? Provo a spiegarmi meglio : Per esempio la quest deve prendere gli item da 53001 a 53017 e la % deve essere ( per esempio ) 60%. Io vorrei che ogni volta che killo un mob ci sia il 60% che un item a caso scelto da 53001 a 53017 appaia nel mio inventario... E' una cosa fattibile ?
 
fai un array e ci metti un random. io non so il lua ma credo che si siano il random e gli array

Inviato dal mio Nexus 5 utilizzando Tapatalk
 
PHP:
quest qualcosa begin
    state start begin
        when dio.kill begin
            local perc = 60
            if number(1, 100) > perc then return end
            pc.give_item2(number(53001, 53017), 1)
        end
    end
end
 
Ultima modifica:
PHP:
quest drop begin
    state start begin
        when kill with npc.get_race() == 2597 or npc.get_race() == 2595 or npc.get_race() == 8057 begin -- Mob
			local item = {53001, 53002, 53003, 53005, 53006, 53007, 53008, 53009, 53010, 53011, 53012, 53013, 53014, 53015, 53016, 53017} -- Array Item 
			local prob = number(1, 100) -- Probabilità drop da 1 a 100
			if prob >=50 then -- 50% di drop
				local a = math.random(16) -- a caso da 1 a 16
				pc.give_item2(item[a],1) --Ricevi Item nell'inventario
            end
		end 
    end 
end
 
PHP:
quest drop begin
    state start begin
        when kill with npc.get_race() == 2597 or npc.get_race() == 2595 or npc.get_race() == 8057 begin -- Mob
            local item = {53001, 53002, 53003, 53005, 53006, 53007, 53008, 53009, 53010, 53011, 53012, 53013, 53014, 53015, 53016, 53017} -- Array Item 
            local prob = number(1, 100) -- Probabilità drop da 1 a 100
            if prob >=50 then -- 50% di drop
                local a = math.random(16) -- a caso da 1 a 16
                pc.give_item2(item[a],1) --Ricevi Item nell'inventario
            end
        end 
    end 
end

Funziona , grazie mille...

Grazie a tutti delle risposte.

- - - Updated - - -

PHP:
quest qualcosa begin
    state start begin
        when dio.kill begin
            local perc = 60
            if number(1, 100) > perc then return end
            pc.give_item2(number(53001, 53017), 1)
        end
    end
end

Ryosaku la tua quest sembra funzionare ma... il problema è che mi droppa sempre gli stessi item. Per l'esattezza soltanto 53001 e 53002...
Cosa dovrei fare ?
 
Ultima modifica:
Non ho capito perché "dio.kill" e non "kill" e basta.

Perchè se utilizzi kill solamente, l'esecuzione dello script avverrà per ogni evento di kill.

Quindi la mia quest sarà...
Assolutamente no.
Number prende un numero casuale tra il primo ed il secondo argomento.
Non devi fare assolutamente niente se non modificare il vnum del mob in questione.

E da dove decido su quale mob deve avvenire tutto questo ?

Utilizzando dio.kill verrà utilizzato solo il vnum corrispondende a "dio".
In alternativa puoi direttamente inserire il vnum al posto di "dio".

Ryosaku la tua quest sembra funzionare ma... il problema è che mi droppa sempre gli stessi item. Per l'esattezza soltanto 53001 e 53002...
Cosa dovrei fare ?

la funzione number() e math.random() effettuano la stessa identica cosa. Direi che è pura casualità.
In ogni caso puoi utilizzare math.random() al posto di number per provare.
 
Perchè se utilizzi kill solamente, l'esecuzione dello script avverrà per ogni evento di kill.


Assolutamente no.
Number prende un numero casuale tra il primo ed il secondo argomento.
Non devi fare assolutamente niente se non modificare il vnum del mob in questione.



Utilizzando dio.kill verrà utilizzato solo il vnum corrispondende a "dio".
In alternativa puoi direttamente inserire il vnum al posto di "dio".



la funzione number() e math.random() effettuano la stessa identica cosa. Direi che è pura casualità.
In ogni caso puoi utilizzare math.random() al posto di number per provare.

Sono riuscito a risolvere , grazzie mille.

Grazie a tutti coloro che hanno risposto.

Chiudo...
 
Stato
Discussione chiusa ad ulteriori risposte.

DISCUSSIONI SIMILI

Indietro
Top Bottom