LSLコード書き込み実験

LSLコード書き込み実験

- 堀田 海月 の投稿
返信数: 7

default
{
    state_entry()
    {
        llSay(0, "Hello World!");
    }

    touch_start(integer total_number)
    {
        llSay(0, "あなたは、" 
            + (string)llDetectedTouchFace(0) + "面をタッチしました。");
    }
}

HTMLタグ直打ちで書いてみたけど、めんどくさいwwww

堀田 海月 への返信

Re: LSLコード書き込み実験

- Yan Lauria の投稿

そうそう、LSLをここに貼り付けると、改行が消えてしまうので大変^^;;。やっぱ、HTMLタグ直打ちしかなさそう。

Yan Lauria への返信

Re: LSLコード書き込み実験

- 堀田 海月 の投稿

コードだけなら、

<pre><code></code></pre>

で挟むだけで、改行と空白は消されなくなると思います。

色付はいちいち<span style="color: #xxxxxx;"></span>で囲ったので面倒です(^_^;)

堀田 海月 への返信

Re: LSLコード書き込み実験

- Xpyoda Janus の投稿

プリプロセッサを作ればいいのかもしれませんね。

LSLのコード --> HTMLコード断片  に変換するようなもの。

Web上でできればいいんでしょうけど。

JavaScritp組み込んだ、LSL2HTML.html とかを作って、入力フォームのLSLコードをボタン一発で HTMLコード断片に、ブラウザ上で返還できればいいんでしょうけど....、JavaScript詳しくないので詳しい人にお任せします...www。

 

Xpyoda Janus への返信

Re: LSLコード書き込み実験

- Iseki Fumikazu の投稿

ちょっと意味を理解していないかも知れませんが,「段落」の所で「整形済み」を選んで,コピペするのは駄目なのですか?

下のような感じ.色は付きませんが.(手直にあったコードなので LSLではありませんが)

        public XmlRpcResponse certSend(String url, X509Certificate2 myClientCert, bool checkServerCert, Int32 timeout)
        {
            //m_log.InfoFormat("[MONEY NSL RPC]: XmlRpcResponse certSend: connect to {0}", url);

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            if (request==null)
            {
                throw new XmlRpcException(XmlRpcErrorCodes.TRANSPORT_ERROR, XmlRpcErrorCodes.TRANSPORT_ERROR_MSG +": Could not create request with " + url);
            }

            request.Method = "POST";
            request.ContentType = "text/xml";
            request.AllowWriteStreamBuffering = true;
            request.Timeout = timeout;
            request.UserAgent = "NSLXmlRpcRequest";

            if (myClientCert!=null) request.ClientCertificates.Add(myClientCert);   // 自身の証明書
            if (!checkServerCert)   request.Headers.Add("NoVerifyCert", "true");    // 相手の証明書を検証しない

            Stream stream = request.GetRequestStream();
            XmlTextWriter xml = new XmlTextWriter(stream, _encoding);
            _serializer.Serialize(xml, this);
            xml.Flush();
            xml.Close();

            HttpWebResponse response = null;
            try {
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (Exception ex) {
                m_log.ErrorFormat("[MONEY NSL RPC]: XmlRpcResponse certSend: GetResponse Error: {0}", ex);
            }
            StreamReader input = new StreamReader(response.GetResponseStream());

            string inputXml = input.ReadToEnd();
            XmlRpcResponse resp = (XmlRpcResponse)_deserializer.Deserialize(inputXml);

            input.Close();
            response.Close();
            return resp;
        }
Iseki Fumikazu への返信

Re: LSLコード書き込み実験

- Iseki Fumikazu の投稿

う~ん.よく読むと,やっぱり,お呼びじゃなかったかも.(^^;

Iseki Fumikazu への返信

Re: LSLコード書き込み実験

- Shinobar Martinek の投稿

え、何が問題になってるんですか?「段落」のままでもコピペできますけど。色も付けられます。

// stool rotation
// 8 May 2008   by Shinobar Martinek
float angle = 0;
float step = 90.0;
//
rotation rotorg = ZERO_ROTATION;
integer linkorg = 0;
string keyroot = NULL_KEY;

default
{
    state_entry()
    {
        llOwnerSay(llGetScriptName());
        rotorg = llGetRot();
        linkorg = llGetLinkNumber();
        if ( linkorg > 1 )
        {
            keyroot = llGetLinkKey(LINK_ROOT);
        }
        else { state active; }
    }

    on_rez(integer param)
    {
        llResetScript();
    }
}

state active
{
    on_rez(integer param)
    {
        llSetRot(rotorg);
        llResetScript();
    }
    
    touch_start(integer total_number)
    {
//        llOwnerSay("Touched.");
        key agent = llAvatarOnSitTarget();
        if ( agent != NULL_KEY && agent != llDetectedKey(0) ) { return; }
        llSetRot(llGetRot()*llEuler2Rot(<0,0,DEG_TO_RAD*step>));
    }
}

Shinobar Martinek への返信

Re: LSLコード書き込み実験

- 堀田 海月 の投稿

段落にコピペするとその時点では先頭の空白は削除されてしまうんですよね><
後フォントはプロポーショナルフォントが選ばれれてしまいます。
なので、等角フォントを選んでくれるよう、<pri>タグと<code>タグで挟んだのが最初の投稿です。

あとふみさんの仰るとおり、整形済みで同じことが出来ますね。

 

default
{
    state_entry()
    {
        llSay(0, "Hello World!");
    }

    touch_start(integer total_number)
    {
        llSay(0, "あなたは、"
            + (string)llDetectedTouchFace(0) + "面をタッチしました。");
    }
}