[Aportes indexados] Oro aleatorio

Estado
Cerrado para nuevas respuestas.

Amraphen

Aprendiz Lvl 6
[SERVIDOR] Oro aleatorio

CÓDIGO DEL SERVIDOR 0.11.5

Descripción: Los NPCs dropean oro de forma aleatoria y con una probabilidad en porcentaje.

Código:

En el módulo Declares.bas buscamos:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1">    GiveGLD <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li2"> </li></ol></div>[/vb]

Y reemplazamos esa línea por lo siguiente:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1">    MinGLD <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li2">    MaxGLD <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1">    ProbGLD <span style="color: #b1b100;">As</span> Byte</li><li style="" class="li1"> </li></ol></div>[/vb]

Luego, en el módulo FileIO.bas buscamos:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #b1b100;">Call</span> WriteVar<span style="color: #66cc66;">(</span>npcfile, <span style="color: #ffffff;">"NPC"</span> & NpcNumero, <span style="color: #ffffff;">"GiveGLD"</span>, <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">GiveGLD</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li2"> </li></ol></div>[/vb]

Y reemplazamos esa línea por lo siguiente:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #b1b100;">Call</span> WriteVar<span style="color: #66cc66;">(</span>npcfile, <span style="color: #ffffff;">"NPC"</span> & NpcNumero, <span style="color: #ffffff;">"MinGLD"</span>, <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">MinGLD</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li2"><span style="color: #b1b100;">Call</span> WriteVar<span style="color: #66cc66;">(</span>npcfile, <span style="color: #ffffff;">"NPC"</span> & NpcNumero, <span style="color: #ffffff;">"MaxGLD"</span>, <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">MaxGLD</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li1"><span style="color: #b1b100;">Call</span> WriteVar<span style="color: #66cc66;">(</span>npcfile, <span style="color: #ffffff;">"NPC"</span> & NpcNumero, <span style="color: #ffffff;">"ProbGLD"</span>, <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">ProbGLD</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li1"> </li></ol></div>[/vb]

