したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が900を超えています。1000を超えると投稿できなくなるよ。

便利なツール・ソフトを作るスレ Ver.18

15鰤ん★:2014/05/27(火) 11:24:33 ID:???
避難中です(・ω・)

672(・ω・):2020/03/11(水) 17:58:29 ID:8elC94Xo
SellNPC 不具合修正

というか、アイテム名に該当する複数のIDの内、
店売り不可フラグを持ってるIDが1つでもある場合に撥ねるとキュスとかが売れなくなる
かと言って以前のままだとアイテムリソースにpairsでforしてるとこで先に店売り不可なIDが
引っ掛かると売れなくなる
って事で大規模改修、店売り可能なアイテムが1つもなければ撥ねる
それ以外の場合はアイテム名に該当するIDをその都度全部評価する

でもって店売り実行箇所で最終確認を実行するように修正

673(・ω・):2020/03/12(木) 20:10:50 ID:ZpWX7lC6
BlockDrop 結局バザーまで対応
  ただし全ての可能性を網羅している訳ではないので注意
  消費アイテムの場合はブロックしても使用できるし、合成素材として指定も可能

合成どうしよう・・・

674(・ω・):2020/03/12(木) 20:13:41 ID:ZpWX7lC6
補足、defaults/settingsとxmlでの block~ を disable_block~ に変更
理由は項目が消えた時に nil になって if での not の判定で真になって
ブロックすべきかどうかの処理を丸々放棄してしまう為
xml的には上位互換と言えば上位互換だけど旧フラグは意味がないゴミなので注意

675(・ω・):2020/03/13(金) 20:35:13 ID:iIXt72YQ
BlockDrop 結局 合成、アイテム使用 にも対応
  ただし例によって全ての可能性に対応している保障はないので自己責任で
  規模が大きくなって突っ込んだデバッグが困難な為、異常検出のコードを強化
  半面、正常な操作でも異常とみなす事があるかも知れない
  そんな時は多分こことかに書き込まないと気付かなくって治さず放置かも知れない

676(・ω・):2020/03/14(土) 01:05:34 ID:xisb8Ko2
Bouyomi 文字通り 棒読みちゃん に読み上げさせる
  ただしソケット通信に失敗した場合固まったりするかも
  あとどうもソケット通信は毎回接続を切らなきゃみたいで(KeepAliveがないWeb接続のコードを流用してるだけ?)
  高負荷下での安定性は未知数、あくまで自己責任で
  設定の類は未完成なのでunityを読み上げさせたくないみたいな人はソース内のテーブルいじってね

677(・ω・):2020/03/14(土) 11:24:12 ID:xisb8Ko2
Bouyomi ソケット関連のエラー処理を追加(とはいうものの、I/Fの詳細がわからない為暫定)
  設定の変更にそれなりに対応、システムメッセージに対応

それと簡単なNG設定を追加したけど、多くの人にとって恐らく不親切
モード(チャットの種類)毎に設定できるべきなんだろうけどデータの持ち方が問題
ただでさえTCPソケット開いて閉じてを繰り返さなきゃなのに(棒読みちゃんの仕様なんとかしt)
luaで複雑なNG設定を網羅とかしたくないし、acceptされてる全モード毎にNG設定の詳細を個別に持ったら
メモリかなり食いそうだしどうしたもんかと
TCP接続は特定の間隔でブロックしてその間のログはバッファリングして後で返そうかどうか思案中
(現状LogHistのファイル出力は書き込みを1秒遅延させてその間に飛んできたログをバッファリングしてる
 バッファの入出力的には↑とは真逆に近い動作(いくら棒読みとは言え遅延させたくない))

678(・ω・):2020/03/14(土) 22:05:36 ID:xisb8Ko2
Bouyomi 遅延出力に対応
  現時点で内部リングバッファ15-1(古いログから破棄)
  1秒間に最大4件(行)のログを 棒読みちゃん に送信
LogHist Bouyomiのコードを流用、プチフリ等の影響を回避できる可能性が高まったかも
ActAlert Bouyomi対応でリングバッファクラスが更に高速化(但しコード量自体は微妙に増)
  ActAlertの本体コードには殆ど変化なし(旧バージョンで全く問題ない環境下では更新の必要なし)

679(・ω・):2020/03/15(日) 08:33:51 ID:4niHijBs
WindowerHelper.dllは2014年のが最新になるのかな

680(・ω・):2020/03/16(月) 18:59:10 ID:P3/PeIUg
WindowerHelper.dll 調べてみたけど公式のURLは404だしもう手に入らないのかな?
それがあればアドオンの殆どをネイティブコードかC#で別窓に大量に情報を表示したり
マルチスレッド(他のプロセスだからあんまり関係ない)で重い処理を実行し放題になるのかな?

681(・ω・):2020/03/24(火) 22:55:26 ID:KoAFHOR6
ダイバーとかで負荷が掛かった時、Windowerのアドオンで何が重いのかやっとわかった
mobの配列とかの走査とか文字列処理しまくるのも確かに重いけど、
テキストボックスの更新(内容が変化しなければ殆ど負荷が掛からない)とか
一つのテキストボックス内での色変更(文字列での\\cs切り替えまくり)が予想以上に重いんだ・・・

色々アドオンを更新

682(・ω・):2020/03/27(金) 18:50:54 ID:7r.KMhcM
hosyu

683(・ω・):2020/03/27(金) 23:03:49 ID:rC14Nh1.
新しいPouchesエラー出るね

684(・ω・):2020/03/28(土) 07:24:45 ID:FVtoXSCI
おはよう、すまぬ、数が大杉てデバッグ追い付いてない
ライブラリにするとlibに〇〇入れてとかなっちゃうしどうしたものかと
夕方見てみる prz

685(・ω・):2020/03/28(土) 15:28:33 ID:FVtoXSCI
pouches勝手に改造版、修正してうp
ついでにinfoもうp、DistancePlusを参考にして(?)距離の表示を追加

DistancePlusは流用元のコードの名残か良くわかってない人が書いてるのか知らんけど、
理論上実行されないコードが散らばりまくってたりselfっつーグローバル変数を使ってたりめっちゃ無駄が多い
仕方なくinfoに統合、info本来のテキストを更新してないフレームで距離表示のテキストを更新する様にした
これで”多少は”負荷が減る筈

