[Aportes indexados] Oro Aleatorio V 0.11.2

Estado
Cerrado para nuevas respuestas.

skay

Newbie Lvl 2
[SERVIDOR] Oro Aleatorio V 0.11.2

CÓDIGO DEL SERVIDOR 0.11.2

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">GiveGLD <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></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">MinGLD <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li1">      MaxGLD <span style="color: #b1b100;">As</span> <span style="color: #b1b100;">Long</span></li><li style="" class="li2">      ProbGLD <span style="color: #b1b100;">As</span> Byte</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"><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></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"><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="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;">"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="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;">"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">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></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">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="li1">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="li2">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></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">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></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">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="li1">    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="li2">    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></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"><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></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"><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="li1">    <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> MiNPC.<span style="color: #66cc66;">MaxGLD</span> > <span style="color: #cc66cc;">0</span> <span style="color: #b1b100;">Then</span></li><li style="" class="li2">        <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> <= MiNPC.<span style="color: #66cc66;">ProbGLD</span> <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="li1">            MiObj.<span style="color: #66cc66;">Amount</span> = RandomNumber<span style="color: #66cc66;">(</span>MiNPC.<span style="color: #66cc66;">MinGLD</span>, MiNPC.<span style="color: #66cc66;">MaxGLD</span><span style="color: #66cc66;">)</span></li><li style="" class="li2">            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="li1">        <span style="color: #b1b100;">End</span> <span style="color: #b1b100;">If</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;">Sub</span></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">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;">DarValor</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></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">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;">DarValor</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="li1">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;">DarValor</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="li2">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;">DarValor</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></ol></div>[/vb]

Creo que es Leer.DarValor en este momento no tengo el VB a mano
Despues me fijo bien y cualquier cosa lo arreglo

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

[vb]<div class="vb" id="{CB}" style="font-family: monospace;"><ol><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></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">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="li1">      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="li2">      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></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.2 sin el sistema de oro aleatorio se vería de la siguiente manera:

NPCs-HOSTILES.dat:

[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:

[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.


Post Original Amraphen.... Adaptado a la Version 0.11.2 Skay
 

skay

Newbie Lvl 2
:)....

De nada man....


si esta mal avisen asi lo corrijo ya q a mi en la V. 0.11.2 me anda de 10¡¡¡
 
Estado
Cerrado para nuevas respuestas.
Arriba