Voy a ir poniendo scripts por aquí que vaya haciendo por diversión por si alguien le sirve o tal.

- Function que para generar un efecto visual, solamente algo estetico.
Código:
[ITEMDEF i_tontuna]
ID=i_fire_column
NAME=|

[email protected]
RETURN 1

[FUNCTION f_floritura]

SERV.NEWITEM i_tontuna
NEW.ATTR=ATTR_STATIC
NEW.TIMERF 2,REMOVE
NEW.P=<TOPOBJ.P>
NEW.MOVE S 2

SERV.NEWITEM i_tontuna
NEW.ATTR=ATTR_STATIC
NEW.TIMERF 2,REMOVE
NEW.P=<TOPOBJ.P>
NEW.MOVE N 2

SERV.NEWITEM i_tontuna
NEW.ATTR=ATTR_STATIC
NEW.TIMERF 2,REMOVE
NEW.P=<TOPOBJ.P>
NEW.MOVE W 2

SERV.NEWITEM i_tontuna
NEW.ATTR=ATTR_STATIC
NEW.TIMERF 2,REMOVE
NEW.P=<TOPOBJ.P>
NEW.MOVE E 2

SERV.NEWITEM i_tontuna
NEW.ATTR=ATTR_STATIC
NEW.TIMERF 2,REMOVE
NEW.P=<TOPOBJ.P>
- Este script va en conjunto con el siguiente, es un evento global para npcs, que a partir del otro script podemos modificar (añadir/quitar,etc) npcs con items especiales que irán directamente a la mochila se podría hacer tambien que en ves de a la mochila vayan al cuerpo del npc cambiando algunas lineas, pero bueno me inspire en el sistema de artefactos de OSI. Ademas contempla todos los atacantes al npc en cuestión y el daño que le hacen al npc haciendo que cada uno tenga una probabilidad X de llevarse el item ( si es generado ) en función del daño realizado. Falta añadirle el check para si los atacantes son pets, estos items vayan a la mochila del propietario de la pet (cosa que no tengo pensado ponerle xD)

Código:
[EVENTS e_npc]

[email protected]
 // apartir de aqui, esta parte pertenece al sistema de loot, de que al matar al mob te de un objeto en la mochila
IF (<r100><<def0.prob_<baseid>>) // Numero aleatorio de 0 a 100, si el numero aleatorio es menor a la probabilidad elejida, continua.
		
	IF !(<ISEMPTY <def.bonus_item_<baseid>>>)  // Si existe un item bonus 
	SERV.NEWITEM <def.bonus_item_<baseid>>	// lo crea
	ENDIF
	
	FOR 0 <EVAL <ATTACKER>-1>			// sacamos el valor del damage total realizado
	LOCAL.DAMT += <ATTACKER.<DLOCAL._FOR>.DAMAGE>
	ENDFOR

	FOR 0 <EVAL <ATTACKER>-1> // creamos una local por cada atacante con su respectivo porcentaje de daño
	LOCAL.PORCENTAJE.ATTACKER.<DLOCAL._FOR> += (<ATTACKER.<DLOCAL._FOR>.DAMAGE>*100)/<LOCAL.DAMT>
	ENDFOR

	FOR 0 <EVAL <ATTACKER>-1> // aqui se calcula el chance que tiene cada attacker de llevarse el item en caso de que lo vaya a dropear
	LOCAL.SUMA +=<LOCAL.DMG.PART.<DLOCAL._FOR>>
	LOCAL.CHANCE.<DLOCAL._FOR>=<EVAL <DLOCAL.SUMA>+1> 
	ENDFOR

		LOCAL.RANDOM=<R1,100> // generamos el numero aleatorio para el reparto
		FOR 0 <EVAL <ATTACKER>-1>	
		REF1=<ATTACKER.<DLOCAL._FOR>.UID>
		IF (<LOCAL.RANDOM><<LOCAL.CHANCE.<LOCAL._FOR>>) // Si el chance del attacker correspondiente es mayor que el num aleatorio generador, se lleva el drop
		NEW.CONT = <REF1.FINDLAYER.21.UID>
		LOCAL.RANDOM=65500 // hace la funcion de break en el if, para que solo toque un objeto
		REF1.F_FLORITURA // function para darle un toque visual a quien le caiga el objeto
		ENDIF
		ENDFOR 
ENDIF
- Aqui simplente ponemos "bonus_item_C_NUESTRAID=i_OBJETO" y el npc con esa id contemplara de generar el objeto que le digamos, igual en el de abajo, si pones "prob_C_NUESTRAID=15" nuestro npc con la ID C_NUESTRAID tendria una probabilidad cercana al 15% de que saliese ese objeto.

Código:
[DEFNAME IDYLOOT] // aqui se define con bonus_item_<baseid> del mob que queremos que entre en el check
//bonus_item_c_id_npc=i_robe

[DEFNAME PROBABILIDAD] // aqui se define la probabilidad de que de objeto, prob_<baseid> = XX donde x es la probabilidad que queramos
//prob_c_id_npc=10