Autor Téma: pokyn pro uchazece na pozici skriptare  (Přečteno 5586 krát)

Offline Tomaash

  • RT ŽvB
  • *****
  • Příspěvků: 5260
  • exkoordinátor
    • moje silná stránka
pokyn pro uchazece na pozici skriptare
« kdy: Září 09, 2011, 01:28:25 odpoledne »
úkol pro uchazeče na pozici skriptař
- ještě než se (jako potenciální skriptař) přihlásíte na pohovor, tak potřebujeme zhruba znát úroveň vaší skriptařské dovednosti. proto jsme pro vás připravili tuto úlohu, přičemž vy sami si zvolíte na jaký úkol se cítíte.

níže máte skript sbalovacího pláště, který na žvb používáme

vy s ním udělejte jednu z následujících věcí:
úroveň 1: předělat na skládací tričko
úroveň 2: předělat tak, aby při nasazení změnil barvu vlasů a jméno nositele, načež by je zase vrátil při sundání
úroveň 3: předělat plášť tak, aby po nasazení pravidelně měnil barvu
úroveň 4: předělat tak, že do něj bude možné schovat zvíře (podobně jako do klece)

(podotýkám, že splnění některé z úrovní není přímým předpokladem pro přijetí mezi skriptaře žvb.)

po splnění úlohy odešlete výsledek na vodacek@zvb.cz, nezapomeňte přidat kontakt na im (icq/skype/...) a ozveme se vám

Kód: (skladaci-plast.cs) [Vybrat]
// vodackovo skript
using System;
using Server;
using System.IO;
using System.Net;
using System.Text;
using Server.Items;
using Server.Network;
using System.Reflection;

namespace Server.HPShard.Items {
[Flipable]
public class skladaciPlast : BaseCloak {
  private bool fslozeny;
  private TimeSpan fdoba;
 
  [CommandProperty( AccessLevel.GameMaster )]
public bool slozeny {
get{ return fslozeny; }
set{
        if (fslozeny!=value){
          fslozeny = value;
          if (value)Slozit();
          else Rozlozit();
        }
      }
}

[CommandProperty( AccessLevel.GameMaster )]
public TimeSpan doba {
get{ return fdoba; }
set{ fdoba = value;}
}

public void Flip(){
if ( ItemID == 0x1515 )ItemID = 0x1530;
else if ( ItemID == 0x1530 )ItemID = 0x1515;

}

[Constructable]
public skladaciPlast() : this( 0 ){
}

[Constructable]
public skladaciPlast( int hue ) : base( 0x1515, hue ){
Weight = 5.0;
Name="Plášť";
fdoba=TimeSpan.FromSeconds(1.5);
fslozeny=false;
}

public skladaciPlast( Serial serial ) : base( serial ){
}

public override void Serialize( GenericWriter writer ){
base.Serialize( writer );

writer.Write( (int) 1 ); // version
writer.Write(fslozeny);
writer.Write(fdoba);
}

public override void Deserialize( GenericReader reader ){
base.Deserialize( reader );

int version = reader.ReadInt();
fslozeny=reader.ReadBool();
fdoba=reader.ReadTimeSpan();
}

public override void OnDoubleClick(Mobile from){
  if (slozeny)slozeny=false;
  from.EquipItem(this);
    }

public override bool DropToItem( Mobile from, Item target, Point3D p ){
      if (base.DropToItem(from,target,p )){
        if (!slozeny)Timer.DelayCall( doba, new TimerStateCallback( Zpozdeni ),(object)from);
        return true;
      }
      else return false;
    }
public override bool DropToWorld( Mobile from, Point3D p ){
      if (base.DropToWorld(from,p )){
        if (!slozeny)Timer.DelayCall( doba, new TimerStateCallback( Zpozdeni ),(object)from);
        return true;
      }
      else return false;
    }
    private void Zpozdeni (object state){
      if (!(Parent is Mobile)){
        slozeny=true;
      }
    }
    public void Slozit (){
      if (ItemID==0x1515)ItemID=5029;
      else ItemID=5028;
     
      PublicOverheadMessage( MessageType.Regular, 200, false, "*složil se do úhledné hromádky*");
      Name="Složený plášť";
      Weight=1.0;// vyhoda skladani
    }
    public void Rozlozit(){
      if (ItemID==5029)ItemID=0x1515;
      else ItemID=0x1530;
     
      PublicOverheadMessage( MessageType.Regular, 200, false, "*rozložil se*");
      Name="Plášť";
      Weight=5.0;
    }
}
}
« Poslední změna: Březen 09, 2013, 11:39:34 dopoledne od Vodacek je osel »
Ψ