Luego, en el módulo FileIO.bas buscamos:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1">Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">GiveGLD</span> = <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>GetVar<span style="color: #66cc66;">(</span>npcfile, <span style="color: #ffffff;">"NPC"</span> & NpcNumber, <span style="color: #ffffff;">"GiveGLD"</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li2"> </li></ol></div>[/vb]

Y reemplazamos esa línea por lo siguiente:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1">Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">MinGLD</span> = <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>GetVar<span style="color: #66cc66;">(</span>npcfile, <span style="color: #ffffff;">"NPC"</span> & NpcNumber, <span style="color: #ffffff;">"MinGLD"</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li2">Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">MaxGLD</span> = <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>GetVar<span style="color: #66cc66;">(</span>npcfile, <span style="color: #ffffff;">"NPC"</span> & NpcNumber, <span style="color: #ffffff;">"MaxGLD"</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li1">Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">ProbGLD</span> = <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>GetVar<span style="color: #66cc66;">(</span>npcfile, <span style="color: #ffffff;">"NPC"</span> & NpcNumber, <span style="color: #ffffff;">"ProbGLD"</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li1"> </li></ol></div>[/vb]

Luego, en el módulo MODULO_NPCS.bas buscamos:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1">    Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">GiveGLD</span> = <span style="color: #cc66cc;">0</span></li><li style="" class="li2"> </li></ol></div>[/vb]

Y reemplazamos esa línea por lo siguiente:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1">    Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">MinGLD</span> = <span style="color: #cc66cc;">0</span></li><li style="" class="li2">    Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">MaxGLD</span> = <span style="color: #cc66cc;">0</span></li><li style="" class="li1">    Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">ProbGLD</span> = <span style="color: #cc66cc;">0</span></li><li style="" class="li1"> </li></ol></div>[/vb]

Luego, en el módulo MODULO_NPCS.bas buscamos:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #b1b100;">Sub</span> NPCTirarOro<span style="color: #66cc66;">(</span>MiNPC <span style="color: #b1b100;">As</span> npc<span style="color: #66cc66;">)</span></li><li style="" class="li2"> </li></ol></div>[/vb]

Y reemplazamos todo ese procedimiento (desde la línea anterior hasta el primer "End Sub") por lo siguiente:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1"><span style="color: #b1b100;">Sub</span> NPCTirarOro<span style="color: #66cc66;">(</span>MiNPC <span style="color: #b1b100;">As</span> npc<span style="color: #66cc66;">)</span></li><li style="" class="li2">    <span style="color: #b1b100;">If</span> MiNPC.<span style="color: #66cc66;">MinGLD</span> > <span style="color: #cc66cc;">0</span> <span style="color: #b1b100;">And</span> MaxGLD > <span style="color: #cc66cc;">0</span> <span style="color: #b1b100;">Then</span></li><li style="" class="li1">        <span style="color: #b1b100;">If</span> RandomNumber<span style="color: #66cc66;">(</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">)</span> <= ProbGLD <span style="color: #b1b100;">Then</span></li><li style="" class="li1">            <span style="color: #b1b100;">Dim</span> MiObj <span style="color: #b1b100;">As</span> Obj</li><li style="" class="li2">            MiObj.<span style="color: #66cc66;">Amount</span> = RandomNumber<span style="color: #66cc66;">(</span>MinGLD, MaxGLD<span style="color: #66cc66;">)</span></li><li style="" class="li1">            MiObj.<span style="color: #66cc66;">ObjIndex</span> = iORO</li><li style="" class="li1">            <span style="color: #b1b100;">Call</span> TirarItemAlPiso<span style="color: #66cc66;">(</span>MiNPC.<span style="color: #66cc66;">Pos</span>, MiObj<span style="color: #66cc66;">)</span></li><li style="" class="li2">        <span style="color: #b1b100;">End</span> <span style="color: #b1b100;">If</span></li><li style="" class="li1">    <span style="color: #b1b100;">End</span> <span style="color: #b1b100;">If</span></li><li style="" class="li1"><span style="color: #b1b100;">End</span> <span style="color: #b1b100;">Sub</span></li><li style="" class="li2"> </li></ol></div>[/vb]

Luego, en el módulo MODULO_NPCS.bas buscamos:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1">Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">GiveGLD</span> = <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>Leer.<span style="color: #66cc66;">GetValue</span><span style="color: #66cc66;">(</span><span style="color: #ffffff;">"NPC"</span> & NpcNumber, <span style="color: #ffffff;">"GiveGLD"</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li2"> </li></ol></div>[/vb]

Y reemplazamos esa línea por lo siguiente:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1">Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">MinGLD</span> = <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>Leer.<span style="color: #66cc66;">GetValue</span><span style="color: #66cc66;">(</span><span style="color: #ffffff;">"NPC"</span> & NpcNumber, <span style="color: #ffffff;">"MinGLD"</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li2">Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">MaxGLD</span> = <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>Leer.<span style="color: #66cc66;">GetValue</span><span style="color: #66cc66;">(</span><span style="color: #ffffff;">"NPC"</span> & NpcNumber, <span style="color: #ffffff;">"MaxGLD"</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li1">Npclist<span style="color: #66cc66;">(</span>NpcIndex<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">ProbGLD</span> = <span style="color: #b1b100;">val</span><span style="color: #66cc66;">(</span>Leer.<span style="color: #66cc66;">GetValue</span><span style="color: #66cc66;">(</span><span style="color: #ffffff;">"NPC"</span> & NpcNumber, <span style="color: #ffffff;">"ProbGLD"</span><span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span></li><li style="" class="li1"> </li></ol></div>[/vb]

Luego, en el módulo modHechizos.bas buscamos:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1">            Npclist<span style="color: #66cc66;">(</span>ind<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">GiveGLD</span> = <span style="color: #cc66cc;">0</span></li><li style="" class="li2"> </li></ol></div>[/vb]

Y reemplazamos esa línea por lo siguiente:

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><li style="" class="li1"> </li><li style="" class="li1">            Npclist<span style="color: #66cc66;">(</span>ind<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">MinGLD</span> = <span style="color: #cc66cc;">0</span></li><li style="" class="li2">            Npclist<span style="color: #66cc66;">(</span>ind<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">MaxGLD</span> = <span style="color: #cc66cc;">0</span></li><li style="" class="li1">            Npclist<span style="color: #66cc66;">(</span>ind<span style="color: #66cc66;">)</span>.<span style="color: #66cc66;">ProbGLD</span> = <span style="color: #cc66cc;">0</span></li><li style="" class="li1"> </li></ol></div>[/vb]

Y así tenemos terminado el sistema de oro aleatorio con probabilidad. Lo único que falta es crear los dats. Por ejemplo, un dat de la versión 0.11.5 sin el sistema de oro aleatorio se vería de la siguiente manera:

NPCs-HOSTILES.dat dijo:
[NPC500]
Name=Murciélago
Head=0
Body=9
Heading=3
Movement=3
Attackable=1
Comercia=0
Hostile=1
Alineacion=2
ReSpawn=0
GiveEXP=12
GiveGLD=0
MinHP=10
MaxHP=10
MaxHIT=1
MinHIT=1
PoderAtaque=15
PoderEvasion=10
DEF=0
NROITEMS=0

En cambio, con el sistema de oro aleatorio, el dat se vería de la siguiente manera:

NPCs-HOSTILES.dat dijo:
[NPC500]
Name=Murciélago
Head=0
Body=9
Heading=3
Movement=3
Attackable=1
Comercia=0
Hostile=1
Alineacion=2
ReSpawn=0
GiveEXP=12
MinGLD=1
MaxGLD=5
ProbGLD=40
MinHP=10
MaxHP=10
MaxHIT=1
MinHIT=1
PoderAtaque=15
PoderEvasion=10
DEF=0
NROITEMS=0

Y de esa manera, el NPC 500 (Murciélago) tiraría entre 1 y 5 de oro con un 40% de probabilidad.

ATENCIÓN: Para que el NPC tire oro, el valor de MinGLD debe ser superior a cero (mayor o igual a 1) y el valor de MaxGLD también. Es decir, si tenemos un NPC que diga MinGLD=0 no tirará oro, y pasará lo mismo si dice MaxGLD=0. Por otro lado, si dice ProbGLD=0 no tirará oro bajo ninguna circunstancia.
 

Itarash

Newbie Lvl 1
¡Buenisimo!, la verdad no se manejar el VB, pero ahora toy recorriendo el FORO este y descargando manuales, mientras el VB 6.0 se baja por el ARES.¿Alguien sabe de donde bajo el VB 6.0 que es el que usan para el AO READY... POR FAVOR NESECITO UNA PAG DE DONDE BAJARLO QUE VENGA TODO ENTERO PARA YA USARLO, MUCHAS GRACIAS Y ADIÓS.
 

DarkMage

Destructor Lvl 1
Itarash dijo:
¡Buenisimo!, la verdad no se manejar el VB, pero ahora toy recorriendo el FORO este y descargando manuales, mientras el VB 6.0 se baja por el ARES.¿Alguien sabe de donde bajo el VB 6.0 que es el que usan para el AO READY... POR FAVOR NESECITO UNA PAG DE DONDE BAJARLO QUE VENGA TODO ENTERO PARA YA USARLO, MUCHAS GRACIAS Y ADIÓS.

ESO ES ILEGAL, por mas que muchos lo hacen (me incluyo) no creo que te den para descargarlo en este foro.
 

Amraphen

Aprendiz Lvl 6
Recién edité el primer mensaje y agregué además del sistema de oro aleatorio, un sistema de probabilidad de drop, y ahora el código es 100% funcional con el servidor de la versión 0.11.5.

PD: Tavo movelo a desarrollos completos xD.
 

Red

Newbie Lvl 1
El codigo esta weno, pero la complicacion es que abria que datear todo de 0 sino me confundo. O sea... modificar el Oro de cada Npc y variarlo a Mix, max, etc.

Hay un codigo mas simple de shura creo o no c kien que hace la probabilidad sola.

Nda mas :D
 

skay

Newbie Lvl 2
hola

Shura dijo:
la version original de lagalot es para la 0.11.2 y 0.99

pero este codigo asi como esta sirve para la version 0.11.2??
o cual es el code para la version 0.11.2?
yo digo todo el code con el porcentaje de probabilidad
y se puede aplicar a los item??
 
Estado
Cerrado para nuevas respuestas.
Arriba