Re: CMUD
: 03 gru 2016 13:47
A masz jakies suby czy triggery co obrabiaja walke? Bo samo z siebie tak nie powinno.
Oficjalne forum Arkadii, polskiego MUD-a, tekstowej gry fabularnej.
https://arkadia.rpg.pl/forum/
Kod: Zaznacz cały
Jakas lokacja.
Maly dziwny piesek, dziki duzy piesek, maly osowialy kotek, cudownie sliczna panienka i brzydka szmaragdowooka lampucera.
Kod: Zaznacz cały
Jakas lokacja.
[a]Maly dziwny piesek, [b]dziki duzy piesek, [c]maly osowialy kotek, [d]cudownie sliczna panienka i [e]brzydka szmaragdowooka lampucera.
Będę wdzięczny za jakiś kod który mógłbym wrzucić do swoich skryptów.Haern pisze:(...)(a tam można to zrobić lepiej i wydajniej, bo w ograniczonym zakresie).
Kod: Zaznacz cały
#execwin kondycje {#clr}
$kwinYou = %null
$kwinTeam = %null
$kwinEnemy = %null
$kwinRest = %null
$updateFight = 0
fightAttack = %null
#LOOPDB @GMCP_OBJECTS_DATA
{
$val = %val.attack_num
#IF ($val = "false")
{
#IF (%iskey(@fightAttack, %key))
{
#DELKEY fightAttack %key
}
#CONTINUE
}
#IF (%db(@fightAttack, %key) != $val)
{
#ADDKEY fightAttack %key $val
}
}
fightAttackedBy = %null
#LOOPDB @fightAttack
{
#addkey fightAttackedBy %val %additem(%key, %db(@fightAttackedBy, %val))
}
#LOOPDB @GMCP_OBJECTS_DATA
{
$jaka = %val.hp + 1
$atakuja = %db(@fightAttackedBy, %key)
$ile = %numitems($atakuja)
$sub = "["$ile"]["%if( $jaka = 7, %repeat( "##", 7), %repeat( "##", $jaka)%repeat( "--", 6-$jaka)"--")"] "
$atakujaOpisy = %null
$atakujaSub = %null
#if ($ile)
{
#forall $atakuja
{
$desc = @GMCP_OBJECTS_DATA.%i.desc
$atakujaOpisy = %additem(%if($desc, $desc, "ty"), $atakujaOpisy)
}
$atakujaSub = "<== "%expandlist($atakujaOpisy, ", ")
}
#if (%val.avatar = "true") {
$sub = %ansi( @kolor_z_kondycji( $jaka/2))$sub"<send 'rozkaz wszystkim zaslonic ciebie;wskaz siebie jako cel obrony' 'rozkaz zaslonic'>"Ty"</send> "$atakujaSub
$kwinYou = $sub
#CONTINUE
}
#if (%val.team = "true")
{
$sub = $sub[T]" <send 'zaslon ob_"%key"|rozkaz wszystkim zaslonic ob_"%key";wskaz ob_"%key" jako cel obrony|wycofaj sie za ob_"%key"' 'zaslon|rozkaz zaslonic|wycofaj sie za'>"%proper( %val.desc)"</send> "$atakujaSub
#additem $kwinTeam $sub
#CONTINUE
}
#if (%val.enemy = "true")
{
$sub = $sub[E]" <send 'zabij ob_"%key"|przelam obrone ob_"%key"|rozkaz wszystkim zaatakowac ob_"%key";wskaz ob_"%key" jako cel ataku|zaslon przed ob_"%key"|zablokuj ob_"%key"' 'zabij|przelam|rozkaz zaatakowac|zaslon przed|zablokuj'>"%proper( %val.desc)"</send> "$atakujaSub
#additem $kwinEnemy $sub
#CONTINUE
}
$sub = $sub"<send '|zabij ob_"%key"|przelam obrone ob_"%key"|rozkaz wszystkim zaatakowac ob_"%key";wskaz ob_"%key" jako cel ataku|zaslon przed ob_"%key"|zablokuj ob_"%key"' 'brak domyslnej akcji|zabij|przelam|rozkaz zaatakowac|zaslon przed|zablokuj'>"%proper( %val.desc)"</send> "$atakujaSub
#additem $kwinRest $sub
}
#win "kondycje" $kwinYou
#forall {$kwinTeam} {#win "kondycje" %i}
#forall {$kwinEnemy} {#win "kondycje" %i}
#forall {$kwinRest} {#win "kondycje" %i}