From The Mana World
< User:Nard
Revision as of 01:10, 19 June 2012 by Nard (talk | contribs)

Developers template project

Quest Developers
Authors
Scenario None
Programmation None
Contributor(s) None
Graphic Artists
Maps None
Tile graphics None
NPCs None
Items None
Sound
Sound fx None
Music None
Developpeurs
Auteurs
Scenario None
Scripting None
Contributeur(s) None
Artistes graphiques
Cartes None
Décorations, textures None
PNJs None
Objets None
Son
Effets sonores None
Musique None

Diseased Pinkies

background

At (rare) random times and for a limited (short) duration; an evil fluffy ("Grey Fluffy" or "mrgrey Fluffy" or "GM Fluffy" :) ) appears in Pinkie areas. It has a contagious disease which turns pinkies into "evil pinkies" (black, dark blue...) and spawns new ones (pinkies reproduce at a higher rate when they are sick). They are aggro, can poison, and hit much harder (comparable to green slimes) . They drop Black Antennas, Black Pinkie Hat, Black Pearls, Pink Pearls, dark-blue pearls.... Event stops when either evil fluffy is killed dropping a bunch of nice items (so players have also interest to stop event as items will be rares) or with time out. The event could be also triggered by a player; killing sick Mouboo or cutting desert tree branch for instance or by a GM.

Sent to Jenalya. Discussed with Var about it.

realization

An invisible NPC controls the event upon a random date (or on reception of a message?): pseudo code:

