#CLASS {NEW_SCRIPTS|CONFIG} #ALIAS config {#IF (%null( %1)) {confighelp};#IF (%1=="jellem") {#IF (%null( %2)) {#ECHO Jellem Infozas: @jellem_info} {#IF (%2=="be") {#VA jellem_info "be";#ECHO Jellemet infozom!} {#VA jellem_info "ki";#ECHO Jellem info ki!}}};#IF (%1=="pihi") {#IF ( %null( %2)) {#SH %ansi( 12)Hasznalat: pihi [be] [ki]%ansi( default)} {#IF (%2=="be") {#VA pihi 1;#VA pihi 1;#SH %ansi( 12)Pihi: @pihi%ansi( default)};#IF (%2=="ki") {#VA pihi 0;#SH %ansi( 12)Pihi: @pihi%ansi( default)}}};#IF (%1=="celpontok") {#IF (%null( %2)) {#ECHO %ansi( 12)Celpontok: [meg] / [ki] | [mind];#IF (%null( @targets)) {#ECHO Celpontok: Ures} {#SHOW %ansi( red)Celpontok: %expandlist( @targets)}} {#IF (%2=="meg") {#VA cel {%3 %4};#IF (!%ismember( @cel, @targets)) {#VA targets %additem( @cel, @targets);#SHOW Celpontok: %ansi( red)%expandlist( @targets, ",")} {#ECHO @cel mar szerepel a listan!}};#IF (%2=="ki") {#IF (%3=="mind") {#VA targets "";#ECHO Celpontok uritve!} {#VA cel {%3 %4};#IF (%ismember( %lower( @cel), @targets)) {#VA targets %delitem( %lower( @cel), @targets);#IF ( %numitems( @targets)>0) {#ECHO Celpontok: @targets} {#ECHO Celpontok: Nincsenek megadva!}} {#ECHO @cel eddig sem szerepelt a listan!}}}}};#IF (%1=="combo") {#IF (%null( %2)) {#ECHO Combo: @combo} {combo %trim( %concat( %2, %3, %4))}};#IF (%1=="combat") {#IF (%null( %2)) {#ECHO Combat:%if( @oles==1, %ansi( 12)Be, %ansi( 12)Ki)} {#IF (%2=="be") {#VA oles 1;#ECHO Combat: Be};#IF (%2=="ki") {#VA oles 0;#ECHO Combat: ki}}};#IF (%1=="csati") {#IF (%null( %2)) {#ECHO csati meg|ki|mutat|rejt|lista|szokoz} {#IF (%2=="meg") {#PRIORITY {#IF (!%ismember( %trim( %concat( %3, " ", %4, " ", %5)), @CaptureList)) {#ADDITEM CaptureList {%trim( %concat( %3, " ", %4, " ", %5))};#SHOW {%ansi( 23)Csati: '%trim( %concat( %3, " ", %4, " ", %5))' hozzaadva.};#SEND {}} {#SHOW %ansi( 23)%trim( %concat( %3, " ", %4, " ", %5)) Mar szerepel a listan!}}};#IF (%2=="ki") {#PRIORITY {#DELITEM CaptureList {%trim( %concat( %3, " ", %4, " ", %5))};#SHOW {%ansi( 23)Nem lesed tobbe a(z) %ansi( 13)'%trim( %concat( %3, " ", %4, " ", %5))'%ansi( 23) csatit.};#SEND {}}};#IF (%2=="mutat") {#PRIORITY {#VARIABLE CaptureHide {0};#SHOW {%ansi( 23)A foablakban is lathatod az uzeneteket mostmar.};#SEND {}}};#IF (%2=="rejt") {#PRIORITY {#VARIABLE CaptureHide {1};#SHOW {%ansi( 23)A foablakban nem lathatod az uzeneteket mostmar.};#SEND {}}};#IF (%2=="lista") {#PRIORITY {#SHOW {%ansi( 12)Bekapcsolt csatik: %expandlist( @CaptureList, ", ").};#SEND {}}};#IF (%2=="szokoz") {#IF (%null( %3)) {#SHOW %ansi( 12)Ezzel allitod a terkozt ket csati kozt. Ertekek 0-1 kozott. Default: 1} {#IF (%3!=0 & %3!=1) {#SHOW %ansi( 12) Csak 0 vagy 1 lehet az ertek!} {#PRIORITY {#VARIABLE CaptureSpacing {%3};#SHOW {%ansi( 23)Szethuzas merteke: %3.};#SEND {}}}}}}};#IF (%1=="party") {#IF (%null( %2)) {#ECHO Hasznalat: party [vezeto]-[ki] / [meg] / [ki] / [urit] / [lista]} {#IF (%2=="vezeto") {#IF (%null( %3)) {#ECHO Vezetom: %ansi( 12) @vezeto} {#IF (%3=="ki") {#VA vezeto "";#ECHO Vezetom: %ansi( 12)torolve.} {#VA vezeto {%lower( %3)};#ECHO Vezetom: %ansi( 12)@vezeto}}};#IF (%2=="meg") {#IF (%null( %3)) {#ECHO Hasznalat config party meg [nev]} {#IF (!%ismember( %lower( %3), @tarsak)) {#VA tarsak %additem( %lower( %3), @tarsak);config party lista} {#ECHO %ansi( 12)%3 %ansi( 13)mar a listan van.}}};#IF (%2=="ki") {#IF (%ismember( %lower( %3), @tarsak)) {#VA tarsak %delitem( %lower( %3), @tarsak);config party lista} {#ECHO %ansi( 12)%lower( %3) %ansi( 13)eddig sem volt partytag.}};#IF (%2=="urit") {#VA tarsak "";#ECHO Tarsak: %ansi( 12) uritve.};#IF (%2=="lista") {#ECHO Tarsak: %ansi( 12)%expandlist( @tarsak, ", ").}}};#IF (%1 =="xpszamol") {#IF (%2 == "be") {pont;#WA 300;xpszamlalas = "be";#VA ido %time( c);csapat vonal XP szamlalas ON;#VA remipontmost @remipont;#VA kp_indul %replace( @penz, ".", "")};#IF (%2 == "ki") {pont;#WA 300;xpszamlalas = "ki";csapat vonal XP szamlalas OFF;#VA remipontvegen %eval( @remipont - @remipontmost);#VA kp_ment %eval( @penz - @kp_indul);csapat vonal @sarga@feher Xp: @reset@piros@xpszamol_tp@reset;csapat vonal @sarga@feher Remipont: @reset@piros@remipontvegen@reset;csapat vonal @sarga@feher Moncok: @reset@piros@monc_s db@reset;csapat vonal @sarga@feher Penz: @reset@piros@kp_ment@reset;stattorol};#IF (%2 == "stat") {#IF (%3 != "elozo") {pont;#WA 300;#VA kp_ment %eval( %replace( @penz, ".", "") - @kp_indul);#VA remipontresz %eval( @remipont - @remipontmost);csapat vonal @sarga@feher Xp: @reset@piros[ %format( "&10.0n", @xpszamol_tp) ]@reset;csapat vonal @sarga@feher Remipont: @reset@piros[ %format( "&5.0n", @remipontresz) ]@reset;csapat vonal @sarga@feher Moncok: @reset@piros@monc_s db@reset;csapat vonal @sarga@feher Penz: @reset@piros@kp_ment@reset} {#FILE 1 "LOG/XPLOG/"GOODBOY"/"@boot".txt";#READ 1;#CLOSE 1}};#IF (%2 =="ment") {#FILE 1 "LOG/XPLOG/"%upper( %char)"/"@boot".txt";stat;#WRI 1 {csapat vonal Ido: @ido - %time( c) Kozott Megszerzett Xp: @xpszamol_tp Megszerzett Remipont: @remipontresz Megolt Moncok: @monc_s db Penz: @kp_ment};#CLOSE 1;#ADD boot 1;#WA 500;csapat vonal Statisztika mentese sikeresen lefutott!;xpszamol ki};#IF (%2 == "kiolvas") {#IF (%eval( @boot-1) > 0) {#FILE 1 "LOG/XPLOG/"%upper( %char)"/"%eval( @boot-1)".txt";#READ 1;#CLOSE 1} {#FILE 1 "LOG/XPLOG/"%upper( %char)"/"@boot".txt";#READ 1;#CLOSE 1}}};#IF (%1 =="szelenceszamol") {#IF (%null( %2)) {#ECHO Hasznalat: be|ki} {#IF (%2=="be") {#VA szelence_szamol "be";leltar;#WA 2000;csapat vonal @magenta@bold SZELENCE @resetK OSSZ: @yellow @szelence @reset;config szelenceszamol ki} {#VA szelence_szamol "ki";#VA szelence "";#VA szelence_num "";#VA szelence_count ""}}};#IF (%1=="lokacio") {#IF (%null( %2)) {#ECHO Hasznalat: lokacio [ment] / [torol]-[mind]} {#IF (%2=="ment") {#CALL %mapfilter(%concat("ZoneID = ",%zonenum(%3)));ZoneRooms = "";#LOOP %numrooms {#ADDITEM ZoneRooms %mapvnum( %i);#SH %mapvnum( %i)};#CALL %mapfilter("");#ECHO Betoltes lefutva.;#SH @ZoneRooms};#IF (%2=="torol") {#IF (%3=="mind") {#VA ZoneRooms ""} {#IF (%ismember( %3, @ZoneRooms)) {#VA ZoneRooms %delitem( %3, @ZoneRooms);#SH Lista: @ZoneRooms} {#ECHO %ansi( bold, red)%3%ansi( reset) %ansi( bold, cyan)Nem szerepel a listan!%ansi( reset)}}};#IF (%2=="lista") {#SH Utolso mentett terulet: %ansi( bold, red)%Zonename( "#"%item( @ZoneRooms, 1))%ansi( reset)};#IF (%2=="record") {#IF (%null( %3)) {#SH %ansi( 15)Hasznalat: record "["be"]" / "["ki"]"%ansi( default)} {#IF (%3=="be") {#VA record_iranyok on;config lokacio torol mind;#SH %ansi( 12)Recording!%ansi( default)};#IF (%3=="ki") {#VA record_iranyok off;#SH %ansi( 11)Recording!%ansi( default)}}}}};#IF (%1=="trigi") {#IF (%2=="zonak") {#IF (%null( %3)) {#SHOW Parancs: zonak %ansi( 12)[meg] , [ki] - [mind]@rreset;#SHOW Zonak: %expandlist( @trigi_zonak, ", ")} {#IF (%3 == "meg") {#IF (!%ismember( %4, @trigi_zonak)) {#VA trigi_zonak %additem( %4, @trigi_zonak);#VA trigi_zone_items 1;#SHOW Zonak: %ansi( red)%expandlist( @trigi_zonak, ",")} {#ECHO %4 mar szerepel a listan!}}};#IF (%3=="ki") {#IF (%4=="mind") {#VA trigi_zonak "";#VA trigi_zone_items 0;#ECHO Trigger Zonak uritve!} {#IF (%ismember( %lower( %4), @trigi_zonak)) {#VA trigi_zonak %delitem( %lower( %4), @trigi_zonak);#IF ( %numitems( @trigi_zonak)>0) {#SHOW Zonak: %expandlist( @trigi_zonak, ", ")} {#ECHO Zonak: Nincsenek megadva!}} {#ECHO %4 eddig sem szerepelt a listan!}}}};#IF (%2=="kripta") {#VA teszt_kill 1;#VA trigi "kripta";#T+ NEW_SCRIPTS/TERKOK/KRIPTA;#VA roomnum 1;#VA items 1;config celpontok ki mind;config celpontok meg zombi;config celpontok meg csontvaz;#WALK 17627;#IF (%zonenum==41) {birtokos};hol;#ECHO Trigger - Kripta ON};#IF (%2=="torpfalva") {#VA teszt_kill 1;#VA trigi "torpfalva";#T+ NEW_SCRIPTS/TERKOK/TORPFALVA;#VA roomnum 1;#VA items 1;config celpontok ki mind;config celpontok meg torp;#WALK 18742;#IF (%zonenum==124) {birtokos};hol;#ECHO Trigger - Kripta ON};#IF (%2=="raknoor") {#VA teszt_kill 1;#VA trigi "raknoor";#T+ NEW_SCRIPTS/TERKOK/RAKNOOR;#VA roomnum 1;#VA items 1;config celpontok ki mind;config celpontok meg or;#WALK 1779;#IF (%zonenum==13) {birtokos};hol};#IF (%2=="kekhold") {#VA teszt_kill 1;#VA trigi "kekhold";#T+ NEW_SCRIPTS/TERKOK/KEKHOLD;#VA roomnum 1;#VA items 1;config celpontok ki mind;config celpontok meg meh;config celpontok meg pillango;config celpontok meg gyik;config celpontok meg fecske;config celpontok meg mokus;config celpontok meg vorosbegy;config celpontok meg pacsirta;config celpontok meg eger;config celpontok meg hal;#WALK 5907;#IF (%zonenum==28) {birtokos};hol;#ECHO Trigger - KEKHOLD On};#IF (%2=="gargoyle") {#VA teszt_kill 1;#VA trigi "gargoyle";#T+ NEW_SCRIPTS/TERKOK/GARGOYLE;#VA roomnum 1;#VA items 1;config celpontok ki mind;config celpontok meg veteran;config celpontok meg elit;#WALK 7195;#IF (%zonenum==60) {birtokos};hol;#ECHO Trigger - GARGOYLE On};#IF (%2=="phastus") {#VA teszt_kill 1;#VA trigi "phastus";#T+ NEW_SCRIPTS/TERKOK/PHASTUS;#VA roomnum 1;#VA items 1;config celpontok ki mind;config celpontok meg ogre;#WALK 3314;#IF (%zonenum==26) {birtokos};hol;#ECHO Trigger - Phastus On};#IF (%2=="arena") {#VA teszt_kill 1;#VA trigi "arena";#T+ NEW_SCRIPTS/TERKOK/ARENA};#IF (%2=="fal") {#VA teszt_kill 1;#VA trigi "fal";#T+ NEW_SCRIPTS/TERKOK/FAL;#VA roomnum 1;#WALK 9203;config celpontok ki mind;config celpontok meg or;#IF (%zonenum==78) {birtokos};hol;#ECHO Trigger - FAL On};#IF (%2=="ss") {#VA teszt_kill 1;#VA trigi "ss";#T+ NEW_SCRIPTS/TERKOK/SS;#VA roomnum 1;#WAIT 2000;gondol narbondel;#WAIT 4000;config celpontok ki mind;config celpontok meg drow;#IF (%zonenum==2) {birtokos};hol;futtyent;#WAIT 2000;#ECHO Trigger - SS On;birtokos};#IF (%2=="manok") {#VA teszt_kill 1;#VA trigi "manok";#T+ NEW_SCRIPTS/TERKOK/MANOK;#VA roomnum 1;#WALK 2164;config celpontok ki mind;config celpontok meg mano;#IF (%zonenum==15) {birtokos};hol;#ECHO Trigger - MANOK On;birtokos};#IF (%2=="kiralyvar") {#T+ NEW_SCRIPTS/TERKOK/KIRALYVAR;teszt_kill=1;trigi="kiralvar";roomnum=1;#WALK 12861;config celpontok ki mind;config celpontok meg varosor;config celpontok meg arus;#IF (%zonenum=98) {birtokos};hol;#ECHO Trigger - KIRALYVAR On;birtokos};#IF (%2=="pok") {#VA teszt_kill 1;#VA trigi "pok";#T+ NEW_SCRIPTS/TERKOK/POK;#VA roomnum 1;#WALK 15370;config celpontok ki mind;config celpontok meg banyasz;config celpontok meg pok;#IF (%zonenum=69) {birtokos};hol;#ECHO Trigger - POK On;birtokos};#IF (%2=="kaloz") {#VA teszt_kill 1;#VA trigi "kaloz";#T+ NEW_SCRIPTS/TERKOK/KALOZ;#VA roomnum 1;#WALK 3116;config celpontok ki mind;config celpontok meg kaloz;#IF (%zonenum==23) {birtokos};hol;#ECHO Trigger - KALOZSZIGET On};#IF (%2=="vampirok") {#VA teszt_kill 1;#VA trigi "vampirok";#T+ NEW_SCRIPTS/TERKOK/VAMPIROK;#VA roomnum 1;#WALK 5237;config celpontok ki mind;config celpontok meg vampir;#IF (%zonenum == 40) {birtokos};hol;#ECHO Trigger - VAMPIROK On};#IF (%2=="andelo") {#VA teszt_kill 1;#VA trigi "andelo";#T+ NEW_SCRIPTS/TERKOK/ANDELO;#VA roomnum 1;#WALK 17333;config celpontok ki;#IF (@szint < 22) {config celpontok meg lako;config celpontok meg nezo} {config celpontok meg szurkolo;config celpontok meg lako};#IF (%zonenum==10) {birtokos};hol;#ECHO Trigger - ANDELO On};#IF (%2=="alkotok") {#VA teszt_kill 1;#VA trigi "alkotok";#T+ NEW_SCRIPTS/TERKOK/ALKOTOK;#VA roomnum 1;#WALK 14144;config celpontok ki;#IF (%zonenum==103) {birtokos};hol;#ECHO Trigger - ALKOTOK On};#IF (%2=="gouranga") {#VA teszt_kill 1;#VA trigi "gouranga";#T+ NEW_SCRIPTS/TERKOK/GOURANGA;#VA roomnum 1;#WALK 4970;config celpontok ki;config celpontok meg no;config celpontok meg kofa;#IF (%zonenum==39) {birtokos};hol;#ECHO Trigger - GOURANGA On};#IF (%2=="nighun") {#VA teszt_kill 1;#VA trigi "nighun";#T+ NEW_SCRIPTS/TERKOK/NIGHUN;#VA roomnum 1;#WALK 4355;config celpontok ki;config celpontok meg pap;#IF (%zonenum==35) {birtokos};hol;#ECHO Trigger - NIGHUN On};#IF (%2=="sarkanyok") {#VA teszt_kill 1;#VA trigi "sarkanyok";#T+ NEW_SCRIPTS/TERKOK/SARKANYOK;#VA roomnum 1;#WALK 13576;config celpontok ki;#IF (%zonenum==100) {birtokos};hol;#ECHO Trigger - Sarkanyok On};#IF (%2=="jegpiramis") {#VA teszt_kill 1;#VA trigi "jegpiramis";#T+ NEW_SCRIPTS/TERKOK/JEGPIRAMIS;#VA roomnum 1;#WALK 16541;config celpontok ki;config celpontok meg or;#IF (%zonenum==114) {birtokos};hol;birtokos;#ECHO Trigger - JEGPIRAMIS On};#IF (%2=="lovagok") {#VA teszt_kill 1;#VA trigi "lovagok";#T+ NEW_SCRIPTS/TERKOK/LOVAGOK;#VA roomnum 1;#WALK 12785;config celpontok ki;config celpontok meg lovag;#IF (%zonenum==96) {birtokos};hol;birtokos;#ECHO Trigger - LOVAGOK On};#IF (%2=="outland") {#VA teszt_kill 1;#VA trigi "outland";#T+ NEW_SCRIPTS/TERKOK/OUTLAND;#VA roomnum 1;#WALK 329;config celpontok ki;config celpontok meg vandor;#IF (%zonenum==4) {birtokos};hol;birtokos;#ECHO Trigger - OUTLAND On};#IF (%2=="shikon") {#VA teszt_kill 1;#VA trigi "shikon";#T+ NEW_SCRIPTS/TERKOK/SHIKON;#VA roomnum 1;#WALK 16824;config celpontok ki;config celpontok meg shikon;#IF (%zonenum==117) {birtokos};hol;birtokos;#ECHO Trigger - SHIKON On};#IF (%2=="torpe") {#VA teszt_kill 1;#VA trigi "torpe";#T+ NEW_SCRIPTS/TERKOK/TORPE;#VA roomnum 1;#WALK 1982;config celpontok ki;config celpontok meg torpe;config celpotnok meg gnom;#IF (%zonenum==117) {birtokos};hol;birtokos;#ECHO Trigger - SHIKON On};#IF (%2=="ki") {#VA teszt_kill 0;#VA trigi "";#T- NEW_SCRIPTS/TERKOK/ANDELO;#T- NEW_SCRIPTS/TERKOK/GOURANGA;#T- NEW_SCRIPTS/TERKOK/FAL;#T- NEW_SCRIPTS/TERKOK/GARGOYLE;#T- NEW_SCRIPTS/TERKOK/KALOZ;#T- NEW_SCRIPTS/TERKOK/POK;#T- NEW_SCRIPTS/TERKOK/ALKOTOK;#T- NEW_SCRIPTS/TERKOK/MANOK;#T- NEW_SCRIPTS/TERKOK/SARKANYOK;#T- NEW_SCRIPTS/TERKOK/SS;#T- NEW_SCRIPTS/TERKOK/NIGHUN;#T- NEW_SCRIPTS/TERKOK/KIRALYVAR;#T- NEW_SCRIPTS/TERKOK/PHASTUS;#T- NEW_SCRIPTS/TERKOK/RAKNOOR;#T- NEW_SCRIPTS/TERKOK/VAMPIROK;#T- NEW_SCRIPTS/TERKOK/JEGPIRAMIS;#T- NEW_SCRIPTS/TERKOK/KEKHOLD;#T- NEW_SCRIPTS/TERKOK/TORPFALVA;#T- NEW_SCRIPTS/TERKOK/KRIPTA;#T- NEW_SCRIPTS/TERKOK/LOVAGOK;#T- NEW_SCRIPTS/TERKOK/OUTLAND;#T- NEW_SCRIPTS/TERKOK/SHIKON;#T- NEW_SCRIPTS/TERKOK/TORPE;#NOOP %btncol( 1, black, %color( 12));#NOOP %btncol( 2, black, %color( 12));#NOOP %btncol( 3, black, %color( 12));#NOOP %btncol( 8, black, %color( 12));#NOOP %btncol( 5, black, %color( 12));#NOOP %btncol( 9, black, %color( 12));#NOOP %btncol( 10, black, %color( 12));#NOOP %btncol( 6, black, %color( 12));#NOOP %btncol( 11, black, %color( 12));#NOOP %btncol( 18, black, %color( 12));config celpontok ki mind;#ECHO Trigger Off (@teszt_kill)};#IF (%null( %2)) {#ECHO Trigi: @trigi}}} #ALIAS confighelp {#ECHO %repeat( "=", 35)%ansi( 15)HELP%ansi( 11)%repeat( "=", 36);#ECHO %repeat( "-", 10);#ECHO |Jellem| %repeat( " ", %eval( 19 - %len( "|Jellem|")))%ansi( 12) jellem [be] / [ki];#ECHO %repeat( "-", 10);#ECHO |Celpontok| %repeat( " ", %eval( 19 - %len( "|Celpontok|")))%if( @targets, %ansi( 12)%expandlist( @targets, ", ")., %ansi( 12)Nincsenek.);#ECHO %repeat( "-", 11);#ECHO |Trigi / zonak|%insert( " ")%if( @trigi, %ansi( 12) @trigi, %ansi( 12) Nincs bekapcsolva.)%insert( " ") %if( @trigi_zonak, %ansi( 10) Zonak: %ansi( 14) %expandlist( @trigi_zonak, ", "), "");#ECHO %repeat( "-", 10);#ECHO | Pihi %insert( " ")|%insert( " ") :%insert( " ") %ansi( 12)@pihi;#ECHO %repeat( "-", 10);#ECHO | Combo %insert( " ")|%insert( " ") :%insert( " ")%if( @combo, %ansi( 12) @combo, %ansi( 12) Nincs beallitva.);#ECHO %repeat( "-", 10);#ECHO | Combat %insert( " ")|%insert( " ") :%insert( " ")%if( @oles==1, %ansi( 12) Be, %ansi( 12) Ki.);#ECHO %repeat( "-", 10);#ECHO | Csati %insert( " ")|%insert( " "): %insert( " ")%ansi( 12) csati [meg] / [ki] / [mutat] / [rejt] / [lista] / [szokoz];#ECHO %repeat( "-", 10);#ECHO | Party %insert( " ")|%insert( " "): %insert( " ")%ansi( 12) party [meg] / [ki] / [lista];#ECHO %repeat( "-", 10);#ECHO | XP %insert( " ")|%insert( " "): %insert( " ")%ansi( 12) xpszamol [be] / [ki] / [ment] / [stat][elozo] / [kiolvas];#ECHO %repeat( "-", 10);#ECHO | Szelence %insert( " ")|%insert( " "): %insert( " ")%ansi( 12) szelenceszamol [be] / [ki];#ECHO %repeat( "-", 10);#ECHO | Lokacio %insert( " ")|%insert( " "): %insert( " ")%ansi( 12) lokacio [ment] / [torol]-[mind] / [lista] / [record] [be/ki];#ECHO %repeat( "-", 10);#ECHO %repeat( "=", 60)%ansi( 15)Goodboy%ansi( 11)%repeat( "=", 13)} #CLASS 0