-
Notifications
You must be signed in to change notification settings - Fork 11
Home
位置:objnam.c
调用了just_an(),处理后,一般会给字符串前面加上"a "或者"an "
所以在处理中文字符串时,要去掉an(),an(str)改为str
位置:objnam.c
判断物品obj的数量是否是单数,是就会调用an(simpleoname),我作了修改
simpleoname = an(simpleoname);
改为simpleoname = simpleoname;
汉化时无需额外处理
位置objnam.c
先判断物品otmp的数量是否是复数,不是复数,就调用vtense(),否则直接返回动词
汉化时无需处理
位置objnam.c
判断物品subj本身为单数还是复数,最后决定动词verb是否要加"s"或者"es",结果返回动词
中文下,verb都会处理为加"s",我作了修改
Strcasecpy(bspot + 1, "s");
改为Strcasecpy(bspot + 1, "");
汉化时无需额外处理
通用函数,把 str1 和 str2 进行比较,最多比较前 n 个字节
在处理中文时,中文在不同编码下的字节不一样,不能使用这个函数
我在config.h中定义了3种标识符
#define cnstrcmpi(bp, str, l) strncmpi(bp, str, l = strlen(str))
#define cnstrcmp(bp, str) strncmp(bp, str, strlen(str))
#define cnbstrcmp(bp, p, str) BSTRCMPI(bp, p - strlen(str), str)
所以把strncmp(str1, str2, n)替换为cnstrcmp(str1, str2)
把strncmpi(str1, str2, l = n)替换为cnstrcmpi(str1, str2, l)
把BSTRCMPI(str1, p - n, str2)替换为cnbstrcmp(str1, p, str2)
例,str1="123456789456",str2="456",str3="a"
结果str1="123a789456"
位置objnam.c
判断是否在字符串前面加"the ",我作了修改
Strcpy(buf, "the ");
改为Strcpy(buf, "");
汉化时无需额外处理
位置objnam.c
调用了the(),并将t大写为T
汉化时无需额外处理
位置objnam.c
会调用The(),最后加上动词verb,我作了修改
Strcat(bp, " ");
改为Strcat(bp, "");
汉化时无需额外处理
位置topten.c
allmain.c/moveloop(),游戏启动!
在NetHack/dat文件夹下的一些des文件中,每个职业都有各自的des文件
从des文件的的判断过程代码为sp_lev.c/spo_object() -> sp_lev.c/create_object() -> do_name.c/oname() -> artifact.c/exist_artifact()