Stranded Forum
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Script

4 posters

Goto down

Script Empty Script

Příspěvek pro Adamso Tue Aug 05, 2008 12:48 pm

Potreboval by som Script, ktorý urobí naseldujúce pokyny:

Držím v ruke predmet a som pri budove, ktorá má tento predmet prerobiť na iný predmet

Príklad: Držím v ruke surovú tehlu (cihlu) a prídem k peci (kliknem na nu), chcem ju vypáliť aby sa mohla použiť na stavanie

Našiel som script na tavenie železa v EXT mode:

kód:
script=start
on:start {
  local $x,$y,$z,$id,$fire_id,$ore,$charcoal,$rest,$iron,$action,$time_start,$time_end,$time_duration;
  $x=getx("self");
  $y=gety("self");
  $z=getz("self");
  $fire_id=create("info",35,$x,$z);
  $y+=15;
  setpos "info",$fire_id,"self",$y,"self";
}

on:create {
  event "start";
}

on:build_finish {
  event "kiln_build",0,0;
}

on:use {
  if ($action==1) {
    local $tmp;
    $tmp=($iron-$time_duration);
    if ($tmp==0) {
      msg "Ok, jetzt müsste das Feuer bald ausgehen.",4;
    } elseif ($tmp==1) {
      msg "Der Ofen brennt noch ca. eine Stunde...",4;
    } else {
      msg "Der Ofen brennt noch ca. $tmp Stunden...",4;
    }
    freevar $tmp;
  }
  elseif ($action==2) {
    if ($ore>0) {
      find 782,$ore;
      $ore=0;
    }
    if ($charcoal>0) {
      find 779,$charcoal;
      $charcoal=0;
    }
    find 85,$iron;
    $iron=0;
    $action=0;
  //Holzkohle oder Eisenerz
  } elseif (((getplayerweapon()==779)&&(playergotitem(779)>0))||((getplayerweapon()==782)&&(playergotitem(782)>0))) {
    if (getplayerweapon()==779) {
      $charcoal++;
      msg "Jetzt sind $charcoal Stück Holzkohle im Ofen!",4;
      freestored "unit",1,779,1;
    } else {
      $ore++;
      msg "Jetzt sind $ore Klumpen Eisenerz in dem Ofen!",4;
      freestored "unit",1,782,1;
    }
  } else {
    msg "Ich muss Eisenerz oder Holzkohle reinwerfen!",3;
  }
}

on:hit {
//  event "check_weapon";
//  event "check_material";
//  event "check_fire";
//  event "set_fire";
  if ($action==1) {
    local $tmp;
    $tmp=($iron-$time_duration);
    if ($tmp==0) {
      msg "Ok, jetzt müsste das Feuer bald ausgehen.",4;
    } elseif ($tmp==1) {
      msg "Der Ofen brennt noch ca. eine Stunde...",4;
    } else {
      msg "Der Ofen brennt noch ca. $tmp Stunden...",4;
    }
    freevar $tmp;
  }
  elseif ($action==2) {
    find 782,$ore;
    find 779,$charcoal;
    find 85,$iron;
    $action=0;
    $ore=0;
    $charcoal=0;
    $iron=0;
  //Holzkohle oder Eisenerz
  } else {
    timer "self",100,1,"check_weapon";
    timer "self",200,1,"check_material";
    timer "self",300,1,"check_fire";
    timer "self",400,1,"set_fire";
  }
}

on:check_weapon {
  if (getplayerweapon()==22) {
    if (playergotitem(22)<2) {
      msg "Ich brauche mindestens 2",3;
      msg "Feuersteine zum Anzünden!",3;
      speech "negative";
//      skip;
      freetimers "self";
    }
  } elseif (getplayerweapon()!=111) {
//    skip;
    freetimers "self";
  }
}

on:check_material {
  if (($ore==0)||($charcoal==0)) {
    if ($ore==0) {
      msg "Kein Eisenerz drin!",3;
    }
    if ($charcoal==0) {
      msg "Keine Holzkohle drin!",3;
    }
//    skip;
    freetimers "self";
  }
}