686(・ω・):2020/03/28(土) 15:56:14 ID:FVtoXSCI
書き忘れた、DistancePlusは双方のmodel_sizeを引いた値で判定してるけど、表示は生のsqut(mob.distance)になってる
info rawdist off にすると双方のmodel_sizeを引いた値を表示する
一応デフォルト値はDistancePlusに合わせてdefaults.ShowDistanceRaw = true

687(・ω・):2020/03/28(土) 18:22:46 ID:JyRjd8Xk
ありがたー(*´Д`*)

688(・ω・):2020/03/30(月) 20:09:02 ID:G9egWrxs
(多分?)sandboxプラグイン使ってる環境でログインログアウトとか何回かすると
不安定になる事がある原因の一つとして、ログの入出力がある様な気がした(超憶測)
ログ出力するアドオンを軒並み更新(勝手に改造版含む)

689(・ω・):2020/03/31(火) 11:08:23 ID:BLQQPOkU
ここ最近ログイン時にたまにフリーズするんだよな
コンソール見てるとsandboxの読み込み時に止まってる
5回に1回程度の頻度なんだが3垢起動だから結構ストレスだわ
その辺も改善されんのかな

690(・ω・):2020/03/31(火) 11:25:17 ID:C.Amre2k
sandbox自体の読み込みでコケるんだったらaddon関係ないんじゃないかね
最後のキャラのログアウトかシャットダウンで窓が残るのもsandbox使ってる時だし(俺環)
sandbox自体が結構怪しいんだよなぁ

691(・ω・):2020/03/31(火) 14:03:10 ID:57Rjrr9c
sandbox入れてないからわからないけど、FFXIDBがあるとかなりの割合でログイン時にフリーズするね

692(・ω・):2020/04/10(金) 21:39:56 ID:U1NkOr1Y
ActAlert : 交戦相手からの特殊技の特大点滅表示による警告+α
BlockAH : 競売落札とバザー購入の額を制限
BlockDrop : 指定アイテム群の 捨てる 店売り トレード 等を阻止
BlockMt : 誤爆防止/NGワードが含まれる自分の発言をブロック
Bouyomi : 棒読みちゃん でログを音声読み上げ
Counter : 変数の加減算とコメント付きのタグの記憶と表示
info : 常時ジョブと鞄空きと<t><bt>までの距離表示(負荷分散) : ターゲット名が辞書にあれば対応する注釈を表示(主にダイバー用)
InvView : 鞄の中身を常時表示
KillTimer : モンスの没時間をインデックス値で記憶し、最終没からの経過時間を表示
Launcher : 標準のマクロとは別のマクロもどき
LogHist : 特定のログだけ独立表示(ファイル出力も可)
PoolView : 戦利品の 常時/アラート対象が存在する時のみ 一覧表示
Radar : 名前付きレーダー+広域サーチの際に対象が居ればメッセージ出力
Reminder : 特定のリキャやバフ残り等表示+優先度の高い警告を特大表示
SataCheck : 不意打ち角度確認+騙し打ち角度と対象確認
VnmMetor : アビセアン(VNM)追跡のメーター

全部まとめてアップ
Pouches SellNPC PtBuf 魔改造版も別のアーカイブにしてアップ
多分またそろそろ消える(気が向いたらまた戻る事もあるかも知れない)

693(・ω・):2020/04/10(金) 23:34:18 ID:.xMFgf4k
>>692
ありがたやありがたや

694(・ω・):2020/04/14(火) 08:25:44 ID:ZCHYDpm2
>>692
ありがとう
使わせてもらいやす

695(・ω・):2020/05/03(日) 13:11:27 ID:QVAakLSA
LogHist結構便利で使わせて貰ってるんだけどLS2のメッセージ表示はどう設定すればいいんでしょ?

696(・ω・):2020/05/04(月) 10:01:26 ID:sw5fx4RQ
EasyFarmってもう使えないのかな

697(・ω・):2020/05/10(日) 20:29:29 ID:1/6WyONw
ネ実から誘導されてきました
Autoexecを使って「MPが減ったら自動的にエリクサーを使う処理」を作りたいんだけどうまくいかない
今は
<register event="criticalmp">exec Elixir.txt</register>

/wait 2
input /item エリクサー <me>を組み合わせているんだけど

1.MPが残り7%以下とかになってしまって、うまく発動しないことがある
2.すでにマクロを読み込んでいる最中にMPが減ると、エリクサーを使う処理が無視されて不発になる

こんな感じでうまくいきません
もっといい方法はありませんか?

698(・ω・):2020/05/11(月) 20:06:39 ID:6AV02vpc
>>695
モード213と214らすぃ
いちよー Profiles.lua に追記しといたけど色は同じ
色違いにも限界があるしどうしようか思案中・・・

結構不具合修正した奴とかもまとめてうpしといた

699(・ω・):2020/05/11(月) 22:08:25 ID:6AV02vpc
>>697
autoexecは微妙に痒い所に手が届かないから、
面倒でも自分でアドオン作るしかないんじゃないかな

autoexec使ってレイヴでTP1000で自動的にWSって思っても
トロフィーか何かで突然TP3000になるとTPが変化しなくなってWS撃たなくなっちゃうし
結局自分でしょうもないアドオン作った

700(・ω・):2020/05/13(水) 07:58:26 ID:wztsiz0Y
<register event="tp_1???|tp_2???|tp_3???">exec ws/HexaStrike.txt</register>
自分はこの設定で良かった。ただ無駄撃ちとかも多い。

701(・ω・):2020/05/15(金) 00:20:05 ID:4qSbyLVE
>>699
ありがとう!
まさか返信もらえると思ってなかった!
とりあえずアドオン書いてみます。
人生初挑戦のプログラミングだけどわからないことがあったらまた聞きに来ます。

702(・ω・):2020/05/15(金) 09:55:42 ID:4qSbyLVE
とりあえずluaの説明書は読んだけどどう書いたらいいのかさっぱりわからん!
漠然とだけど仕組みはわかった
とりあえず『毒になったらオートで毒消しを使う』アドオンを作ってみたいと思う

1、まずコマンドを登録
→_addon.command = 'dtx
これはすぐ分かった

2 毒消しを実際に使う処理を作る
ここがようわからん
function dtx_command(...) 
からスタートすればいいのは分かるんだが、そっから先をどう書けばいいのかが全くわからない!
だれか優しい人教えてくれ。

3 2で書いたコマンドが発動する条件を書く
→windower.register_event('load', dtx_load)
windower.register_event('gain buff_3', 'addon command', dtx_command)
windower.register_event('addon command', dtx_command)
上から順にdtxがロードされた時、毒状態になった時、アドオンでコマンドされた時
この三行をdtx.luaの最後に記入

こんな感じであってますか?

703(・ω・):2020/05/15(金) 10:01:13 ID:4qSbyLVE
すまん、追記
2のコマンドだけど
まずはシンプルに /item 毒消し <me>が発動するコマンドを書いてみたい
それができたら次は
まず変数1を代入→毒消しを使い、使い終わったら変数を0にして終了
→使い終わるまでは定期的にループさせる 
こんな感じのコマンドにしたい

704(・ω・):2020/05/16(土) 19:06:58 ID:k1cDPRCo
reminder、レッデリでエラー出てる?

705(・ω・):2020/05/17(日) 09:52:00 ID:BpSFOXL2
>>704
出てます
lua runtime error dtx/dtx.lua:9: bad argument #-1 to 'register_event' (function...)
って表示されてます

とりあえずluaの内容を書いとくー
_addon.name = 'detox' --
_addon.version = '1.0' --
_addon.author = 'yoshikun'
_addon.command = 'dtx'

function windower.chat.input(/item 毒消し <me>)
end

windower.register_event('load', dtx_load)
windower.register_event('gain buff_3', dtx_load)

706(・ω・):2020/05/17(日) 16:23:33 ID:85t3zraE
Reminder使わせてもらったんだけど、警告の特大表示っていうのが出ないんだけどなんでだろう。

707(・ω・):2020/05/19(火) 04:04:54 ID:Bid9wHbc
AlwaysShowLargeTextboxがfalseだと戦闘中しか警告しない

708(・ω・):2020/05/19(火) 04:08:29 ID:Bid9wHbc
>>702>>705
まずは簡単にluaのコードを試行錯誤できる環境で勉強する事をオススメする

709(・ω・):2020/05/20(水) 05:01:35 ID:3BWPxHPU
今月復帰した者です。
以前使用していたねこま用地図を窓で使用する為、
リソース記載のエリアを元にリネームを行っていますが、
シャクラミの地下迷宮とデルクフの塔下層の地下が一致しません。
ご存じの方、ご教示よろしくお願いします。

710(・ω・):2020/06/29(月) 23:31:05 ID:b3TZIErQ
これ書き込んだ後、ロダに17個詰め合わせとPouchesPtBufSellNPCアップするけど、
requireするluaファイルをlibsのextlibs以下に追い出したからそのまんま上書き更新すると
ゴミが残っちゃうから注意(あんましlibsの中とかいじりたくなかったけど、もう限界)

んで、既にうちの ぼくのかんがえたさいきょうのwindower が
正規の windower と大分動作が違うから、もしかしたらそのまんまじゃ動かないかも知れない
もし動かなかったらここで報告してくらはい

711(・ω・):2020/06/29(月) 23:43:30 ID:b3TZIErQ
ActAlert:多分更に速くなった
Reminder:アラートとリキャストのテキストボックスを分離できる様にした
    バフ残り時間の一時表示をアラートからリキャストに移動した
    反面、分離しない時の行の表示順序がアラート→リキャストになった
Info:zonetimerに相当する機能を追加(ヘルプかソースの引数解釈部分を参照)
Launcher:一行モードの時、ページとライン(と実行中表示)を別の行に表示できる様にした
PoolView:少し前からロットの勝者とロットの数値を表示できる様にした
    既存のアドオンはチャンクを直接解釈してるけど、実はget_items()以下のオブジェクトに
    Windowerが集計したロット結果がそのまんま入ってる(それを参照してるから軽いかも)
LogHist:コマンドラインからの引数指定による手動スクロール機能と
    メモリ内のログのファイル出力機能を追加
Radar:アラート対象の検出時にwavファイルを再生できる様にした
PlayWav:外部のexeに頼らずにコマンドラインからwavファイルを再生

あと、片っ端からluauをrequireしない様にした(各コンテキスト毎にロードされる為、無駄が生じる)
で、何故かlogとtextsのrequireにラッパーなんか使って無駄があるけど・・・お察しください
業者に大暴れさせたくない

712(・ω・):2020/06/29(月) 23:49:07 ID:b3TZIErQ
一つ忘れてた、何故か/equipset→/equip→外部exeで音声再生→alias削除で
正しく動いてたスクリプトでPlayWavへのコマンドに置き換えると
音声再生の予約自体の終了が早過ぎるせいか、装備変更が上手くいかない事がある
原因不明、とりあえず wait 1 とか入れるのが吉

713(・ω・):2020/07/10(金) 05:10:21 ID:Mv6GUMGw
infoでmob情報出すには、Profilesの後ろのほうに自分で追加必要?
どこにもDBファイルらしきものないし、luaで読み込んでいるのは
Profilesの様だし。
つかaddonのinfobarもjob=${job}って追加しても${job}が何も
返して寄こしやがらない

714(・ω・):2020/07/22(水) 18:37:28 ID:u0ushGeA
Killtimer 使わせてもらったんだけど、ignore targetに追記してもタイマー表示されちゃう。
なんでだろう。

715(・ω・):2020/07/24(金) 07:09:21 ID:hEaogtlc
Treasury使ってるんだけど、
パスしちゃいけないアイテムまでパスしちゃって使いづらい
仕方ないからとりあえず普通にプレイして、
街に帰ってからAutostackで要らないアイテムをまとめて処分してるんだけど、対策とか他にいいツールあります?

716(・ω・):2020/07/25(土) 13:19:52 ID:wqDojeqA
>>715
「何故そうなるか」を調べたのか?アップしてもらった状態をそのままで使ってるなら当たり前。
プログラムを書き直せとは言わないが、自分で設定すら出来ないならツール使うのは諦めろ

717(・ω・):2020/07/25(土) 14:58:16 ID:ZTATGNGk
>>716
Treasury、ReadMeがないからなんとも言えないっすわ…

とりあえずWindower日本語WikiとFFXIAHの該当ページは一通り目を通した
パス、ロット、ドロップに関しては、通常プレイの範疇では問題なく動作している
AutoDrop、AutoStack、Verboseの三項目については正直ようわからん
AutoDropは多分passで指定したアイテムが鞄に流れてきたときに、勝手に捨ててくれる機能
ただ、ONにしただけでは動かないので何がトリガーになってるかがよう分からん
AutoStackは文字通りオートのせいとん機能
Verboseは何に使うのかわからなかったでOFFにしてある

次に誤作動に関してだが、裏など戦利品が大量に流れてくる場所で起きやすい
原因に関しては知ってると思うんで割愛するが、
FFXIAHの該当ページに「仕様だ、諦めろ。とりあえず1度切るかログアウトしろ。」と書いてあったのでそうしてる。

聞きたい点は2点
・Treasuryの誤パスを防ぐ方法はあるか?

・他にアイテムを管理できるツールはあるか?
なければラインエディターでアイテムを捨てることができるアドオンはあるか?
(cancelでストンスキンをきるような感じ)

どちらもないようなら諦めます

718(・ω・):2020/07/25(土) 15:53:57 ID:wqDojeqA
incoming chunk で処理してるから連続でのドロップはどうしようもないと思う。
なので、自分は以下のようにして手動でドロップさせてる。

----------------------
①ファンクションを新規追加
----------------------
function force_drop()
local items = windower.ffxi.get_items()
windower.add_to_chat(55,'******* Drop *******')

-- Check inventory for unwanted items
for index, item in pairs(items.inventory) do
if type(item) == 'table' and code.drop:contains(item.id) then
drop(item.id, index, item.count)
end
end
end

----------------------
②以下をコメントアウト
----------------------
164行〜184行
--[[
windower.register_event('incoming chunk', function(id, data)

end)
--]]

194行目
--windower.register_event('load', force_check:cond(table.get-{'logged_in'} .. windower.ffxi.get_info))

----------------------
③アドオンコマンドに以下を追加
----------------------
windower.register_event('addon command', function(command1, command2, ...)
↓これ
elseif command1 == 'fff' then
force_drop()


④これで自動化は解除されてコマンドラインなりマクロなりから「//treasury fff」を実行すれば、その都度ドロップされる。


----------------------
settings.xmlは以下の通り
----------------------
<?xml version="1.1" ?>
<settings>
<global>
<AutoDrop>true</AutoDrop>
<AutoStack>true</AutoStack>
<Delay>0</Delay>
<Drop>アイテム1,アイテム2,アイテム3</Drop>
<Lot />
<Pass></Pass>
<Verbose>false</Verbose>
</global>
</settings>

719(・ω・):2020/07/28(火) 05:56:01 ID:v/4jSQKw
>>717
上の点
戦利品プールに入りきらないとサーバーは自動でメンバーにアイテムを振り分ける
パスしてなくてもアイテムが入ってくるのはそのせい
TreasuryとLotteryを入れててもそれは発生するのでどうしようもないかと
Lotteryは誰かがロットしたら自動でパスするアドオン

下の点
Treasuryで出来る
//tr lot add xxx ロットする
//tr lot remove xxx ロットしない
//tr drop add xxx 捨てる準備をする
//tr drop remove xxx 捨てる準備を止める
//tr autodrop on 捨てる準備が出来たアイテムを捨てる
//tr autodrop off まだ捨てない

720(・ω・):2020/07/28(火) 13:54:09 ID:dHhC78uY
EnjoyFishing1.2.3.zip 持ってる方いませんか?
ロダのは1.2.2はダウンロードできるけど1.2.3が出来ない

721(・ω・):2020/07/31(金) 01:12:48 ID:tSypEY/k
>>720
Gitにあるのをコンパイルするといい。
でも、バージョンアップされてないので動かない。

722(・ω・):2020/07/31(金) 23:19:51 ID:WwvIoaDM
ActAlert:多分高速化
Reminder:特定のデバフの表示に対応
Info:タゲが変わった時だけ検索する様に修正(ただし何も無い状態での負荷は微増)
  プロファイルにダイバーの定義を記述
Launcher, Radar, PoolView, KillTimer, Counter, PlayWav:
  確か大した修正は入れてない…筈?
↑全般:通常の環境でのオーバーヘッドを低減

PtBuf:多分動いてなかった不具合を修正、盾レイアウトにもできる様に設定追加

723(・ω・):2020/07/31(金) 23:33:09 ID:WwvIoaDM
普通の環境でのテストはしてない(ぉ
環境合わせるのと全部テストするのmんdks(ry

基本的に g_ewtexts とかそれらしい変数は普通の環境だと false のまんま…の筈(true にはなり得ない)
んでもって普通のtextsで解釈されないエスケープが混じってて訳わからんとかだったら
以下を参考に何がしたいのかをお察しください

\xi(ファイル名) 次のテキストの位置に画像を描画しつつ、画像の幅だけテキストの位置を右にずらす。
  行の高さは全てのテキストと画像の高さの内、一番高い奴
\xsi 同上(サイズ指定付き)
\xfr フォントリセット
\xfs フォントサイズ変更
\xbd 画像ファイル指定の時の基準ディレクトリ(画像並べると文字数が凄い事になるから)
\xpb 横向きのバーグラフを表示(但し幅は文字数指定)
\xdh ダミーで高さを指定(現在のフォントとサイズより小さい時は意味なし、画像が無い行の高さ合わせ)

以下は文字でも画像でも、テキスト(と画像)の現在位置を無視し、現在位置を変更する事はない
\xat 絶対座標に文字を表示
\xai 絶対座標に画像を表示
\xasi 同上(サイズ指定付き)
\xdl 直線の描画
\xdr 矩形を描画
\xde 楕円を描画
\xfr 塗り潰しで矩形を描画
\xfe 塗り潰しで楕円を描画
\xbcs 文字の一時的な背景色を指定(\crでリセット、texts自体の背景色とは独立)
\xscs 文字の一時的な縁取り色を指定(\crでリセット)

724(・ω・):2020/08/01(土) 15:24:11 ID:0dfdQIAw
Launcher と Radar は(textsの実行側の効率が上がって結果的に)結構無駄が無くなってるかも

以下独り言?extlibsのcolorstringbuilder.lua参照
行単位で合理化する従来のbuild_colorline〜とは別物
例の「全ての行が色付きの文字で始まっていると横方向の表示開始位置がバグる」問題を回避しながら
色のエスケープを極力減らす為の仕組み

前者は行は意識せずにエスケープする必要がない時は\csを出力しない様にするだけの代物
後者はバグを回避したかどうかを判断しつつ行単位で必要のない\csを出力しない様にする為の代物
前者の方が汎用的な反面、バグは利用側が回避しなければならない、文字列の追加毎にオーバーヘッドが発生する、
複数のtextsに似た様な文字列を出力したり、出力を振り分けたりする場合にはかなり不向き
後者は行の文字列を作る時に文字列同士を結合する場合(大抵結合する)、
それらを更に結合するからメモリの複写の回数も2倍になってオーバーヘッドが大きい

でもって言うまでもないとは思うけど、文字列の実体の確保が実際に行われるという事は
ヒープの確保が行われるのが確定する(可変長だからC,C++でもそうなる)
内部で直接mallocやnew等をせずに、小さなヒープや文字列専用の独自のアロケータを使ってるにしても自動変数より遥かに遅い
GC積んでると早く見える事もあるけど、メモリ開放や各変数の被参照のチェックの類の処理時間は直接見えない
更にJITコンパイラの類を積んでない以上、やたらローカル変数やリテラルの文字列(リテラルに見える)を
分離したりサブルーチン化クラス化して綺麗にわかりやすく見えればいいってもんじゃない
ループにしてなかったりサブルーチン化してなかったりわざわざ冗長にスペース有り無しを並べてたり
無駄が多い様に見えるけど、下手に合理化すると遅くなるかも知れないから、いじる人は注意

725(・ω・):2020/08/01(土) 15:38:35 ID:0dfdQIAw
それと焼け石に水だけど、.NETの類と違ってluaは(よっぽど独自の改良を突っ込みまくってない限り)
別スレッドでのGCどころか再配置もしないからluaでの使用済みメモリはかなり断片化する
・でかい変数は極力最初に確保して動かさない
・参照型の変数自身とその中身の実体も極力最初に確保して、実体はなるべく再確保させない
これだけで「超長期的にhogehogeを動かし続けるとエラーも吐かずに落ちる」可能性を減らせる…かも…?
それなりに作ってれば経験あると思うけど、バグってメモリ確保しまくる無限ループに陥ると一瞬でこの状態になる
あんましこういうとこで偉そうに言う事じゃないと思うけど、他の人のaddonのコード見てると
これを意識してる様子が無い・・・それが積もり積もると断片化は云々かんぬん

あと、アイテム名をキーにしたID値のテーブル・・・各アドオンが独自に作りまくると
コンテキスト自体が違うもんだからその分のメモリ確保しまくりまくる
俺も必要だからやっちゃってるけど、あれをそれぞれが好き勝手作りまくるとメモリすんごい食う
極力避けた方がいい

726(・ω・):2020/08/25(火) 12:33:22 ID:EOCGCxNs
BoxUnlokerで数字入力がうまく行かないから
Boxdestoryer改造して数字を入力するようにしようとしてるんだけど、
数字入力のダイアログに入力する方法ってある?
テンキーでもそうじゃない数字でもsetkeyじゃ入力できないんだよな…enterだけは効くんだけど。

727(・ω・):2020/10/31(土) 22:22:46 ID:iUoNCZY6
PtBuf 新しいバフでファイルが無い時にエラーが出るかも知れない問題とかの修正
SellNPC Pouches 確か表示関係の不具合修正があった様な?

ActAlert ナンカさりげなく重要な内部の改善があった気がする
Reminder ナンカさりげなく重要な機能追加があった気がする Profile.lua参照
KillTimer 更新された履歴を最新にする処理が丸々抜けていた為、実装
Radar 方角の計測為の2つのオブジェクト指定が逆だった不具合の修正?
LogHist スクロールしようとするとエラー吐きまくる不具合修正とか?
Counter Launcher 不具合修正があった筈
Info ゾーンタイマみたいな機能を追加した筈
BlockDrop PoolView 忘れた

LineCheck モンスターの視線の直線上からどれだけ距離が離れてるかを近似値で表示
KillCounter モンスターの没数を名前で集計(デフォルトでPTメンバーのみ)

728(・ω・):2020/10/31(土) 22:25:23 ID:iUoNCZY6
KillCounter は KillTimer みたいにゾーンID見てないから注意
エリアを区別せずに名前しか見てない
他のエリアの同名のモンスターを倒してもカウントされるし、
削除とかで条件に合った項目はエリアとか関係なく全部消える

729(・ω・):2020/11/01(日) 17:03:08 ID:Gkv5HsoE
思い出した
Counter <bt>の出現/消滅でリセットされる記憶を追加

あとwindowerが抱えてる問題だと思うけど、タゲってる間に消えたmobとか
イベントで移動して相対的に消えたmobとかがmob_arrayから消えない事がある
多分LuaのGCの関係でwindowerがオブジェクト参照を掴みっぱなしで解放されないみたいな問題かも?
addonをreloadすると正しく消える

730(・ω・):2020/11/02(月) 22:19:14 ID:l/NmZvGY
201102版をアップしたけどReminderとLineCheckを使わない人は意味なし

Reminder ジョブ問わずalertとrecastそれぞれの先頭と末尾に常に表示する項目を設定できる様にした
 201031版での衰弱とかテラーとかの一覧を参考にいじっちゃった人すまぬ
LineCheck 近似値だと近距離で誤差が大きくなるもんだからきっちり計算する事にした
 ただしKy〇uとかで実際に試した訳じゃないので取扱注意

731(・ω・):2020/11/10(火) 18:50:54 ID:4yjrjskQ
20201110のVerUPで
EnjoyFishingが使えなくなりましたね
キャラ選択画面は出るがキャラクター選択後に起動してください
EliteAPI v1.3.0.2
EliteMMO.API v1.3.0.0

732(・ω・):2020/11/11(水) 15:08:45 ID:2OhjSVrU
EliteAPI v1.4.0.1リリースされて使えるようになりました

733(・ω・):2020/11/16(月) 09:07:12 ID:u2KcQyIw
ぬう…API最新にしても釣り上げのタイミングでDateTimeエラーが出て止まるんだが、俺環か

734(・ω・):2020/11/17(火) 12:20:45 ID:evg3xgeM
>>733
そのエラー出た事ないな
ファイル一からやり直しみたら?

735(・ω・):2020/12/07(月) 06:41:46 ID:OzrG3kpw
sellnpcここの拾って使わせてもらってるのですが、ファイルにまとめたの一括売却する方法ってあるのでしょうか?
今は//sellnpc add パウダー ってな感じで1種類ずつ売却してます。

736(・ω・):2020/12/07(月) 20:33:03 ID:kWO8ssgM
ファイルにまとめたのってのが意味わからんが、profiles.luaに直接書き込むじゃいかんのか

737(・ω・):2020/12/22(火) 08:42:21 ID:PDjsNTks
//sellnpc set akeronpaudaa
add複数をまとめてやる感じでできる
オリジナルと微妙に使い方違う

738(・ω・):2020/12/28(月) 18:00:48 ID:4HmRWXQM
Enjoyfishing、突発的に無反応になってずっとキャラが何もしなくなる
エラー表記も何も出ず、キャスト中とか反応待機中の状態のまま、1時間以上ぼっ立ちしてるんだけどこんな事ある?
設定何も変えてないし全然問題ないキャラもいるんだけどなぁ、アドオンが悪さしてんのかな

739(・ω・):2020/12/29(火) 20:27:54 ID:nL9.CiQs
CAST表示で棒立ち状態はあったが原因はわからない
Enjoyfishing終了して立ち上げ直すと治ってた

740(・ω・):2021/01/08(金) 15:38:20 ID:zdq/yPCg
>>738
複数アカウントでそれ起きるな
プロセス監視が上手くいかないのかなって思って諦めてる

741(・ω・):2021/01/10(日) 17:20:19 ID:fh9FLh/I
Box Unlockerはもう動かなくなったのね・・・残念
代用ツールってあったりしますか?

742(・ω・):2021/01/11(月) 06:44:25 ID:qLKtTTcY
>>741
最後の数字入力が機能しないけどカーソル選択は動くぞ

743(・ω・):2021/01/12(火) 09:48:49 ID:S3Jh0LQw
>>742
まさに最後の入力してくれないのが惜しいよねえ
海外勢のBoxdestoyer使ってるけどこっちも手入力だわ

744(・ω・):2021/01/17(日) 16:35:44 ID:0ucn2TPM
KillTimer PTの討伐分だけを記録するオプションの追加
他しょうもない微修正とか

ダウンロード数見るに殆ど公開する意味はないらしいのと、
また課金停止に入るから多分暫く不具合修正とかもないかも
(思い出したころにブクマからこのスレを開く事もあるかも?)
外人の目の届くとこに置いとこうかとも思ったけどフォーラム死んでるみたいだし
githubにしてもどこに報告すれば外人の目に留まるのかわからへん
19種の方は誰かが適当に外人とこに放り投げといてくれるとI18N化して更に改良してくれる人が出てくるかも?

745(・ω・):2021/01/19(火) 13:00:10 ID:j5LGvWjo
Battlemodの日本語化ってどこ弄りゃいいん?

746(・ω・):2021/01/21(木) 23:16:42 ID:GPSRA3P2
>>745
それを聞くようならBattlemodだけじゃなく全アドオンを使うのは諦めれ…

747(・ω・):2021/01/24(日) 19:40:25 ID:.EuYFmLE
EnjoyFishing制作者さん見てるとは思えないけど
本ワサビ釣る時の挙動を修正して欲しい
さびき針だと3本釣れる事もある
で現状では対応出来ていない

748(・ω・):2021/03/07(日) 16:05:09 ID:j5bfuxOg
azuresetsで青魔法の順番を維持するようにする為のそこそこ汚くない修正(俺様専用メモ)
dower側でのアドオンのBAで上書きされる事があるので
オリジナルと修正後のファイルの両方をバックアップしておいた方がいいかも

関数set_spells_from_spellset内の「Remove phase」のコメントの次の
> for k,v in pairs(currentSet) do
から、このforと対になるendまでを以下の内容に丸ごと入替
> for i = 1, 20 do
>  local slotName = 'slot%02u':format(i)
>  if currentSet[ slotName ] and currentSet[ slotName ] ~= setToSet[ slotName ] then
>   windower.ffxi.remove_blue_magic_spell(i)
>   --log('Removed spell: '..v..' at #'..i)
>   set_spells_from_spellset:schedule(settings.setspeed, spellset, 'remove')
>   return
>  end
> end

同関数内の「〜 empty slot 〜」のコメントの次の
> for k,v in pairs(setToSet) do
から、このforと対になるendまでを以下の内容に丸ごと入替
> local slotName = 'slot%02u':format(slotToSetTo)
> if setToSet[ slotName ] then
>  local spellID = find_spell_id_by_name( setToSet[ slotName ] )
>  if spellID ~= nil then
>   windower.ffxi.set_blue_magic_spell(spellID, tonumber(slotToSetTo))
>   --log('Set spell: '..v..' ('..spellID..') at: '..slotToSetTo)
>   set_spells_from_spellset:schedule(settings.setspeed, spellset, 'add')
>   return
>  end
> end

749(・ω・):2021/03/12(金) 08:26:10 ID:ccoI1V2g
KillTimerがBattlemod使ってると動かなくなるのね

750(・ω・):2021/03/14(日) 16:42:13 ID:V1b0pgC2
battlemodってparse_action_packetの中でチャンクの中身をちょいちょい改変しちゃうのね
battlemodに限らずチャンクの中身を変えちゃうようなアドオンは
そのチャンクを参照する他のアドオンと相性が悪い事がままある

751(・ω・):2021/03/16(火) 14:21:44 ID:Shf./lm6
ネ実から誘導されてきました
スペクトラルフローを撃つ、
ただしリキャストがまだの時は代わりにサブダックションを撃つみたいなマクロが組みたいんですが
何かいいツールはありませんか?
gearswapは導入済みです
最初はluaテキストに
/ma スペクトラルフロー <t>
wait 0.1
/ma サブダックション <t>
と書いて動かしていたんですが、着替えがうまくいかなかったのでどうしようか悩んでます

752(・ω・):2021/03/17(水) 03:44:07 ID:g1AtEB3k
以外と知らない人が多いんだけど、オススメのクライアントからのパケット(チャンクの集合)送信間隔は0.4秒
普通に考えて”とあるパケット”を送信後に1秒きっかりでパケットは送信できない
純正のオススメクライアントのマクロだと wait 1 とか書けるけど、
あれは内部で0.4の倍数に切り上げしてる
具体的には wait 1 は1.2秒、wait 2 は2秒丁度、wait 3 は3.2秒

複数のアビの連続実行でたまに0.8秒間隔で実行できてる様に見える事があるけど
(サーバでのポーリング間隔とサーバからの送信ラグがたまたま重なった時かどうかは不明)
大抵は1.2秒間隔じゃないと失敗が頻発する
何回もオススメのマクロとスクリプトやwindower.send_command()で
オススメの wait 1 が1.2秒かどうか計ってみるよろし

753(・ω・):2021/03/17(水) 03:52:22 ID:g1AtEB3k
すまん、寝ぼけて最後の行の”着替え”って単語しか読んでなかった
luaテキストってのは拡張子が.luaのファイルで記述するプログラムの一種で、
/ma スペクトラルフロー <t> みたいなのはスクリプトなんだけど、その区別はついてる?

それはともかく、/item やまびこ薬 <me> と /item 万能薬 <me> の連続実行って
魔法でもできたっけ?できるとしたら wait 挟むと逆に上手くいかなくなる
一回オススメのクライアントが純正のコマンドを受け付けたら一定時間以降のコマンドは受け付けなくなる

754(・ω・):2021/03/17(水) 20:03:53 ID:tmAan0dM
ありがとうございます
waitの数値を1.2にしたら解決できました
(重いところで魔法を撃つと、極稀にprecastの装備で撃っちゃうのが気になりますが)

ついでなので前々から疑問に思っていることも質問させてください
・三垢で起動するとたまに三垢目のCPUの数値が跳ね上がることがあるのですが、原因は何が考えられますか?
(再起動すると直ります)
ニ垢の時は不具合は起きてないです。

・Autojoinのアドオンで味方を誘うと1垢目と3垢目のキャラはスムーズに操作できるのですが
2垢目→3垢目だけうまく誘えません(3→2は誘えます)
一度ホワイトリストから削除して再登録すると直るのですが、再起動するとまた誘えなくなります。
実害は小さいので放置しているのですが、直せそうなら直したいです。

755(・ω・):2021/04/02(金) 13:57:53 ID:9xINHXgI
precastのままってのは重いとこだけでなく動画見ながらとかで回線重かったりな時ももにょる
FF11内のマクロでも起こり得る問題だし別のアプローチで対処するしかない
具体的には詠唱時間をみて0.2倍(FC80)にすると0.8秒を下回る時はFCを落とした装備セットにして
詠唱時間が必ず0.8秒を下回らないギリギリになるようにするとか(ry

多分だけどFF11内のマクロの /equip → /ma → /equipset の時の最後の/equipsetは
内部で0.4秒後に送信されるように細工してある
サブダクでやってみるとわかるけど/equipsetが反映される時と反映されない時がある
カスダメでもマクロ終了後には/equipsetの装備になってるから送信が間に合ってないかもしれないってのがわかる

756(・ω・):2021/05/19(水) 21:52:02 ID:nuxib4mY
easyfarm で定義したアクションはgearswapで拾いますか?
gearswapと手動もしくは純正のマクロでの組み合わせによる着替えは確認出来たのですが、easyfarm で動かした時にはgearswapでの着替えが反映されていない様に見えます

757(・ω・):2021/05/20(木) 01:02:23 ID:Y7exsS3.
自己解決しました
サンプルコードに倣ってprecastでwsのみws名で装備を拾って着替える様に書いていたのですが最後の
if set_equip then がtrueにならず着替えが行われていませんでした
set_equipへの代入は行われていたけど条件が真にならない理由が突き止められなかったのでローカル変数への代入はやめて着替えを呼ぶようにしました。
お騒がせしました

758(・ω・):2021/05/24(月) 21:33:51 ID:bo2iJ5SQ
久しぶりに復帰してみたらこのスレもまだあって安心した・・・
WindowerのプラグインにあるChatMonについて教えてください(エモとかテル来たら音声鳴らす奴)
初期設定の音量がでかすぎるんだけど、プラグインの設定で音量下げられないんでしょうか?

759(・ω・):2021/05/25(火) 18:21:49 ID:O4.ttaX2
>>758
play.exeとか使ってるならwindows音量ミキサーで実行してる瞬間を捕まえて
プロセスの音量を設定するか再生音量変えられるような再生プログラムを探すしかないかも

760(・ω・):2021/05/25(火) 18:28:30 ID:O4.ttaX2
アドオン19種(20種)を更新

ActAlert 特定の条件下で指定された特殊技や魔法詠唱に対応したコマンドが
    実行されない事がある不具合を修正
その他 所々ヘルプの間違いを修正、一応各アドオンに readme.txt を添付

AutoTarget 次のターゲットを自動的に決定するアドオン
    優先順位が高い順に、手動で指定したターゲット、同名、設定の一覧、全部
    それぞれについて有効無効を指定可能
    デフォルトで何もしないから /target <stnpc> → /console autotarget setnext とか
    autotarget samename on とか Profiles.lua のモンス一覧をいじって autotarget namelist on とか
    色々練習した方がいいかも知れない

ウェルカムバック終了後にヘルプテキスト修正とかしたからもしかしたら lua l しただけでエラーになるかも
その時はこのスレに書き込んでくれれば・・・もしかしたら思い出した頃に見て修正するかも知れない

761(・ω・):2021/05/25(火) 18:47:28 ID:O4.ttaX2
忘れてた、仕様の考慮不足で samename は使わない方がいいかも知れない
理由は samename と namelist の両方が on で 戦 忍 の2タイプを
namelist で 戦 → 忍 で並べてた時、忍をやってる最中に別の戦忍が沸いても
samename が優先されて次は戦じゃなくて忍がターゲットされるから

コードいじれるなら find_target_by_name 呼び出してるとこの if〜end6行と
find_target_by_list 呼び出してるとこの if〜end6行をひっくり返すべし
副作用とかはないと思うけど、実際に試してないからわからん、自己責任で

762(・ω・):2021/05/29(土) 00:05:39 ID:o.dwBG7s
>>O4.ttaX2

いつもありがとう!

763(・ω・):2021/06/03(木) 17:14:03 ID:086d0wvg
>>O4.ttaX2 様

この度はありがとうございます。初歩的な質問で申し訳ないです。
windowerアップローダーから、5月25日付の20種アドオンをダウンロードしました。
ところが例えばAutoTargetを読み込みしても、ファイルが存在しないという類のエラーが出ます。
おそらくなにか本体的な?Dataフォルダなどがないのでファイルが不足しているのだと思うのですが、探してみましたがファイルが見つかりませんでした。
もしくは前提のアドオンが足りないのかもしれませんが、どのように対処したらよいでしょうか。

764(・ω・):2021/06/04(金) 12:41:34 ID:C.uosfhY
zipファイルを展開して出てきたファイルとフォルダの中のlibsフォルダ内のextlibsを
addonsフォルダの下のlibsの中に突っ込んでなかったら突っ込む
libsフォルダをaddonsフォルダ内に突っ込んでもいい

765(・ω・):2021/08/13(金) 18:39:47 ID:MEnda3v2
20210813版
アドオン20種 と Pouches SellNPC PtBuf 全般にて、未使用の for pairs のキーの代入先を
廃棄用のメタ変数名? _ に書き換え

AutoTarget:
 大量に名前を突っ込むとパフォーマンスが落ちる問題を修正
 コンテンツ等に合わせていちいち autotarget load hoge しなければならなくなった
 それに伴い設定のXMLファイル内でのデータ構造を改修、互換性が無くなったので注意
 評価順位 名称一覧→同名→claim(事実上機能しない)→全て
 名称一覧は defaults.name_profile_list にてプロファイル毎に名称を列挙する様になった
 加えて各名称の先頭に一致条件を記述可能になった(説明は Profiles.lua 参照)
 ちなみに /autotarget on で使うと機能する/しないが安定しない為、off で使う事を推奨

ActAlert:
 <t> も表示する様に修正
 defaults.TpMoveInfo にて特殊技に対する注釈がある場合、注釈も表示できる様にした

あとナンカあったかも知れないけど忘れた

766(・ω・):2021/08/13(金) 18:41:07 ID:MEnda3v2
訂正、評価順序
明示的な指定(<stnpc>とコマンド実行で指定された時のみ)→
名称一覧→同名→claim(事実上機能しない)→全て

767(・ω・):2021/08/13(金) 23:13:27 ID:MEnda3v2
更に AutoTarget 補足、タゲ切り替えとかの後、一定時間GMモードに入る様になってるから
殴られまくってても抜刀収刀できると思うけど、スループットじゃなくて応答速度的に遅い環境で
えっらい数のモンスに殴られまくったりすると短すぎるかも知れない
コードの方の冒頭の const_〜 いじるしかないかも知れない

768(・ω・):2021/08/14(土) 15:21:30 ID:Eos5NALM
AutoTargetについて識者に相談
攻撃対象の変更にいちいちコマンドを仕込んだマクロとか使い分けたくない
でもアドオンだとポーリング(周期処理)での<t>の変化とか変化からの経過時間、
それとサーバからのassist受信での<t>の変更命令があった事しかわからない
assistはクライアントが攻撃開始か攻撃対象変更するか、/autotarget on の時に
サーバが自キャラの攻撃対象を自動変更した時しか送られない筈?
(この場合どうでもいいけど魅了の時にサーバが自キャラに抜刀させた時も送られてくる?)

クライアントが攻撃開始、攻撃対象変更したら一定時間はassistを完全に無視、
それ以外のassistがサーバによるタゲ変更だとみなして、
アドオンが独自に攻撃対象変更のチャンクを送信・・・そうすればそれらしく動く
但し、ダイバーで大量に沸いたりみたいな緊急時にアドオンが勝手に攻撃対象変更、
でもその直後に更にその対象が他の人によって倒されたりして
更にサーバからassistが送り付けられたりすると
アドオンは既に一定時間無視のモードに入ってるから次のターゲットの変更に行かなくなる
つまりわちゃわちゃしてる時の事を考えると一定時間無視とかはしてはいけない

engage中の<t>を一定時間IDで全部記憶してそれらのHPが全て0になった時に
アドオンが攻撃対象変更のチャンクを送信する?
でもクライアントからの普通の操作で攻撃開始即ターゲット変更とかで
攻撃対象と違うキャラにカーソル(<t>)が向いて、
一旦収刀するか<t>か本来の攻撃対象以外に攻撃対象変更をして、
改めて本来の攻撃対象に攻撃対象変更しないとカーソルを直せない不具合とかあるから
<t>での判断ができない・・・

じゃあ全ての攻撃開始、攻撃対象変更、assistのチャンクに入ってるIDを
一定時間監視し続けてそいつらのHPが全て0になった時に
アドオンが攻撃攻撃対象のチャンクを送信する?
それで矛盾なく機能する?大丈夫?

769(・ω・):2021/08/14(土) 15:24:46 ID:Eos5NALM
↑/autotarget on でも機能するようにする為の相談
/autotarget off ならいちいち収刀しちゃうけど問題なく機能する
/autotarget on でも機能するなら、たまたまサーバが選んだ次の対象が
アドオンが選んだ対象と同じなら収刀しなくなって効率が良くなるから
/autotarget on でも機能するようにさせたい

770(・ω・):2021/08/14(土) 15:33:28 ID:Eos5NALM
一番やっかいなネトゲ特有の構造による問題を説明し忘れてた
/autotarget on だと元の攻撃対象が倒された後、サーバが次の攻撃対象を選ぶと
サーバはassistをクライアントに送り付けるけど、
クライアントが次の攻撃対象へのassistを受信した時点で
元の攻撃対象のHPが0になったという「キャラ毎の情報のチャンク」を
受信している保障が全く無いどころか、ラグが無くても何回か試すとそういう状況に何度も遭遇する
サーバからのassistによる攻撃対象変更なのか、クライアントでの攻撃対象変更や /assist コマンドとかによる
タゲ変更なのか、判断する材料が乏し過ぎる・・・

771(・ω・):2021/08/19(木) 20:10:16 ID:PdtYDkpI
Pouches が正規のバージョンで上書きされてた
どうしてもな人は古いバージョン使ってて

その内コマンド Pouches のまんまでアドオン名 PouchesJ に書き換えて上げ直す


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板