hsp天道 | ||
使用ゲーム | 信長の野望・天道 | |
シナリオ・担当勢力 | - | |
シナリオの設定 | - | |
動画形態 | - | |
登録武将 | - | |
史実武将の扱い | - | |
縛り | - | |
投稿時期 | - | |
投稿者名 | tamura | |
マイリスト | hsp天道 | |
関連タグ | 【hsp天道】 | |
ニコニコ大百科 | ||
関連サイト | - | |
ニコ証 | - | |
関連動画 | その時幻想郷が動いた | |
備考 | - |
#uselib "user32.dll" #func SetTimer "SetTimer" int,int,int,int #func KillTimer "KillTimer" int,int #uselib "kernel32.dll" #cfunc CreateToolhelp32Snapshot "CreateToolhelp32Snapshot" int,int #cfunc Process32First "Process32First" int,sptr #cfunc Process32Next "Process32Next" int,sptr #func CloseHandle "CloseHandle" int #cfunc OpenProcess "OpenProcess" int,int,int #func ReadProcessMemory "ReadProcessMemory" int,int,var,int,int #func WriteProcessMemory "WriteProcessMemory" int,int,var,int,int #define WM_TIMER 0x0113 #define TIMER_ID 1 ; タイマーID sdim strBuf,25000;あとで使う変数。 gsel 0,-1;起動時に現れるなんとかというウィンドウを消す。
screen 2,300,400,4 hMainWnd=hwnd onexit goto *exit title "test" button gosub "戦法+$90",*test_kakizaki_sennpou_hennkou
oncmd gosub *OnTimer,WM_TIMER
SetTimer hwnd,TIMER_ID,1000,0 if stat==0 { dialog "タイマーの設定に失敗しました。", 1, "エラー" end }
randomize
sdim ProcName,260 dim PROCESSENTRY32,74 ProcName="NOBU13.exe"
*GetProc GameWndPID=0 hSnap=CreateToolhelp32Snapshot($F,0) if hSnap==-1:dialog "CreateToolhelp32Snapshot error",1,"スナップショットなし":stop PROCESSENTRY32.0=296 if Process32First(hSnap,varptr(PROCESSENTRY32)){ do getstr strBuf,PROCESSENTRY32,36,'\0' if strBuf==ProcName:GameWndPID=PROCESSENTRY32.2:_break until Process32Next(hSnap,varptr(PROCESSENTRY32))==0 if GameWndPID==0{ CloseHandle hSnap error="天道は起動していますか?\nEXEはNOBU13.exeですか?" switch MessageBoxA(hMainWnd,error,"エラー",$15) case 2 end case 4 goto *GetProc swend } }else{ CloseHandle hSnap dialog "Process32First error",1,"想定外のエラー" end } CloseHandle hSnap hGameWndProc=OpenProcess($1F0FFF,0,GameWndPID)
NowSearchA=0 NowSearchB=0 NowSearchC=0 NowSearchD=0 adr_today=$110036A8;35F0;36A8 k=$200001DC adr_ootutu_jump=$12004BB0 adr_sisetu_top=$2000004C adr_yakusyoku_top=$1200EF34 adr_kakizaki_sennpou=$12005800
*Search_today ReadProcessMemory hGameWndProc,int(adr_today),NowSearchA,4,0 ReadProcessMemory hGameWndProc,int(adr_today+4),NowSearchB,4,0 ReadProcessMemory hGameWndProc,int(adr_today+16),NowSearchC,4,0 ReadProcessMemory hGameWndProc,int(adr_today+20),NowSearchD,4,0 if NowSearchA==$61D&NowSearchB==$3 {;群雄割拠の開始日付を探す。 ;if NowSearchA==$62E&NowSearchB==$1 {;夢幻の如くの開始日付を探す。 if NowSearchA<=NowSearchC{ mes "日付を発見しました!" adr_today=adr_today+16;現在の年号のアドレスを入力しておく。 goto *Search_kaki } else { adr_today=adr_today+$10000 goto *Search_today } } else { if adr_today>$14000000 { if adr_today==$140036A8{ adr_today=$110035F0 goto *Search_today } else { dialog "日付が見つかりません。\n天道を再起動してみてください。" end } } else { adr_today=adr_today+$10000 goto *Search_today } } stop
*Search_kaki ReadProcessMemory hGameWndProc,int(k),NowSearchA,4,0 ReadProcessMemory hGameWndProc,int(k)+4,NowSearchB,4,0 ReadProcessMemory hGameWndProc,int(k)+8,NowSearchC,4,0 ReadProcessMemory hGameWndProc,int(k)+12,NowSearchD,4,0 ;NowSearchXは、はじめに4バイトで使ったので、後はずっと4バイトで使用する。 if NowSearchA=$44&NowSearchB=$31&NowSearchC=$4C&NowSearchD=$4F { mes "蠣崎季広のデータを見つけました!" goto *Search_ootutu_taiA } else { if k>$220001DC { dialog "季広のデータが見つかりません\n天道を再起動してみてください。" stop } k=k+$10000 goto *Search_kaki } stop
*Search_ootutu_taiA ReadProcessMemory hGameWndProc,int(adr_ootutu_jump),NowSearchA,4,0 ReadProcessMemory hGameWndProc,int(NowSearchA),NowSearchB,4,0 if NowSearchB==$D31D5C { mes "大筒隊のデータを発見しました!" goto *Search_sisetu_top ReadProcessMemory hGameWndProc,int(adr_ootutu_jump),adr_ootutu,4,0 } else { if adr_ootutu_jump>$13000000 { adr_ootutu_jump=$12003CC0 goto *Search_ootutu_taiB } else { adr_ootutu_jump=adr_ootutu_jump+$10000 goto *Search_ootutu_taiA } } stop *Search_ootutu_taiB ReadProcessMemory hGameWndProc,int(adr_ootutu_jump),NowSearchA,4,0 ReadProcessMemory hGameWndProc,int(NowSearchA),NowSearchB,4,0 if NowSearchB==$D31D5C { mes "大筒隊のデータを発見しました!" ReadProcessMemory hGameWndProc,int(adr_ootutu_jump),adr_ootutu,4,0 goto *Search_sisetu_top } else { if adr_ootutu_jump>$13000000 { dialog "大筒のデータが見つかりません\n天道を再起動してみてください。" } else { adr_ootutu_jump=adr_ootutu_jump+$10000 goto *Search_ootutu_taiB } } stop
*Search_sisetu_top ReadProcessMemory hGameWndProc,int(adr_sisetu_top),NowSearchA,4,0 if NowSearchA==$D2FDC8 { mes "施設データの先頭を発見しました!" goto *Search_yakusyoku_top } else { adr_sisetu_top=adr_sisetu_top+$10000 if adr_sisetu_top>$22000000 { dialog "施設データが見つかりません。\n天道を再起動してみてください。" end } goto *Search_sisetu_top } stop
*Search_yakusyoku_top ReadProcessMemory hGameWndProc,int(adr_yakusyoku_top),NowSearchA,4,0 if NowSearchA==$D33600 { mes "役職データの先頭を発見しました!" goto *Search_kakizaki_sennpou } else { adr_yakusyoku_top=adr_yakusyoku_top+$10000 if adr_yakusyoku_top>$13000000 { dialog "役職データが見つかりません。\n天道を再起動してみてください。" end } goto *Search_yakusyoku_top } stop
*Search_kakizaki_sennpou ReadProcessMemory hGameWndProc,int(adr_kakizaki_sennpou),NowSearchA,4,0 ReadProcessMemory hGameWndProc,int(NowSearchA+$8),NowSearchB,4,0 NowSearchC=k-$11BE68 if NowSearchB==NowSearchC { mes "蠣崎季広の戦法を発見しました!" adr_kakizaki_sennpou=NowSearchA+$8;adr_kakizaki_sennpouに蠣崎季広の戦法のアドレスを入力。 dialog "準備よし。" goto *main_system_ready } else { adr_kakizaki_sennpou=adr_kakizaki_sennpou+$10000 if adr_yakusyoku_top>$13000000 { dialog "蠣崎季広の戦法が見つかりません。\n天道を再起動してみてください。" end } goto *Search_kakizaki_sennpou } stop *main_system_ready
kaguya_kyotenn_taikyuu=0 sanae_syutuzinn=0;早苗が出陣しているかどうかのフラグ kanako_syutuzinn=0;神奈子が出陣しているかどうかのフラグ dim kimokeene_kani_toukyuu,300 dim orin_yakusyoku_toukyuu,300 dim syou_kahou_toukyuu,400 dim daityan_zuikou_izyou_zizoku,5;大ちゃんの能力で使用。 dim iku_zuikou_siki,5;永江衣玖の能力で使用。
#include "gennsoukyou.hsp" #include "koumakyou.hsp" #include "koumakann.hsp" #include "youyoumu.hsp" #include "eiyasyou.hsp" #include "huuzinnroku.hsp" #include "kaeizuka.hsp" #include "hisoutennsoku.hsp" #include "seirensen.hsp" #include "month.hsp" #include "ten_day.hsp"
#include "koumakann_member_count.hsp" #include "koumakann_syuppon.hsp"
*OnTimer
cls ReadProcessMemory hGameWndProc,int(adr_today+8),day_now,4,0 mes "今"+day_now+"日" ReadProcessMemory hGameWndProc,int(adr_today+4),now_month,4,0 mes "今月は"+now_month+"" ;毎月2~5日の間に一回だけ呼び出すサブルーチン。 if day_now>1&day_now<=5&month_system_still_done==0 { gosub *koumakann_member_count gosub *main_system_month month_system_still_done=1;フラグをONにし、今月はこれ以上実行しない。 } if day_now>6&month_system_still_done==1 {;フラグをOFFにする。 month_system_still_done=0 }
;毎月5~10、15~20、25~30の間に呼びだすサブルーチン。 ;毎月5~10日 if day_now>=5&day_now<=10&ten_day_system_still_doneA==0 { gosub *main_system_ten_day gosub *koumakann_syuppon ten_day_system_still_doneA=1;フラグをONにし、今月はこれ以上実行しない。 } if day_now>10&ten_day_system_still_doneA==1 {;フラグをOFFにする。 ten_day_system_still_doneA=0 } ;毎月15~20日 if day_now>=15&day_now<=20&ten_day_system_still_doneB==0 { gosub *main_system_ten_day gosub *koumakann_syuppon ten_day_system_still_doneB=1;フラグをONにし、今月はこれ以上実行しない。 } if day_now>20|day_now<15 {;フラグをOFFにする。 if ten_day_system_still_doneB==1 { ten_day_system_still_doneB=0 } } ;毎月25~30日 if day_now>25&day_now<=30&ten_day_system_still_doneC==0 { gosub *main_system_ten_day gosub *koumakann_syuppon ten_day_system_still_doneC=1;フラグをONにし、今月はこれ以上実行しない。 } if day_now<25&ten_day_system_still_doneC==1 {;フラグをOFFにする。 ten_day_system_still_doneC=0 } ;毎秒呼び出すサブルーチン。 gosub *main_system_gensoukyou gosub *main_system_koumakyou gosub *main_system_koumakann gosub *main_system_youyoumu gosub *main_system_eiyasyou gosub *main_system_huuzinnroku gosub *main_system_hisoutennsoku gosub *main_system_seirensen
*test_kakizaki_sennpou_hennkou ReadProcessMemory hGameWndProc,int(adr_kakizaki_sennpou),ValueWA,4,0 ValueWA=ValueWA+$90 WriteProcessMemory hGameWndProc,int(adr_kakizaki_sennpou),ValueWA,4,0 mes "蠣崎季広の戦法変更" return 0 *exit KillTimer hwnd,TIMER_ID ;タイマーを破棄 CloseHandle hGameWndProc end
;早苗の軍勢が出陣しても、拠点の兵力が減らない。 ReadProcessMemory hGameWndProc,int(k+$67E60-$40),sanae_gennzaiti_Adr,4,0 ReadProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr),Value,4,0;早苗の現在地を取得 if sanae_syutuzinn==0 {;フラグOFF if Value==$D30120 {;早苗が拠点にいる。 ReadProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$28),sanae_kyotenn_heiryoku,4,0;拠点兵力を取得。 sanae_kyotenn_heiryoku_Adr=sanae_gennzaiti_Adr+$28 } if Value==$D32FE0 {;早苗が出陣している ReadProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$70),ValueC,4,0;さっきまでいた拠点の兵力を減らす。 ReadProcessMemory hGameWndProc,int(ValueC+$28),ValueD,4,0 ReadProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$28),ValueB,4,0 ValueWA=ValueD+ValueB WriteProcessMemory hGameWndProc,int(sanae_kyotenn_heiryoku_Adr),ValueWA,4,0 ReadProcessMemory hGameWndProc,int(adr_today),sanae_syutuzinn_year,4,0;日付を取得 ReadProcessMemory hGameWndProc,int(adr_today+$4),sanae_syutuzinn_month,4,0 ReadProcessMemory hGameWndProc,int(adr_today+$8),sanae_syutuzinn_day,4,0 ReadProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$70),ValueB,4,0;出陣拠点の兵力を取得。 sanae_kyotenn_heiryoku_Adr=ValueB+$28 ReadProcessMemory hGameWndProc,int(sanae_kyotenn_heiryoku_Adr),sanae_kyotenn_heiryoku,4,0 sanae_syutuzinn=1;フラグON ValueWA=30000;兵力を30000に。 WriteProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$28),ValueWA,4,0 } } if sanae_syutuzinn==1 {;フラグON if Value==$D30120 {;早苗が拠点にいる(拠点に帰還した)。 ReadProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$28),sanae_kyotenn_heiryoku,4,0;拠点兵力 sanae_kyotenn_heiryoku=sanae_kyotenn_heiryoku-sanae_heiryoku;拠点兵力から現在兵力を減らす。 WriteProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$28),sanae_kyotenn_heiryoku,4,0 sanae_syutuzinn=0 } if Value==$D32FE0 {;早苗が出陣している ReadProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$28),sanae_heiryoku,4,0;現在兵力取得。 ReadProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$78),ValueB,4,0 ;兵糧を補給する。 ReadProcessMemory hGameWndProc,int(adr_today),sanae_now_year,4,0;日付を取得 ReadProcessMemory hGameWndProc,int(adr_today+$4),sanae_now_month,4,0 ReadProcessMemory hGameWndProc,int(adr_today+$8),sanae_now_day,4,0 sanae_keikanissuu=(sanae_now_year-sanae_syutuzinn_year)*360+(sanae_now_month-sanae_syutuzinn_month)*30+(sanae_now_day-sanae_syutuzinn_day) ReadProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$28),ValueB,4,0 sanae_hokyuu_hyourou=ValueB*sanae_keikanissuu/90 if sanae_hokyuu_hyourou>0 {;季節始めに兵糧が激減するバグの防止。 ReadProcessMemory hGameWndProc,int(k+$67E60-$74),ValueC,4,0 ReadProcessMemory hGameWndProc,int(ValueC+$4C),ValueD,4,0 ValueD=ValueD+sanae_hokyuu_hyourou WriteProcessMemory hGameWndProc,int(ValueC+$4C),ValueD,4,0 } ReadProcessMemory hGameWndProc,int(adr_today),sanae_syutuzinn_year,4,0;多重に補給しないよう、出陣日数を書き換えておく。 ReadProcessMemory hGameWndProc,int(adr_today+$4),sanae_syutuzinn_month,4,0 ReadProcessMemory hGameWndProc,int(adr_today+$8),sanae_syutuzinn_day,4,0 ValueWA=0 WriteProcessMemory hGameWndProc,int(sanae_gennzaiti_Adr+$2C),ValueWA,4,0;傷兵を消す。 } }
;神奈子が攻撃中の相手に、毎秒特定の打撃を与える。 ReadProcessMemory hGameWndProc,int(k+$63A90-$40),AdrBuf,4,0 ReadProcessMemory hGameWndProc,int(AdrBuf),Value,4,0;神奈子の現在地を調べる。 if Value==$D32FE0{;出陣中 ReadProcessMemory hGameWndProc,int(AdrBuf+$10),ValueB,4,0 ReadProcessMemory hGameWndProc,int(ValueB),ValueC,4,0 if ValueC==$D32FE0||ValueC==$D30120 {;目標は敵部隊、もしくは拠点 ReadProcessMemory hGameWndProc,int(ValueB+$28),ValueWA,4,0 ValueWA=ValueWA-100 ReadProcessMemory hGameWndProc,int(ValueB+$2C),ValueWB,4,0 ValueWB=ValueWB+100 if ValueWA<0 { ValueWB=ValueWB+ValueWA ValueWA=0 } WriteProcessMemory hGameWndProc,int(ValueB+$28),ValueWA,4,0 WriteProcessMemory hGameWndProc,int(ValueB+$2C),ValueWB,4,0 } if ValueC==$D2FDC8 {;目標は敵施設。 ReadProcessMemory hGameWndProc,int(ValueB+$C),ValueWA,4,0 ValueWA=ValueWA-100 if ValueWA<0 { ValueWA=0 } WriteProcessMemory hGameWndProc,int(ValueB+$C),ValueWA,4,0 } }
;諏訪子の戦法が発動した瞬間のみ、備え系戦法効果時間を5倍にする。 suwako_tousi_pre=suwako_tousi_now ReadProcessMemory hGameWndProc,int(k+$51DC0-$40),Value,4,0 AdrBuf=Value;AdrBuf=現在地のポインタ ReadProcessMemory hGameWndProc,int(AdrBuf),Value,4,0 if Value==$D32FE0 {;出陣中 ReadProcessMemory hGameWndProc,int(AdrBuf+$78),Value,4,0;Value=軍勢のポインタ。 if Value==$0 {;諏訪子の部隊が単独である。 ReadProcessMemory hGameWndProc,int(AdrBuf+$4C),suwako_tousi_now,4,0;部隊の闘志取得 ReadProcessMemory hGameWndProc,int(AdrBuf+$10),ValueB,4,0 ReadProcessMemory hGameWndProc,int(ValueB+$28),suwako_vs_heiryoku_now,4,0;対戦相手の兵力 } else {;諏訪子の部隊が軍勢に含まれる。 ReadProcessMemory hGameWndProc,int(Value+$4C),suwako_tousi_now,4,0;軍勢の闘志 ReadProcessMemory hGameWndProc,int(Value+$10),ValueB,4,0 ReadProcessMemory hGameWndProc,int(ValueB+$28),suwako_vs_heiryoku_now,4,0;対戦相手の兵力 } if suwako_tousi_now!=0&&suwako_tousi_now<suwako_tousi_pre {;闘志の減少を確認。 ValueWA=100 WriteProcessMemory hGameWndProc,int($E90E08),ValueWA,4,0 } if suwako_tousi_now>suwako_tousi_pre||suwako_tousi_now==0 {;闘志が減少したら、値を元に戻す。 ValueWA=20 WriteProcessMemory hGameWndProc,int($E90E08),ValueWA,4,0 } } else {;出陣中に非ず ReadProcessMemory hGameWndProc,int($E90E08),Value,4,0 if Value>20 { ValueWA=20 WriteProcessMemory hGameWndProc,int($E90E08),ValueWA,4,0;パラメータを元に戻す。 } }
;雛(武将No3)の撃破兵数を知る。 ReadProcessMemory hGameWndProc,int(k+$91500),HinaKill,4,0;ヒナキルの呼び出し。 ReadProcessMemory hGameWndProc,int(k+$91500-$F0),HinaLV_pre,4,0;雛レベルの呼び出し。 ReadProcessMemory hGameWndProc,int(k+$5D0-$40),Value,4,0 ReadProcessMemory hGameWndProc,int(Value),ValueB,4,0 if ValueB==$D32FE0 {;雛が出陣中。 hina_mokuhyou_pre=hina_mokuhyou_now hina_mokuhyou_heiryoku_pre=hina_mokuhyou_heiryoku_now hina_syouhei_pre=hina_syouhei_now ReadProcessMemory hGameWndProc,int(Value+$10),hina_mokuhyou_now,4,0;攻撃目標 ReadProcessMemory hGameWndProc,int(hina_mokuhyou_now),ValueB,4,0;目標の種類取得 ReadProcessMemory hGameWndProc,int(hina_mokuhyou_now+$28),hina_mokuhyou_heiryoku_now,4,0;目標兵数 ReadProcessMemory hGameWndProc,int(hina_mokuhyou_now+$2C),hina_syouhei_now,4,0;目標兵数 if ValueB==$D32FE0||ValueB==$D30120 { if hina_mokuhyou_pre==hina_mokuhyou_now{;目標が健在。 gennsyou=hina_mokuhyou_heiryoku_pre-hina_mokuhyou_heiryoku_now;兵数減少。 zouka_syouhei=hina_syouhei_now-hina_syouhei_pre ValueD=gennsyou*0.3 if gennsyou>=0&&zouka_syouhei>ValueD {;兵力が減少しており、傷兵がそれに見合うだけ増えている。 HinaKill=HinaKill+gennsyou WriteProcessMemory hGameWndProc,int(k+$91500),HinaKill,4,0;ヒナキルの保管。 } } } } cls ;雛のレベルアップ HinaLV_now=HinaKill/10000 if HinaLV_now>HinaLV_pre {;レベルがさっきまでと違う ReadProcessMemory hGameWndProc,int(k+$5D0),ValueWA,4,0 ValueWA=ValueWA+1 WriteProcessMemory hGameWndProc,int(k+$5D0),ValueWA,4,0 ReadProcessMemory hGameWndProc,int(k+$5D0+$8),ValueWA,4,0 ValueWA=ValueWA+1 WriteProcessMemory hGameWndProc,int(k+$5D0+$8),ValueWA,4,0 HinaLV_pre=HinaLV_pre+1 WriteProcessMemory hGameWndProc,int(k+$91500-$F0),HinaLV_pre,4,0 mes "LVUP" } mes "目標前"+hina_mokuhyou_pre+"" mes "目標今"+hina_mokuhyou_now+"" mes "兵力前"+hina_mokuhyou_heiryoku_pre+"" mes "兵力今"+hina_mokuhyou_heiryoku_now+"" mes "減少値"+gennsyou+"" mes "ヒナキル"+HinaKill+"" mes "雛レベル"+HinaLV_pre+"" mes "雛レベル"+HinaLV_now+""
;にとり(No247)が岩付城東の匠ノ町3を支配していれば、そこの技術を三段構えに変える。 ReadProcessMemory hGameWndProc,int(adr_today+$8),Value,4,0 if Value>1&&Value<10 {;2~9日の間で、以下の判定がまだ。 if nitori_gizyutu_hantei==0 { for i,1,364,1;全国の町並みを調べ、三段構えを研究している場所が無いか調査。 AdrBuf=k-$AE684+i*$8C ReadProcessMemory hGameWndProc,int(AdrBuf),Value,4,0 ValueB=k-$116BB4 if Value==ValueB {;三段構えが研究済み nitori_gizyutu_kakikae=20;書き換え実行せず。 } next nitori_gizyutu_hantei=1;判定済み if nitori_gizyutu_kakikae==0 { ReadProcessMemory hGameWndProc,int(k+$1DE90-$74),ValueC,4,0;にとりの勢力 ReadProcessMemory hGameWndProc,int(k-$AB3A8-$10),Value,4,0;該当匠ノ町3の支配拠点 ReadProcessMemory hGameWndProc,int(Value+$108),ValueB,4,0;その拠点の勢力 if ValueC==ValueB {;該当匠ノ町3をにとりの勢力が支配 ReadProcessMemory hGameWndProc,int(k-$AB3A8),Value,4,0;技術を取得 if Value!=0 {;なんらかの技術が研究されている。 nitori_gizyutu_kakikae=1;書き換え開始 } } } } } else { nitori_gizyutu_hantei=0 } if nitori_gizyutu_kakikae>=1&&nitori_gizyutu_kakikae<10 { nitori_gizyutu_kakikae=nitori_gizyutu_kakikae+1 Value=10-nitori_gizyutu_kakikae mes ""+Value+"秒以内に岩付城を画面外に!!" } if nitori_gizyutu_kakikae==10 { ValueWA=01 WriteProcessMemory hGameWndProc,int(k-$116BB4+$58),ValueWA,4,0 ValueWA=k-$116BB4 WriteProcessMemory hGameWndProc,int(k-$AB3A8),ValueWA,4,0 nitori_gizyutu_kakikae=0 }
;聖白蓮(武将No623) ;【戦法強化】:なし。 ;【拠点防衛】:なし。 ;【特殊能力】:お抱え衆の戦力を3万、出動日数を200。 ReadProcessMemory hGameWndProc,int(k+$4B710-$74),Value,4,0;軍団 ReadProcessMemory hGameWndProc,int(Value+$8),ValueB,4,0;勢力 ReadProcessMemory hGameWndProc,int(ValueB+$114),AdrBuf,4,0;お抱え衆 if hiziri_okakae_now!=AdrBuf {;お抱え衆が変更された。 if AdrBuf!=0 {;お抱え衆が存在。 ReadProcessMemory hGameWndProc,int(AdrBuf+$6C),Value,4,0 if Value<=9000 { ValueWA=30000 WriteProcessMemory hGameWndProc,int(AdrBuf+$6C),ValueWA,4,0 hiziri_okakae_now=AdrBuf } } ReadProcessMemory hGameWndProc,int(hiziri_okakae_now+$6C),Value,4,0;過去のお抱え衆を元に戻す。 if Value==30000 { ValueWA=9000 WriteProcessMemory hGameWndProc,int(hiziri_okakae_now+$6C),ValueWA,4,0 } } if AdrBuf!=0 {;お抱え衆が存在。 ReadProcessMemory hGameWndProc,int(AdrBuf+$70),Value,4,0 if Value>0&&Value<80&&hiziri_okakae_nissuu==0 {;出動中、日数が書き換えられていない。 ValueWA=200 WriteProcessMemory hGameWndProc,int(AdrBuf+$70),ValueWA,4,0 hiziri_okakae_nissuu=1;書き換え終了。 } if Value==0&&hiziri_okakae_nissuu==1 { hiziri_okakae_nissuu=0 } } mes hiziri_okakae_nissuu ReadProcessMemory hGameWndProc,int(AdrBuf+$70),Value,4,0 mes Value