转跳到内容

367ddd

【动漫】动漫综合区
  • 内容数

    2,257
  • 加入

  • 最后访问

  • 赢得天数

    39

关于367ddd

经济

  • 羽毛 702.00 根
  • 节操值 678.00 节操值

最近资料访问用户

8,883 次访问

367ddd的成就

朋满天下【组建伐魔队只需振臂一呼】

朋满天下【组建伐魔队只需振臂一呼】 (7/9)

  • 关键的一票:最后一根稻草
  • 12周年庆:【荣誉成就】以希望铸成破敌之剑!
  • 开拓者:世上本没有路,走的人多了,也便成了路
  • 要溢出来了:这可满满地都是精华
  • 小小水怪:水怪的入门之路

最近徽章

8

社区解答

  1. 主要魂基础性能卡的比较死,玩多了会觉得核心在地图和rpg部分,性能高一点会舒服点。
  2. 那个打光确实,但是我觉得在战斗方面其实挺爽的能弥补这点
  3. 最近玩的这仨,都不错,随手写个推荐贴 首先是只狼,2019年的GOTY,刚发售那年,就在室友的电脑上玩过,但是当时不明白为什么这游戏能作为年度游戏,最近想着补票回来重玩一次,然后完全明白了 【地图】 玩多了魂之后,除了设计精妙绝伦的近路和小道,一个能通过合理的走位进行快速跑路的怪物布置和地图同样深得我心,毕竟类魂这种失误几次就随时可能落命的游戏里,跑酷才是多周目常态。而只狼的钩锁和潜行,简直是跑酷的福音,不是我喜欢的敌人,直接拒绝,只要我飞的够快,敌人就追不上我。也得益于钩爪的设计,只狼能出现更多其他魂系游戏中难以设计的绝景。 丢人的乡下忍者.jpg 【战斗】 两个字,连绵。这次是在玩完仁王之后回来再玩的,对于削精和追击有了更多的意识来玩,就会发现只狼的战斗思路确实和战斗机制结合的很好 架势条,随时间回复,被攻击和被弹反都会增长。随时间回复的程度和人物血量挂钩,且在敌人攻击的过程中也不会恢复。 而敌人的AI基本上都非常倾向于防御,所以一个常见的大局战略,就是不断的攻击逼迫敌人反击,再把反击弹反回去继续攻击,用连绵不断的攻击与精防来压制敌人的架势条。被动的解题只会把精力条白白浪费,退后只能得到一样(自己的架势),而前进能得到两样(敌人的血和架势)。这套系统的另一个核心理念,正是一心的名言,犹豫就会败北,不勇敢快速的抓住后摇窗口出手,只会让敌人回过神来反砍和防御。 但是在此之上,只狼依然保留了很多rpg设计的对策设计,例如野兽敌人多的场景可以使用口哨让野兽发狂自相残杀,怨灵敌人可以用神雪净火和爱哭鬼进行特效压制,幻觉敌人用琉璃斧和鸣种对策等,爱跳的敌人用空中忍杀和飞镖等等。 以及各种各样的武技,能进一步丰富只狼的战斗系统,虽然我用下来感觉就樱舞雷反和一字斩好用,尤其是一字斩,集架势条回复,高冲击力,踏步突进,免费于一身,不知道干什么的时候起手一字斩大概率是对的。 而主线关键节点的三个boss设计更是各具特色,弦一郎是武士的典范,大开大合,投技和强射以垫步对应,识破突刺,踩踏下段,弹反连击,是基本功的考察官,击破弦一郎,代表正式突破了游戏的新手教程。 所以屑一郎也是打起来最轻松的一个就是了 枭是忍者的典范,识破突刺,崩条处决,飞镖追斩,鞭炮扰乱,还有禁止回复之药,烟雾弹和难波撒毒。借助外物,看准破绽,忍者需专精此道。但是作为代价,枭的几个大招全是破绽,两发飞镖之后的跳劈可以垫步突刺,肘击之后的鞭炮可以突刺,蓄力下劈可以垫步突刺,丢禁药可以突刺,然后常驻韧性也是丢人,跑来跑去的下段危一刀随便打断,缓慢剑法经常可以偷个两三刀,正如一心所说,看起来体格巨大,但是依然是个笨蛋。 进攻欲望强的义父不追求打的漂亮的话比枭还简单点 而一心则是滴水不漏的剑圣,长枪短炮,乃至于异端的巴之雷,用尽一切的剑圣。主动攻击完全讨不到好,永真蓄力的十字斩上去偷刀可以打断蓄力,但是一心只会吃巴掌然后吃追击的危,自由态追击两刀之后就要立刻等着反击,常见的剑法也不像其他人那么容易偷刀,是很快的三刀一组。而进了二阶段,势大力沉的长枪出来之后,危险度更是暴涨。打剑圣的时候,危的意义完全反了过来,每一个危几乎都是可以安全处理的输出点,宛如黑龙的扇形火一样 其实个人觉得老一心比剑圣难一点 【推荐理由】 系统自洽,精密小巧的arpg 然后是仁王3,打完仁王3的第一反应是,战斗爽!ttk,yzmttk! 【地图】 没有特别多的路线设计,基本上来说是大地图加上各种一本道,非常的简单,没玩过前作,但是按照玩过前作的朋友说,这种简单的地图设计对忍组来说反而是加分来的 【剧情】 第一章还行,后面几章时空穿越的剧情能搞成这样平淡如水,太神秘了,总之感觉就是一路杀杀杀,然后看了几个日本时代剧。 【战斗】 其实战斗这一块我能说的也不多,但是和地图相反,是能说的太多我反而没摸清楚,一周目结束,两种模式十来把武器我总共也就入门了四个,能不能算摸到门槛我觉得都很难说。海量的武技各自有其特点,哪怕是同一种武技也有不同发动速度,前后摇和属性的亚种,单论太刀,有总卷集霸体,防御,冲击于一身,无想剑霸体蓄力和超高爆发,泽雾对人形强制倒地,剑气高削精,鞍马剑舞快速连击可以在不断的按键里歇一口气,哪怕是平a,上段慢且重,下段快且轻的区别也有一些可以研究的点,顺带一提,看习惯这一套平a之后回去打只狼的武士大酱也轻松很多。除了武技系统外,啄技和流转又给了一套能在不同的架势间来回切换,根据玩家设定的武技,进行灵活度,自由度,性能全部非常高的连段打法。但是忍者的旋棍又是和上述体验完全不相关,打小型敌人随便什么起手接鬼舞冲刺然后打一套冲刺平a派生,完事再打一套冲刺平a派生,然后继续冲刺平a循环,打新选组连战的时候,敢防御?但凡防御一下就得等着被削精削到死。大型敌人套个buff然后复读天上莲,直接混沌一开生死你猜。 敌人设计方面,有点难说,在一个合适的数值区间里打起来,大部分都很舒服,但是有的时候,会面临一个对面的数值压自己一个大头,然后各种aoe不要钱一样狂发,精力条回的飞快,然后满场乱跑乱飞的情况,明明还在打压制结果突然一个霸体后跳开大。但是又不是说是单纯像类魂一样解题,反而是深入研究一下属性和压制,就会变成两台大运对对创,要说的话感觉像怪猎崛起的感觉。敌人有一些弱点设定和部位破坏,例如打破头会有个大硬直加强倒地,大部分人形敌人被远程爆头就是大硬直这样,但是说实话也不能对胜负起到关键作用。 武田四天王=武田+四天王 除了武技和敌人动作以外,仁王还有召唤符,buff符和各种套装效果可以研究,一百个小时打起来只是入门,整个游戏我不好说我研究有没有两成,非常恐怖的可游玩量,不去刻意打一些高难任务的话,在bd成型之后是非常爽快的arpg 【推荐理由】 足够深的动作系统+足够多的可玩项目=战斗爽 最后是合金装备崛起复仇,这个十二年前的游戏放到今天依然算得上牛逼,我不好说是这部太牛了,还是游戏界被一群不知所谓的ta们和目光短浅的资本拖累太久了。 【地图】 基本上可以说是纯一本道,有大量强制战点,跟前面俩比是更纯粹的act 【剧情】 开局是阿米突袭一个小国,刺杀总统,然后是AI的自我意识,人体零件拆解,战争经济,舆论操作,自导自演的恐怖袭击。只能说war never changed 【战斗】 其实感觉比魂系的操作还简单点,打什么连段也影响不大,平a穿插防御和袈裟斩闪避,打到破防。但是之后接续的是游戏史上最帅气系统之一,斩切系统,把敌人切的四分五裂然后把核心夺取过来补充状态,从巨型的合金装备到bio·改造人再到场景里的西瓜,目之所及几乎全能切成臊子。这个系统比起怎么打连段,更要注意精防的时机,往年评论里都是这套方向键加平a的防御系统用起来很别扭,实际上手之后其实很简单。击败boss之后给的副武器基本是面向boss本身场景特化的,例如朔风的长枪适合打她那种多小怪场景,季风的electric·匕首适合打弱电的敌人,打山姆的时候飞过去打个麻痹也很好用,但是总的来说也不复杂。 【推荐理由】 帅
  4. 如果你想回避相亲,首先要做的就是算账,你提出这个问题大概率就是有家人在劝你甚至是逼你去相亲,你出于上述理由拒绝了,但是无法说服家人。算一笔账,你现在的储蓄和收入水平,是否足够支撑你渡过一次突发危机,一次家人的病痛,一次长时间的请假用于照顾家人,足够支撑你一个人的老年生活。如果足够,再去劝说家人,说相亲结婚反而可能会让你失去上述的保障。 如果你算了这笔账觉得可能差一些,那么相亲的时候记得一开始就抱着“搭伙过日子”的想法去,感情诉求往后放放
  5. 电脑端,使用tampermonkey插件,试试看把这个脚本拷贝进去,如果是你有修改权限的帖子会删除附件,如果你没修改权限的话会报404,至少我实验是有效的 // ==UserScript== // @name SSTM 附件页删除按钮(区分主题/回复) // @namespace https://example.com/ // @version 0.2.0 // @author sstm脚本组 // @description 在 https://sstm.moe/attachments/ 页面为每个附件块插入删除按钮,并根据来源链接自动判断编辑主题还是编辑回复 // @match https://sstm.moe/attachments/* // @match https://sstm.moe/attachments/ // @grant none // ==/UserScript== (function () { 'use strict'; const CONFIG = { itemSelector: 'div.ipsDataItem.ipsAttach', attachmentLinkSelector: 'a[href*="/applications/core/interface/file/attachment.php?id="]', sourceLinkSelector: '.ipsDataItem_generic.ipsDataItem_size9 a[href*="/topic/"]', buttonClass: 'sstm-delete-attachment-btn', confirmBeforeDelete: true, debug: true }; function log(...args) { if (CONFIG.debug) { console.log('[SSTM Attachment Delete]', ...args); } } function absoluteUrl(url) { return new URL(url, location.origin).toString(); } function getCsrfKey() { const fromMeta = document.querySelector('meta[name="csrfKey"]')?.content; if (fromMeta) return fromMeta; const fromWindow1 = window.ips?.getSetting?.('csrfKey'); if (fromWindow1) return fromWindow1; const fromWindow2 = window.ipsSettings?.csrfKey; if (fromWindow2) return fromWindow2; const m = document.cookie.match(/(?:^|;\s*)csrfKey=([^;]+)/); if (m) return decodeURIComponent(m[1]); return null; } function extractAttachmentId(item) { const link = item.querySelector(CONFIG.attachmentLinkSelector); if (!link) return null; try { const url = new URL(link.href, location.origin); return url.searchParams.get('id'); } catch (e) { return null; } } function extractFileName(item) { const el = item.querySelector('.ipsAttach_title a, .ipsDataItem_title a'); return el ? el.textContent.trim() : '未知附件'; } function extractSourceInfo(item) { const sourceLink = item.querySelector(CONFIG.sourceLinkSelector); if (!sourceLink) return null; const href = absoluteUrl(sourceLink.href); const url = new URL(href); const commentId = url.searchParams.get('comment'); const doValue = url.searchParams.get('do'); const isReply = doValue === 'findComment' && !!commentId; if (isReply) { url.searchParams.delete('do'); url.searchParams.delete('comment'); return { type: 'reply', sourceUrl: href, baseTopicUrl: url.toString(), commentId }; } url.searchParams.delete('do'); url.searchParams.delete('comment'); return { type: 'topic', sourceUrl: href, baseTopicUrl: url.toString(), commentId: null }; } function buildEditUrl(sourceInfo, csrfKey) { const url = new URL(sourceInfo.baseTopicUrl, location.origin); if (sourceInfo.type === 'reply') { url.searchParams.set('do', 'editComment'); url.searchParams.set('comment', sourceInfo.commentId); } else { url.searchParams.set('do', 'edit'); } if (csrfKey) { url.searchParams.set('csrfKey', csrfKey); } return url.toString(); } async function fetchText(url, options = {}) { const resp = await fetch(url, { credentials: 'include', cache: 'no-cache', ...options }); if (!resp.ok) { throw new Error(`请求失败 ${resp.status} ${resp.statusText}`); } return await resp.text(); } function parseHTML(html) { return new DOMParser().parseFromString(html, 'text/html'); } function extractPostKeyFromEditHtml(html) { const doc = new DOMParser().parseFromString(html, 'text/html'); // 1. 优先从 IPS 编辑器容器读取 const editorEl = doc.querySelector('[data-ipseditor-postkey]'); if (editorEl) { const postKey = editorEl.getAttribute('data-ipseditor-postkey'); if (postKey) return postKey; } // 2. 兜底:兼容可能存在的 input const input = doc.querySelector('input[name="postKey"]'); if (input?.value) return input.value; // 3. 再兜底:正则扫原始 HTML let m = html.match(/data-ipseditor-postkey=["']([^"']+)["']/i); if (m) return m[1]; m = html.match(/name=["']postKey["'][^>]*value=["']([^"']+)["']/i); if (m) return m[1]; m = html.match(/["']postKey["']\s*:\s*["']([^"']+)["']/i); if (m) return m[1]; return null; } async function deleteAttachment(editUrl, attachmentId, postKey, csrfKey) { const url = new URL(editUrl, location.origin); url.searchParams.set('postKey', postKey); url.searchParams.set('deleteFile', attachmentId); if (csrfKey) { url.searchParams.set('csrfKey', csrfKey); } log('删除请求 URL:', url.toString()); const resp = await fetch(url.toString(), { method: 'GET', credentials: 'include', mode: 'cors', headers: { 'accept': '*/*', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'x-requested-with': 'XMLHttpRequest' }, referrer: editUrl }); if (!resp.ok) { throw new Error(`删除请求失败 ${resp.status} ${resp.statusText}`); } return await resp.text(); } function setBtnState(btn, state, text) { btn.disabled = state === 'loading'; btn.textContent = text; if (state === 'loading') { btn.style.opacity = '0.7'; btn.style.cursor = 'wait'; } else { btn.style.opacity = '1'; btn.style.cursor = 'pointer'; } } function removeItem(item) { item.style.transition = 'opacity .25s ease, transform .25s ease'; item.style.opacity = '0'; item.style.transform = 'scale(0.98)'; setTimeout(() => item.remove(), 260); } async function handleDelete(item, btn) { const attachmentId = extractAttachmentId(item); const fileName = extractFileName(item); const sourceInfo = extractSourceInfo(item); const csrfKey = getCsrfKey(); if (!attachmentId) { alert('未找到附件 ID'); return; } if (!sourceInfo) { alert('未找到该附件对应的主题/回复链接'); return; } if (!csrfKey) { alert('未找到 csrfKey'); return; } const targetText = sourceInfo.type === 'reply' ? `回复 #${sourceInfo.commentId}` : '主题首楼'; if (CONFIG.confirmBeforeDelete) { const ok = confirm( `确定删除附件吗?\n\n文件名:${fileName}\n附件ID:${attachmentId}\n挂载位置:${targetText}` ); if (!ok) return; } try { setBtnState(btn, 'loading', '读取编辑页...'); const editUrl = buildEditUrl(sourceInfo, csrfKey); log('编辑页 URL:', editUrl); log('来源类型:', sourceInfo.type, sourceInfo); const editHtml = await fetchText(editUrl, { headers: { 'accept': 'text/html,application/xhtml+xml' } }); const postKey = extractPostKeyFromEditHtml(editHtml); if (!postKey) { throw new Error('未能从编辑页中解析出 postKey'); } setBtnState(btn, 'loading', '提交删除...'); const result = await deleteAttachment(editUrl, attachmentId, postKey, csrfKey); log('删除响应:', result); setBtnState(btn, 'success', '已删除'); removeItem(item); } catch (err) { console.error(err); setBtnState(btn, 'error', '删除失败'); alert(`删除失败:${err.message}`); setTimeout(() => { setBtnState(btn, 'idle', '删除附件'); }, 1200); } } function injectButton(item) { if (item.querySelector(`.${CONFIG.buttonClass}`)) return; const attachmentId = extractAttachmentId(item); const sourceInfo = extractSourceInfo(item); if (!attachmentId || !sourceInfo) return; const btn = document.createElement('button'); btn.type = 'button'; btn.className = CONFIG.buttonClass; btn.textContent = '删除附件'; btn.style.marginTop = '8px'; btn.style.padding = '6px 10px'; btn.style.border = '1px solid #cc3333'; btn.style.borderRadius = '4px'; btn.style.background = '#fff5f5'; btn.style.color = '#b30000'; btn.style.fontSize = '12px'; btn.style.lineHeight = '1.2'; btn.style.cursor = 'pointer'; btn.addEventListener('mouseenter', () => { if (!btn.disabled) btn.style.background = '#ffeaea'; }); btn.addEventListener('mouseleave', () => { if (!btn.disabled) btn.style.background = '#fff5f5'; }); btn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); handleDelete(item, btn); }); const target = item.querySelector('.ipsDataItem_main') || item; target.appendChild(btn); } function processAll() { document.querySelectorAll(CONFIG.itemSelector).forEach(injectButton); } function observe() { const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { for (const node of mutation.addedNodes) { if (!(node instanceof Element)) continue; if (node.matches?.(CONFIG.itemSelector)) { injectButton(node); } node.querySelectorAll?.(CONFIG.itemSelector).forEach(injectButton); } } }); observer.observe(document.body, { childList: true, subtree: true }); } processAll(); observe(); })(); 然后之后如果想上传图片/视频的话,可以试试看这个https://sstm.moe/topic/378868-【油猴脚本】便捷文件上传自定义表情包/?do=findComment&comment=18887760
  6. 作者:SS同盟脚本组 便捷文件上传-脚本安装地址 该脚本利用catbox提供的API,在sstm站内完成文件上传+外链插入的功能,避免同时打开多个窗口来回切换以插入外链文件的困扰,同时支持图片,视频,音频的插入 该脚本需要提供catbox账号hash,创建catbox账号并登陆后,进入https://catbox.moe/user/manage.php可得到当前userhash,写入脚本代码第26行。对于不想打开脚本编辑界面的用户,脚本在未检测到userhash时,也会通过弹窗提醒输入用户hash并保存 使用示例:(基于网络状况和文件大小,使用时可能会产生一定的延迟) 自定义表情包-脚本安装地址 该脚本允许将imgbox的gallery用作表情包,并插入到论坛的表情包组件中,本质上仍是将imgbox的外链图片插入,但是简化了其步骤 类似的,可以将用作表情包的链接写入脚本代码第26行。对于不想打开脚本编辑界面的用户,脚本在未检测到相册链接时,也会通过弹窗提醒输入并保存,为了避免过多的网络请求与分析,并不会每次插入都实时检查相册链接内容,当相册内上传了新图片时请点击刷新并耐心等待 使用示例: SS同盟脚本组目前正在组建中,后续会有新的脚本和信息放出,敬请期待
  7. 担心健康推荐还是自己做饭吧,清炒包菜之类的蔬菜,挑选好一点的菜,不给盐正常也会有清甜味,肉可以用香料代偿一下味道,例如葱姜蒜这些,买点超市散称鸡腿回来去皮再做,脂肪也不用太担心
  8. 有的喔,很强的喔,非常非常强大的喔
  9. 好恐怖,我过两天也要去开组会了就是了
  10. 妖精嗼,可是漫区的大大大前辈嗼
  11. 亡零也在卡论文啊,我这边也在赶就是了,陪着的师兄ddl是二十号要初稿,现在才一半进展
  12. 好久不见了,亡零桑最近怎么样喔
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款