on:check_fire {
  if (gotstate("info",$fire_id,"fire")+gotstate("info",$fire_id,"eternalfire")>0) {
    msg "Der Ofen brennt bereits!",3;
    speech "negative";
//    skip;
    freetimers "self";
  }
}

on:barkbranchfire_kiln {
  freestored "unit",1,107,1;
  freestored "unit",1,24,1;
  local $r;
  $r=random(1,100);
  if ($r>$s2g_firesuccess) {
    speech "negative";
    msg "Es klappt nicht...",3;
    msg "Ich muss es nochmal versuchen!",3;
//    skip;
    freetimers "self";
  } 
}

on:check {
//  event "check_material";
//  event "check_fire";
//  event "barkbranchfire_kiln";
//  event "set_fire";
  if ($action==0) {
    timer "self",100,1,"check_material";
    timer "self",200,1,"check_fire";
    timer "self",300,1,"barkbranchfire_kiln";
    timer "self",400,1,"set_fire";
  }
}

on:set_fire {
  speech "positive";
  addstate "info",$fire_id,"eternalfire";
  addstate "info",$fire_id,"smoke";
  msg "Der Ofen brennt jetzt!",4;
  if ($ore<=$charcoal) {
    $iron=$ore;
    $charcoal-=$ore;
    $ore=0;
  } else {
    $iron=$charcoal;
    $ore-=$charcoal;
    $charcoal=0;
  }
  $time_start=((day()*24)+hour());
  $time_duration=0;
  $action=1;
  timer "self",30000,0;
}

on:timer {
  $time_end=((day()*24)+hour());
  $time_duration=($time_end-$time_start);
  if ($time_duration>=$iron) {
    freestate "info",$fire_id;
    freetimers "self";
    $action=2;
  }
}

on:slept {
  if ($action==1) {
    event "timer";
  }
}
script=end

Nedal by sa nejako upraviť na moju myšlienku?
Adamso
Adamso
Czechstension 3D modelář
Czechstension 3D modelář

Po?et p?ísp?vk? : 40
Join date : 12. 07. 08

Návrat nahoru Goto down

Script Empty Re: Script

Příspěvek pro webkar Tue Aug 05, 2008 1:28 pm

dalo ale neviem ako Very Happy
webkar
webkar
Czechstension Team
Czechstension Team

Po?et p?ísp?vk? : 441
Join date : 15. 02. 08
Age : 28

Návrat nahoru Goto down

Script Empty Re: Script

Příspěvek pro vencaCZ Tue Aug 05, 2008 1:32 pm

zeptejte se Hudy ten se skriptama to asi umí nejlíp Wink
vencaCZ
vencaCZ
Moderator
Moderator

Po?et p?ísp?vk? : 1184
Join date : 17. 12. 07
Location : Ústí nad Labem

http://runeczscape.webgarden.cz/

Návrat nahoru Goto down

Script Empty Re: Script

Příspěvek pro HudaJan Tue Aug 05, 2008 1:38 pm

Tenhle script je pro tvoje účely zbytečně dlouhej. Tobě by stačilo
on:use {
if(getplayerweapon()==ID*){
find ID**;
process "pálení";
timer "slef",5000,1;
}else{
msg "Potrebuju mit v ruce cihlu!",3;
speech "negative";
}
}
on:timer {
find ID**;
speech "positive";
msg "Vypalil jsem cihlu!",4;
}

* ID nevypálené cihly
** ID vypálené cihly

HudaJan
Stvořitel Mr. Stranďáka

Po?et p?ísp?vk? : 717
Join date : 17. 03. 08
Age : 33

Návrat nahoru Goto down

Script Empty Re: Script

Příspěvek pro Sponsored content


Sponsored content


Návrat nahoru Goto down

Návrat nahoru


 
Povolení tohoto fóra:
Nemůžete odpovídat na témata v tomto fóru