Script
4 posters
Stranded Forum :: Modding :: Editor map
Strana 1 z 1
Script
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:
Nedal by sa nejako upraviť na moju myšlienku?
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- Czechstension 3D modelář
- Po?et p?ísp?vk? : 40
Join date : 12. 07. 08
Re: Script
dalo ale neviem ako
webkar- Czechstension Team
- Po?et p?ísp?vk? : 441
Join date : 15. 02. 08
Age : 28
Re: Script
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
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
Stranded Forum :: Modding :: Editor map
Strana 1 z 1
Povolení tohoto fóra:
Nemůžete odpovídat na témata v tomto fóru
|
|