at server start, initiate first random date: InfectionDate
On reception of DiseasedPinkieStart set InfectionDate to now
set FinishDate to InfectionDate + DurationToChoose                   /* DurationToChoose=30mn
Disease_Loop:
if InfectionDate is greater than Now goto Disease_Later:
   Start_Pinkie_disease:
       spawn  InfectedFluffy( 1)
       Override map's script
       Turn Pinkies into DiseasedPinkies                             /* can be progressive if possible. Insert in temporized loop?
       If {mobcount (InfectedFluffy) <1} set DiseaseEradicated to true
       If Now >= FinishDate set DiseaseEradicated to true
       If DiseaseEradicated is true goto Disease_Finished
   gotoDisease_Loop:
Disease_Finished:
kill remaining DiseasedPinkies
Set InfectionDate to Now + random_time_interval                      /*statistics to be defined: specify mean and time range (Poisson distribution?)
Disease_Later:
goto Disease_Loop
end

Mobs

Infected Fluffy (InfectedFluffy)

status:
spawns DiseasedPinkies as Santaslimes spawns (or similar)
aggro
poisons
drops:Black Pearl( 50%),Black Fur (50 %),Black Fluffy hat (100 %)...

Diseased Pinkie (DiseasedPinkie)

status: comparable to greenslimes or tougher with pinkies' characteristics
aggro
poisons
drops:Black pearl ( %), Black antenna( %), Black Pinkie Hat( %), ...

first drafts by Var graphics :Bluepinkie.pngGrayfluffy.png

(maybe i could do better but not atm :p i was thinking about a shining metallic pinky but uhmm might be weird) i'm still working in the script.

Ciao :D

Script by Var

So far this is the code. i'll add more soon

Code:

 //

008-1.gat,36,26,0   script   Andra   201,{
        mes "[Andra]";
   mes "\"Hello, my name is Andra, what's yours?\"";
   next;
   input @name$;

        mes "[Andra]";
   mes "\"Hello, " + @name$ + "! What is your favorite number?\"";
   next;
   input @num;

   if (@num == 5) goto L_Same;

        mes "[Andra]";
   mes "\"I don't like that one.\"";
   npctalk "Infection date, set to " + $@InfectionDate + " " + gettimetick(2);
   close;

L_Same:
        mes "[Andra]";
   mes "\"Mine too!\"";
   close;

L_Spawn_Infected:

//timer enabled each 1/2 minute
OnTimer30000:
   //resetting the timer to enable the loop
   setnpctimer 0;
   //No infection date set? then init it
   if ($@InfectionDate == 0) goto L_InitInfectionTime;
   //infector spawned? then just do nothing
   if ($@Infector_spawned != 0) goto L_Pass;
   //Time to start of the infection?
   if ($@InfectionDate <= gettimetick(2)) goto L_StartInfection;
   //debug info
   set $@infectedleft, ($@InfectionDate - gettimetick(2));
   npctalk "Next infection in: " + ($@infectedleft) + " seconds.";
   end;

L_StartInfection:
   //If the infection is already running then do nothing
   if ($@Infector_spawned != 0) goto L_Pass;
   //Start a new infection
   set $@Infector_spawned, 1;
   npctalk "An infected maggot appeared!!";
   areamonster "008-1.gat", 36, 26, 37, 27, "The evil maggot", 1002, 1, "Andra::OnInfectorDead";
   goto L_InitInfectionTime;

OnInfectorDead:
   //workaround to init again the infection and show a message of end of infection
   set $@Infector_spawned, 2;
   goto L_InitInfectionTime;
   end;

L_DeadMessage:
   set $@Infector_spawned, 0;
   npctalk "The infector died!!";
   end;

L_Pass:
   end;

L_InitInfectionTime:
   //Min each half day
   set @Days, 1/2;
   set @Min_rand_time, 24 * 60 * 60 * @Days;
   set @Max_rand_time, 24 * 60 * 60 * @Days * 11/10;
   //remove the comment and the *debug* infection date for the release version
   //set $@InfectionDate, gettimetick(2) + rand(@Max_rand_time) + @Min_rand_time;
   set $@InfectionDate, gettimetick(2) + 60;
   if ($@Infector_spawned == 2) goto L_DeadMessage;
   close;

OnInit:
   set @Infector_spawned, 0;
   initnpctimer;
   end;

}

edit: i find out that i miss one thing to make it work as you wish........... http://eathena.ws/wiki/index.php?title=Areamobuseskill that function will let a script to "order" mobs to use a certain skill (transformation in this case) so ...... there is another way to do it but it won't be the same thing as you wanted



Ideas: 1) ask to add that thing (i see it hard....) 2) change something in the event :s (but it will be turn just into another cindy quest thing)

huggies, V.

_________________ Non sprecare tempo con qualcosa ke è già belle che morto, lascia ke i cadaveri giokino nel loro piccolo ed inutile angolo di universo continuando a sognare ke sappiano fare ciò ke non sanno fare.


Me: The idea I had was that the diseased mob would turn pinkies to sick as it meets them. Now it has to be feasible. I don't know actually. Fun has priority one in my opinion.

In general opinion green is the color associated with poison and disease. blue-grey-metal color surprised me a bit but why not?

I think now that infector could have a particle effect. I thought about the potions effect but green and I found a funny unused player glow in client data.

here are both:

(could be named: lime-violent-glow.particle.xml)
?xml version="1.0"?>
<!--
Green-ish particles that fly up to the sky; based on Crush's Soul Menhir effect.
-->
<effect>
  <particle position-x="0" position-y="0" position-z="0">
    <emitter>
      <property name="position-z" min="16" max="48"/>
      <property name="vertical-angle" min="0" max="90"/>
      <property name="horizontal-angle" min="0" max="360"/>
      <property name="power" min="10" max="25"/>
      <property name="lifetime" value="1"/>
      <property name="output" value="1"/>
      <emitter>
        <property name="gravity" value="-0.4"/>
        <property name="momentum" value="0.9"/>
        <property name="image" value="graphics/particles/gloworb-medium.png|W:#a0ff00"/>
        <!--lime color-->
        <property name="lifetime" value="25"/>
        <property name="fade-in" value="5"/>
        <property name="fade-out" value="20"/>
        <property name="output" min="0" max="1"/>
        <property name="output-pause" min="30" max="80"/>
        <property name="randomnes" value="200"/>
      </emitter>
      <emitter>
        <property name="gravity" value="-0.4"/>
        <property name="momentum" value="0.9"/>
        <property name="image" value="graphics/particles/orb-small.png|W:#a0ff00"/>
        <property name="lifetime" value="25"/>
        <property name="fade-in" value="5"/>
        <property name="fade-out" value="20"/>
        <property name="output" min="0" max="1"/>
        <property name="output-pause" min="30" max="80"/>
        <property name="randomnes" value="200"/>
      </emitter>
    </emitter>
  </particle>
</effect>

color of prticle effect could be set to medium-dark grey if we intend to suggest pollution.

Now playerglow.particle.xml. I like the idea of the bat even if a vulture would do it better :)

<?xml version="1.0"?>
<!--
Proof of concept of animated stationary particle effects (a bat ) and some
orbiting yellow particles. Rather useless but could be used as a template for
more useful status effect particle effects.
-->
<effect>
  <particle position-x="0" position-y="0" position-z="64" lifetime="-1">
    <animation imageset="graphics/sprites/monster-bat.png" width="37" height="38">
      <sequence start="1" end="4" delay="50"/>
    </animation>
    <emitter>
      <property name="position-x" min="-1" max="1"/>
      <property name="position-y" min="-1" max="1"/>
      <property name="position-z" min="0" max="0"/>
      <property name="power" min="0" max="3"/>
      <property name="vertical-angle" min="0" max="360"/>
      <property name="output" value="1"/>
      <property name="lifetime" value="60"/>
      <property name="fade-out" value="30"/>
      <property name="acceleration" value="0.1"/>
      <property name="momentum" value="0.998"/>
      <property name="image" value="graphics/particles/orb-medium.png|W:#a0ff00"/>
      <!--color changed from yellow to lime-->
    </emitter>
  </particle>
</effect>

--Nard 03:10, 19 June 2012 (CEST)