#include "version.h" #include #include "char_base.h" #include "char.h" #include "object.h" #include "readmap.h" #include "map_deal.h" #include "lssproto_serv.h" #include "handletime.h" #include "pet.h" #include "battle.h" #include "petmail.h" #include "log.h" #include "function.h" #include "pet_skill.h" /* * ペット処理に関するソース */ /*------------------------------------------------------------------------ * ペットを1つ割り当てる。デバッグ用。 * CHAR構造体にのみ作成される。 * 戻り値:作成されたキャラindex 失敗:-1 *-----------------------------------------------------------------------*/ char hanzibuf[5000][8] = {"阿","啊","哀","唉","挨","矮","爱","碍","安","岸","按","案","暗","昂","袄","傲","奥","八","巴","扒","吧","疤","拔","把","坝","爸","罢","霸","白","百","柏","摆","败","拜","班","般","斑","搬","板","版","办", "半","伴","扮","拌","瓣","帮","绑","榜","膀","傍","棒","包","胞","雹","宝","饱","保","堡","报","抱","暴","爆","杯","悲","碑","北","贝","备","背","倍","被","辈","奔","本","笨","蹦","逼","鼻","比","彼","笔", "鄙","币","必","毕","闭","毙","弊","碧","蔽","壁","避","臂","边","编","鞭","扁","便","变","遍","辨","辩","辫","标","表","别","宾","滨","冰","兵","丙","柄","饼","并","病","拨","波","玻","剥","脖","菠","播", "伯","驳","泊","博","搏","膊","薄","卜","补","捕","不","布","步","怖","部","擦","猜","才","材","财","裁","采","彩","睬","踩","菜","参","餐","残","蚕","惭","惨","灿","仓","苍","舱","藏","操","槽","草","册", "侧","厕","测","策","层","叉","插","查","茶","察","岔","差","拆","柴","馋","缠","产","铲","颤","昌","长","肠","尝","偿","常","厂","场","敞","畅","倡","唱","抄","钞","超","朝","潮","吵","炒","车","扯","彻", "撤","尘","臣","沉","辰","陈","晨","闯","衬","称","趁","撑","成","呈","承","诚","城","乘","惩","程","秤","吃","驰","迟","持","池","匙","尺","齿","耻","斥","赤","翅","充","冲","虫","崇","抽","仇","绸","愁", "稠","筹","酬","丑","臭","出","初","除","厨","锄","础","储","楚","处","触","畜","川","穿","传","船","喘","串","疮","窗","床","创","吹","炊","垂","锤","春","纯","唇","蠢","词","慈","辞","磁","此","次","刺", "从","匆","葱","聪","丛","凑","粗","促","醋","窜","催","摧","脆","翠","村","存","寸","错","曾","搭","达","答","打","大","呆","代","带","待","怠","贷","袋","逮","戴","丹","单","担","耽","胆","旦","但","诞", "弹","淡","蛋","当","挡","党","荡","档","刀","叨","导","岛","倒","蹈","到","悼","盗","道","稻","得","德","的","灯","登","等","凳","低","堤","滴","敌","笛","底","抵","地","弟","帝","递","第","颠","典","点", "电","店","垫","殿","叼","雕","吊","钓","调","掉","爹","跌","叠","蝶","丁","叮","盯","钉","顶","订","定","丢","东","冬","董","懂","动","冻","栋","洞","都","斗","抖","陡","豆","逗","督","毒","读","独","堵", "赌","杜","肚","度","渡","端","短","段","断","缎","锻","堆","队","对","吨","蹲","盾","顿","多","夺","朵","躲","惰","鹅","蛾","额","恶","饿","恩","儿","而","耳","二","发","乏","伐","罚","阀","法","帆","番", "翻","凡","烦","繁","反","返","犯","泛","饭","范","贩","方","坊","芳","防","妨","房","仿","访","纺","放","飞","非","肥","匪","废","沸","肺","费","分","吩","纷","芬","坟","粉","份","奋","愤","粪","丰","风", "封","疯","峰","锋","蜂","逢","缝","讽","凤","奉","佛","否","夫","肤","伏","扶","服","俘","浮","符","幅","福","抚","府","斧","俯","辅","腐","父","付","妇","负","附","咐","复","赴","副","傅","富","腹","覆", "该","改","盖","溉","概","干","甘","杆","肝","竿","秆","赶","敢","感","冈","刚","岗","纲","缸","钢","港","杠","高","膏","糕","搞","稿","告","哥","胳","鸽","割","搁","歌","阁","革","格","葛","隔","个","各", "给","根","跟","更","耕","工","弓","公","功","攻","供","宫","恭","躬","巩","共","贡","勾","沟","钩","狗","构","购","够","估","姑","孤","辜","古","谷","股","骨","鼓","固","故","顾","瓜","刮","挂","乖","拐", "怪","关","观","官","冠","馆","管","贯","惯","灌","罐","光","广","归","龟","规","轨","鬼","柜","贵","桂","跪","滚","棍","锅","国","果","裹","过","哈","孩","海","害","含","寒","喊","汉","汗","旱","航","毫", "豪","好","号","浩","耗","喝","禾","合","何","和","河","核","荷","盒","贺","黑","痕","很","狠","恨","恒","横","衡","轰","哄","烘","红","宏","洪","虹","喉","猴","吼","后","厚","候","乎","呼","忽","狐","胡", "壶","湖","糊","蝴","虎","互","户","护","花","华","哗","滑","猾","化","划","画","话","怀","槐","坏","欢","还","环","缓","幻","唤","换","患","荒","慌","皇","黄","煌","晃","谎","灰","恢","挥","辉","回","悔", "汇","会","绘","贿","惠","毁","慧","昏","婚","浑","魂","混","活","火","伙","或","货","获","祸","惑","击","饥","圾","机","肌","鸡","迹","积","基","绩","激","及","吉","级","即","极","急","疾","集","籍","几", "己","挤","脊","计","记","纪","忌","技","际","剂","季","既","济","继","寄","加","夹","佳","家","嘉","甲","价","驾","架","假","嫁","稼","奸","尖","坚","歼","间","肩","艰","兼","监","煎","拣","俭","茧","捡", "减","剪","检","简","见","件","建","剑","荐","贱","健","舰","渐","践","鉴","键","箭","江","姜","将","浆","僵","疆","讲","奖","桨","匠","降","酱","交","郊","娇","浇","骄","胶","椒","焦","蕉","角","狡","绞", "饺","脚","搅","缴","叫","轿","较","教","阶","觉","掘","嚼","军","君","均","菌","俊","卡","开","皆","接","揭","街","节","劫","杰","洁","结","捷","截","竭","姐","解","介","戒","届","界","借","巾","今","斤", "金","津","筋","仅","紧","谨","锦","尽","劲","近","进","晋","浸","禁","京","经","茎","惊","晶","睛","精","井","颈","景","警","净","径","竞","竟","敬","境","静","镜","纠","究","揪","九","久","酒","旧","救", "就","舅","居","拘","鞠","局","菊","橘","举","矩","句","巨","拒","具","俱","剧","惧","据","距","锯","聚","捐","卷","倦","绢","决","绝","凯","慨","刊","堪","砍","看","康","糠","扛","抗","炕","考","烤","靠", "科","棵","颗","壳","咳","可","渴","克","刻","客","课","肯","垦","恳","坑","空","孔","恐","控","口","扣","寇","枯","哭","苦","库","裤","酷","夸","垮","挎","跨","块","快","宽","款","筐","狂","况","旷","矿", "框","亏","葵","愧","昆","捆","困","扩","括","阔","垃","拉","啦","喇","腊","蜡","辣","来","赖","兰","拦","栏","蓝","篮","览","懒","烂","滥","郎","狼","廊","朗","浪","捞","劳","牢","老","姥","涝","乐","勒", "雷","垒","泪","类","累","冷","厘","梨","狸","离","犁","鹂","璃","黎","礼","李","里","理","力","历","厉","立","丽","利","励","例","隶","栗","粒","俩","连","帘","怜","莲","联","廉","镰","脸","练","炼","恋", "链","良","凉","梁","粮","粱","两","亮","谅","辆","量","辽","疗","僚","了","料","列","劣","烈","猎","裂","邻","林","临","淋","伶","灵","岭","铃","陵","零","龄","领","令","另","溜","刘","流","留","榴","柳", "六","龙","笼","聋","隆","垄","拢","楼","搂","漏","露","芦","炉","虏","鲁","陆","录","鹿","滤","碌","路","驴","轮","论","罗","萝","锣","箩","骡","螺","络","骆","落","妈","麻","马","码","蚂","骂","吗","埋", "买","旅","屡","律","虑","率","绿","卵","乱","掠","略","迈","麦","卖","脉","蛮","馒","瞒","满","慢","漫","忙","芒","盲","茫","猫","毛","矛","茅","茂","冒","贸","帽","貌","么","没","眉","梅","煤","霉","每", "美","妹","门","闷","们","萌","盟","猛","蒙","孟","梦","迷","谜","米","眯","秘","密","蜜","眠","绵","棉","免","勉","面","苗","描","秒","妙","庙","灭","蔑","民","敏","名","明","鸣","命","摸","模","膜","摩", "磨","魔","抹","末","沫","莫","漠","墨","默","谋","某","母","亩","木","目","牧","墓","幕","慕","暮","拿","哪","内","那","纳","乃","奶","耐","男","南","难","囊","挠","恼","脑","闹","呢","嫩","能","尼","泥", "你","逆","年","念","娘","酿","鸟","尿","捏","您","宁","凝","牛","扭","纽","农","浓","弄","奴","努","怒","女","暖","挪","欧","偶","辟","趴","爬","怕","拍","牌","派","攀","盘","判","叛","盼","乓","旁","胖", "抛","炮","袍","跑","泡","陪","培","赔","佩","配","喷","盆","朋","棚","蓬","膨","捧","碰","批","披","劈","皮","疲","脾","匹","僻","片","偏","篇","骗","漂","飘","票","撇","拼","贫","品","乒","平","评","凭", "苹","瓶","萍","坡","泼","婆","迫","破","魄","剖","仆","扑","铺","葡","朴","普","谱","七","妻","戚","期","欺","漆","齐","其","奇","骑","棋","旗","乞","企","岂","启","起","气","弃","汽","砌","器","恰","洽", "千","迁","牵","铅","谦","签","前","钱","钳","潜","浅","遣","欠","歉","枪","腔","强","墙","抢","悄","敲","锹","乔","侨","桥","瞧","巧","切","茄","且","窃","亲","侵","芹","琴","禽","勤","青","轻","倾","清", "蜻","情","晴","顷","请","庆","穷","丘","秋","求","球","区","曲","驱","屈","趋","渠","取","去","趣","圈","全","权","泉","拳","犬","劝","券","缺","却","雀","确","鹊","裙","群","然","燃","染","嚷","壤","让", "饶","扰","绕","惹","热","人","仁","忍","刃","认","任","扔","仍","日","绒","荣","容","熔","融","柔","揉","肉","如","乳","辱","入","软","锐","瑞","润","若","弱","撒","洒","塞","赛","三","伞","散","桑","嗓", "丧","扫","嫂","色","森","杀","沙","纱","傻","筛","晒","山","删","衫","闪","陕","扇","善","伤","商","裳","晌","赏","上","尚","捎","梢","烧","稍","勺","少","绍","哨","舌","蛇","舍","设","社","射","涉","摄", "申","伸","身","深","神","沈","审","婶","肾","甚","渗","慎","升","生","声","牲","胜","绳","省","圣","盛","剩","尸","失","师","诗","施","狮","湿","十","什","石","时","识","实","拾","蚀","食","史","使","始", "驶","士","氏","世","市","示","式","事","侍","势","视","试","饰","室","是","柿","适","逝","释","誓","收","手","守","首","寿","受","兽","售","授","瘦","书","叔","殊","梳","疏","舒","输","蔬","熟","暑","鼠", "属","薯","术","束","述","树","竖","数","刷","耍","衰","摔","甩","帅","拴","双","霜","爽","谁","水","税","睡","顺","说","嗽","丝","司","私","思","斯","撕","死","四","寺","似","饲","肆","松","宋","诵","送", "颂","搜","艘","苏","俗","诉","肃","素","速","宿","塑","酸","蒜","算","虽","随","岁","碎","穗","孙","损","笋","缩","所","索","锁","她","他","它","塌","塔","踏","台","抬","太","态","泰","贪","摊","滩","坛", "谈","痰","坦","毯","叹","炭","探","汤","唐","堂","塘","膛","糖","倘","躺","烫","趟","涛","掏","滔","逃","桃","陶","淘","萄","讨","套","特","疼","腾","梯","踢","提","题","蹄","体","剃","惕","替","天","添", "田","甜","填","挑","条","跳","贴","铁","帖","厅","听","亭","庭","停","挺","艇","通","同","桐","铜","童","统","桶","筒","痛","偷","头","投","透","秃","突","图","徒","涂","途","屠","土","吐","兔","团","推", "腿","退","吞","屯","托","拖","脱","驼","妥","娃","挖","蛙","瓦","袜","歪","外","弯","湾","丸","完","玩","顽","挽","晚","碗","万","汪","亡","王","网","往","妄","忘","旺","望","危","威","微","为","围","违", "唯","维","伟","伪","尾","委","卫","未","位","味","畏","胃","喂","慰","温","文","纹","闻","蚊","稳","问","翁","窝","我","沃","卧","握","乌","污","呜","屋","无","吴","五","午","伍","武","侮","舞","勿","务", "物","误","悟","雾","夕","西","吸","希","析","息","牺","悉","惜","稀","溪","锡","熄","膝","习","席","袭","洗","喜","戏","系","细","隙","虾","瞎","峡","狭","霞","下","吓","夏","厦","仙","先","纤","掀","鲜", "闲","弦","贤","咸","衔","嫌","显","险","县","现","线","限","宪","陷","馅","羡","献","乡","相","香","箱","详","祥","享","响","想","向","巷","项","象","像","橡","些","歇","协","邪","胁","斜","携","鞋","写", "泄","泻","卸","屑","械","谢","心","辛","欣","新","薪","信","兴","星","腥","刑","行","形","型","醒","杏","姓","幸","性","凶","兄","胸","雄","熊","休","修","羞","朽","秀","绣","袖","锈","须","虚","需","徐", "许","序","叙","绪","续","絮","蓄","宣","悬","旋","选","穴","学","雪","血","寻","巡","旬","询","循","削","宵","消","销","小","晓","孝","效","校","笑","训","讯","迅","压","呀","押","鸦","鸭","牙","芽","崖", "哑","雅","亚","咽","烟","淹","延","严","言","岩","沿","炎","研","盐","蜒","颜","掩","眼","演","厌","宴","艳","验","焰","雁","燕","央","殃","秧","扬","羊","阳","杨","洋","仰","养","氧","痒","样","妖","腰", "邀","窑","谣","摇","遥","咬","药","要","钥","悦","阅","跃","越","云","匀","允","孕","运","耀","爷","也","冶","野","业","叶","页","夜","液","一","衣","医","依","仪","宜","姨","移","遗","疑","乙","已","以", "蚁","倚","椅","义","亿","忆","艺","议","亦","异","役","译","易","疫","益","谊","意","毅","翼","因","阴","姻","音","银","引","饮","隐","印","应","英","樱","鹰","迎","盈","营","蝇","赢","影","映","硬","佣", "拥","庸","永","咏","泳","勇","涌","用","优","忧","悠","尤","由","犹","邮","油","游","友","有","又","右","幼","诱","于","予","余","鱼","娱","渔","愉","愚","榆","与","宇","屿","羽","雨","语","玉","育","郁", "狱","浴","预","域","欲","御","裕","遇","愈","誉","冤","元","员","园","原","圆","援","缘","源","远","怨","院","愿","约","月","晕","韵","杂","灾","栽","宰","载","再","在","咱","暂","赞","脏","葬","遭","糟", "早","枣","澡","灶","皂","造","燥","躁","则","择","泽","责","贼","怎","增","赠","渣","扎","轧","闸","眨","炸","榨","摘","宅","窄","债","寨","沾","粘","斩","展","盏","崭","占","战","站","张","章","涨","掌", "丈","仗","帐","胀","障","招","找","召","兆","赵","照","罩","遮","爪","专","砖","转","赚","庄","装","壮","状","撞","折","哲","者","这","浙","贞","针","侦","珍","真","诊","枕","阵","振","镇","震","争","征", "挣","睁","筝","蒸","整","正","证","郑","政","症","之","支","汁","芝","枝","知","织","肢","脂","蜘","执","侄","直","值","职","植","殖","止","只","旨","址","纸","指","至","志","制","帜","治","质","秩","致", "智","置","中","忠","终","钟","肿","种","众","重","州","舟","周","洲","粥","宙","昼","皱","骤","朱","株","珠","诸","猪","蛛","竹","烛","逐","主","煮","嘱","住","助","注","驻","柱","祝","著","筑","铸","抓", "追","准","捉","桌","浊","啄","着","仔","姿","资","滋","子","紫","字","自","宗","棕","踪","总","纵","走","奏","租","足","族","阻","组","祖","钻","嘴","最","罪","醉","尊","遵","昨","左","作","坐","座","阿", "啊","哀","唉","挨","矮","爱","碍","安","岸","按","案","暗","昂","袄","傲","奥","八","巴","扒","吧","疤","拔","把","坝","爸","罢","霸","白","百","柏","摆","败","拜","班","般","斑","搬","板","版","办","半", "伴","扮","拌","瓣","帮","绑","榜","膀","傍","棒","包","胞","雹","宝","饱","保","堡","报","抱","暴","爆","杯","悲","碑","北","贝","备","背","倍","被","辈","奔","本","笨","蹦","逼","鼻","比","彼","笔","鄙", "币","必","毕","闭","毙","弊","碧","蔽","壁","避","臂","边","编","鞭","扁","便","变","遍","辨","辩","辫","标","表","别","宾","滨","冰","兵","丙","柄","饼","并","病","拨","波","玻","剥","脖","菠","播","伯", "驳","泊","博","搏","膊","薄","卜","补","捕","不","布","步","怖","部","擦","猜","才","材","财","裁","采","彩","睬","踩","菜","参","餐","残","蚕","惭","惨","灿","仓","苍","舱","藏","操","槽","草","册","侧", "厕","测","策","层","叉","插","查","茶","察","岔","差","拆","柴","馋","缠","产","铲","颤","昌","长","肠","尝","偿","常","厂","场","敞","畅","倡","唱","抄","钞","超","朝","潮","吵","炒","车","扯","彻","撤", "尘","臣","沉","辰","陈","晨","闯","衬","称","趁","撑","成","呈","承","诚","城","乘","惩","程","秤","吃","驰","迟","持","虫","崇","抽","仇","绸","愁","稠","筹","酬","丑","臭","出","初","除","厨","锄","础", "储","楚","处","触","畜","川","穿","传","船","喘","串","疮","窗","床","创","吹","炊","垂","锤","春","纯","唇","蠢","词","慈","辞","磁","此","次","刺","从","匆","葱","聪","丛","凑","粗","促","醋","窜","催", "摧","脆","翠","村","存","寸","错","曾","搭","达","答","打","大","呆","代","带","待","怠","贷","袋","逮","戴","丹","单","担","耽","胆","旦","但","诞","弹","淡","蛋","当","挡","党","荡","档","刀","叨","导", "岛","倒","蹈","到","悼","盗","道","稻","得","德","的","灯","登","等","凳","低","堤","滴","敌","笛","底","抵","地","弟","帝","递","第","颠","典","点","电","店","垫","殿","叼","雕","吊","钓","调","掉","爹", "跌","叠","蝶","丁","叮","盯","钉","顶","订","定","丢","东","冬","董","懂","动","冻","栋","洞","都","斗","抖","陡","豆","逗","督","毒","读","独","堵","赌","杜","肚","度","渡","端","短","段","断","缎","锻", "堆","队","对","吨","蹲","盾","顿","多","夺","朵","躲","惰","鹅","蛾","额","恶","饿","恩","儿","而","耳","二","发","乏","伐","罚","阀","法","帆","番","翻","凡","烦","繁","反","返","犯","泛","饭","范","贩", "方","坊","芳","防","妨","房","仿","访","纺","放","飞","非","肥","匪","废","沸","肺","费","分","吩","纷","芬","坟","粉","份","奋","愤","粪","丰","风","封","疯","峰","锋","蜂","逢","缝","讽","凤","奉","佛", "否","夫","肤","伏","扶","服","俘","浮","符","幅","福","抚","府","斧","俯","辅","腐","父","付","妇","负","附","咐","复","赴","副","傅","富","腹","覆","该","改","盖","溉","概","干","甘","杆","肝","竿","秆", "赶","敢","感","冈","刚","岗","纲","缸","钢","港","杠","高","膏","糕","搞","稿","告","哥","胳","鸽","割","搁","歌","阁","革","格","葛","隔","个","各","给","根","跟","更","耕","工","弓","公","功","攻","供", "宫","恭","躬","巩","共","贡","勾","沟","钩","狗","构","购","够","估","姑","孤","辜","古","谷","股","骨","鼓","固","故","顾","瓜","刮","挂","乖","拐","怪","关","观","官","冠","馆","管","贯","惯","灌","罐", "光","广","归","龟","规","轨","鬼","柜","贵","桂","跪","滚","棍","锅","国","果","裹","过","哈","孩","海","害","含","寒","喊","汉","汗","旱","航","毫","豪","好","号","浩","耗","喝","禾","合","何","和","河", "核","荷","盒","贺","黑","痕","很","狠","恨","恒","横","衡","轰","哄","烘","红","宏","洪","虹","喉","猴","吼","后","厚","候","乎","呼","忽","狐","胡","壶","湖","糊","蝴","虎","互","户","护","花","华","哗", "滑","猾","化","划","画","话","怀","槐","坏","欢","还","环","缓","幻","唤","换","患","荒","慌","皇","黄","煌","晃","谎","灰","恢","挥","辉","回","悔","汇","会","绘","贿","惠","毁","慧","昏","婚","浑","魂", "混","活","火","伙","或","货","获","祸","惑","击","饥","圾","机","肌","鸡","迹","积","基","绩","激","及","吉","级","即","极","急","疾","集","籍","几","己","挤","脊","计","记","纪","忌","技","际","剂","季", "既","济","继","寄","加","夹","佳","家","嘉","甲","价","驾","架","假","嫁","稼","奸","尖","坚","歼","间","肩","艰","兼","监","煎","拣","俭","茧","捡","减","剪","检","简","见","件","建","剑","荐","贱","健", "舰","渐","践","鉴","键","箭","江","姜","将","浆","僵","疆","讲","奖","桨","匠","降","酱","交","郊","娇","浇","骄","胶","椒","焦","蕉","角","狡","绞","饺","脚","搅","缴","叫","轿","较","教","阶","皆","接", "揭","街","节","劫","杰","洁","结","捷","截","竭","姐","解","介","戒","届","界","借","巾","今","斤","金","津","筋","仅","紧","谨","锦","尽","劲","近","进","晋","浸","禁","京","经","茎","惊","晶","睛","精", "井","颈","景","警","净","径","竞","竟","敬","境","静","镜","纠","究","揪","九","久","酒","旧","救","就","舅","居","拘","鞠","局","菊","橘","举","矩","句","巨","拒","具","俱","剧","惧","据","距","锯","聚", "捐","卷","倦","绢","决","绝","觉","掘","嚼","军","君","均","菌","俊","卡","开","凯","慨","刊","堪","砍","看","康","糠","扛","抗","炕","考","烤","靠","科","棵","颗","壳","咳","可","渴","克","刻","客","课", "肯","垦","恳","坑","空","孔","恐","控","口","扣","寇","枯","哭","苦","库","裤","酷","夸","垮","挎","跨","块","快","宽","款","筐","狂","况","旷","矿","框","亏","葵","愧","昆","捆","困","扩","括","阔","垃", "拉","啦","喇","腊","蜡","辣","来","赖","兰","拦","栏","蓝","篮","览","懒","烂","滥","郎","狼","廊","朗","浪","捞","劳","牢","老","姥","涝","乐","勒","雷","垒","泪","类","僚","了","料","列","劣","烈","猎", "裂","邻","林","累","冷","厘","梨","狸","离","犁","鹂","璃","黎","礼","李","里","理","力","历","厉","立","丽","利","励","例","隶","栗","粒","俩","连","帘","怜","莲","联","廉","镰","脸","练","炼","恋","链", "良","凉","梁","粮","粱","两","亮","谅","辆","量","辽","疗","临","淋","伶","灵","岭","铃","陵","零","龄","领","令","另","溜","刘","流","留","榴","柳","六","龙","笼","聋","隆","垄","拢","楼","搂","漏","露", "芦","炉","虏","鲁","陆","录","鹿","滤","碌","路","驴","轮","论","罗","萝","锣","箩","骡","螺","络","骆","旅","屡","律","虑","率","绿","卵","乱","掠","略","落","妈","麻","马","码","蚂","骂","吗","埋","买", "迈","麦","卖","脉","蛮","馒","瞒","满","慢","漫","忙","芒","盲","茫","猫","毛","矛","茅","茂","冒","贸","帽","貌","么","没","眉","梅","煤","霉","每","美","妹","门","闷","们","萌","盟","猛","蒙","孟","梦", "迷","谜","米","眯","秘","密","蜜","眠","绵","棉","免","勉","面","苗","描","秒","妙","庙","灭","蔑","民","敏","名","明","鸣","命","摸","模","膜","摩","磨","魔","抹","末","沫","莫","漠","墨","默","谋","某", "母","亩","木","目","牧","墓","幕","慕","暮","拿","哪","内","那","纳","乃","奶","耐","男","南","难","囊","挠","恼","脑","闹","呢","嫩","能","尼","泥","你","逆","年","念","娘","酿","鸟","尿","捏","您","宁", "凝","牛","扭","纽","农","浓","弄","奴","努","怒","女","暖","挪","欧","偶","辟","趴","爬","怕","拍","牌","派","攀","盘","判","叛","盼","乓","旁","胖","抛","炮","袍","跑","泡","陪","培","赔","佩","配","喷", "盆","朋","棚","蓬","膨","捧","碰","批","披","劈","皮","疲","脾","匹","僻","片","偏","篇","骗","漂","飘","票","撇","拼","贫","品","乒","平","评","凭","苹","瓶","萍","坡","泼","婆","迫","破","魄","剖","仆", "扑","铺","葡","朴","普","谱","七","妻","戚","期","欺","漆","齐","其","奇","骑","棋","旗","乞","企","岂","启","起","气","弃","汽","砌","器","恰","洽","千","迁","牵","铅","谦","签","前","钱","钳","潜","浅", "遣","欠","歉","枪","腔","强","墙","抢","悄","敲","锹","乔","侨","桥","瞧","巧","切","茄","且","窃","亲","侵","芹","琴","禽","勤","青","轻","倾","清","蜻","情","晴","顷","请","庆","穷","丘","秋","求","球", "区","曲","驱","屈","趋","渠","取","去","趣","圈","全","权","泉","拳","犬","劝","券","缺","却","雀","确","鹊","裙","群","然","燃","染","嚷","壤","让","饶","扰","绕","惹","热","人","仁","忍","刃","认","任", "扔","仍","日","绒","荣","容","熔","融","柔","揉","肉","如","乳","辱","入","软","锐","瑞","润","若","弱","撒","洒","塞","赛","三","伞","散","桑","嗓","丧","扫","嫂","色","森","杀","沙","纱","傻","筛","晒", "山","删","衫","闪","陕","扇","善","伤","商","裳","晌","赏","上","尚","捎","梢","烧","稍","勺","少","绍","哨","舌","蛇","舍","设","社","射","涉","摄","申","伸","身","深","神","沈","审","婶","肾","甚","渗", "慎","升","生","声","牲","胜","绳","省","圣","盛","剩","尸","失","师","诗","施","狮","湿","十","什","石","时","识","实","拾","蚀","食","史","使","始","驶","士","氏","世","市","示","式","事","侍","势","视", "试","饰","室","是","柿","适","逝","释","誓","池","匙","尺","齿","耻","斥","赤","翅","充","冲","收","手","守","首","寿","受","兽","售","授","瘦","书","叔","殊","梳","疏","舒","输","蔬","熟","暑","鼠","属", "薯","术","束","述","树","竖","数","刷","耍","衰","摔","甩","帅","拴","双","霜","爽","谁","水","税","睡","顺","说","嗽","丝","司","私","思","斯","撕","死","四","寺","似","饲","肆","松","宋","诵","送","颂", "搜","艘","苏","俗","诉","肃","素","穗","孙","损","笋","缩","所","索","锁","她","他","它","塌","塔","踏","台","抬","太","态","泰","贪","摊","滩","坛","谈","痰","坦","毯","叹","炭","探","汤","唐","堂","塘", "膛","糖","倘","躺","烫","趟","涛","掏","滔","逃","桃","陶","淘","萄","讨","套","特","疼","腾","梯","踢","提","题","蹄","体","剃","惕","替","天","添","田","甜","填","挑","条","跳","贴","铁","帖","厅","听", "亭","庭","停","挺","艇","通","同","桐","铜","童","统","桶","筒","痛","偷","头","投","透","秃","突","图","徒","涂","途","屠","土","吐","兔","团","推","腿","退","吞","屯","托","拖","脱","驼","妥","娃","挖", "蛙","瓦","袜","歪","外","弯","湾","丸","完","玩","顽","挽","晚","碗","万","汪","亡","王","网","往","妄","忘","旺","望","危","威","微","为","围","违","唯","维","伟","伪","尾","委","卫","未","位","味","畏", "胃","喂","慰","温","文","纹","闻","蚊","稳","问","翁","窝","我","沃","卧","握","乌","污","呜","屋","无","吴","五","午","伍","武","侮","舞","勿","务","物","误","悟","雾","夕","西","吸","希","析","息","牺", "悉","惜","稀","溪","锡","熄","膝","习","席","袭","洗","喜","戏","系","细","隙","虾","瞎","峡","狭","霞","下","吓","夏","厦","仙","先","纤","掀","鲜","闲","弦","贤","咸","衔","嫌","显","险","县","现","线", "限","宪","陷","馅","羡","献","乡","相","香","箱","详","祥","享","响","想","向","巷","项","象","像","橡","削","宵","消","销","小","晓","孝","效","校","笑","些","歇","协","邪","胁","斜","携","鞋","写","泄", "泻","卸","屑","械","谢","心","辛","欣","新","薪","信","兴","星","腥","刑","行","形","型","醒","杏","姓","幸","性","凶","兄","胸","雄","熊","休","修","羞","朽","秀","绣","袖","锈","须","虚","需","徐","速", "宿","塑","酸","蒜","算","虽","随","岁","碎","许","序","叙","绪","续","絮","蓄","宣","悬","旋","选","穴","学","雪","血","寻","巡","旬","询","循","训","讯","迅","压","呀","押","鸦","鸭","牙","芽","崖","哑", "雅","亚","咽","烟","淹","延","严","言","岩","沿","炎","研","盐","蜒","颜","掩","眼","演","厌","宴","艳","验","焰","雁","燕","央","殃","秧","扬","羊","阳","杨","洋","仰","养","氧","痒","样","妖","腰","邀", "窑","谣","摇","遥","咬","药","要","耀","爷","也","冶","野","业","叶","页","夜","液","一","衣","医","依","仪","宜","姨","移","遗","疑","乙","已","以","蚁","倚","椅","义","亿","忆","艺","议","亦","异","役", "译","易","疫","益","谊","意","毅","翼","因","阴","姻","音","银","引","饮","隐","印","应","英","樱","鹰","迎","盈","营","蝇","赢","影","映","硬","佣","拥","庸","永","咏","泳","勇","涌","用","优","忧","悠", "尤","由","犹","邮","油","游","友","有","又","右","幼","诱","于","予","余","鱼","娱","渔","愉","愚","榆","与","宇","屿","羽","雨","语","玉","育","郁","狱","浴","预","域","欲","御","裕","遇","愈","誉","冤", "元","员","园","原","圆","援","缘","源","远","怨","院","愿","约","月","钥","悦","阅","跃","越","云","匀","允","孕","运","晕","韵","杂","灾","栽","宰","载","再","在","咱","暂","赞","脏","葬","遭","糟","早", "枣","澡","灶","皂","造","燥","躁","则","择","泽","责","贼","怎","增","赠","渣","扎","轧","闸","眨","炸","榨","摘","宅","窄","债","寨","沾","粘","斩","展","盏","崭","占","战","站","张","章","涨","掌","丈", "仗","帐","胀","障","招","找","召","兆","赵","照","罩","遮","折","哲","者","这","浙","贞","针","侦","珍","真","诊","枕","阵","振","镇","震","争","征","挣","睁","筝","蒸","整","正","证","郑","政","症","之", "支","汁","芝","枝","知","织","肢","脂","蜘","执","侄","直","值","职","植","殖","止","只","旨","址","纸","指","至","志","制","帜","治","质","秩","致","智","置","中","忠","终","钟","肿","种","众","重","州", "舟","周","洲","粥","宙","昼","皱","骤","朱","株","珠","诸","猪","蛛","竹","烛","逐","主","煮","嘱","住","助","注","驻","柱","祝","著","筑","铸","抓","爪","专","砖","转","赚","庄","装","壮","状","撞","追", "准","捉","桌","浊","啄","着","仔","姿","资","滋","子","紫","字","自","宗","棕","踪","总","纵","走","奏","租","足","族","阻","组","祖","钻","嘴","最","罪","醉","尊","遵","昨","左","作","坐","座"}; int PET_DEBUG_initPetOne( int charaindex) { Char ch; int havepetindex; int index; /* ペットを持てるか調べる */ havepetindex = CHAR_getCharPetElement( charaindex) ; memset( &ch, 0, sizeof( ch)); if( !CHAR_getDefaultChar( &ch,31010 ) )return -1; /* 画像番号 */ ch.data[CHAR_BASEBASEIMAGENUMBER] = ch.data[CHAR_BASEIMAGENUMBER] = 30008; ch.data[CHAR_WHICHTYPE] = CHAR_TYPEPET; /* 攻撃力 */ ch.workint[CHAR_WORKATTACKPOWER] = 100; /* 守備力 */ ch.workint[CHAR_WORKDEFENCEPOWER] = 50; /* HP */ ch.data[CHAR_HP] = 100; /* 名前 */ strcpysafe( ch.string[CHAR_NAME].string, 32, "宠物1" ); /* CHARに割り当てる */ index = PET_initCharOneArray( &ch); if( index < 0 ) return -1; /* ご主人セット */ CHAR_setWorkInt( index, CHAR_WORKPLAYERINDEX, charaindex); CHAR_setWorkInt( index,CHAR_WORKOBJINDEX,-1); CHAR_setCharPet( charaindex, havepetindex, index); CHAR_setInt( index, CHAR_SLOT, 2); return havepetindex; } static int _PET_dropPet( int charaindex, int havepetindex, int tofl, int tox, int toy) { char szPet[128]; int dirx[9],diry[9]; int i, j; int objindex=-1; int floor,x,y; int petindex; int count_chara =0, count_item =0; if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return FALSE; petindex = CHAR_getCharPet(charaindex,havepetindex); if( !CHAR_CHECKINDEX( petindex )) return FALSE; if( !CHAR_CHECKINDEX( charaindex ) )return FALSE; if( CHAR_CHECKINDEX( petindex) == FALSE ) return FALSE; #ifdef _AVID_TRADETRYBUG //丢出宠物 if( CHAR_getWorkInt( charaindex, CHAR_WORKTRADEMODE) == CHAR_TRADE_TRADING ){ CHAR_talkToCli( charaindex, -1, "交易状态中无法丢出宠物。", CHAR_COLORYELLOW ); return FALSE; } #endif // CoolFish: Family 2001/6/13 if (CHAR_getInt(petindex, CHAR_PETFAMILY) == 1){ CHAR_talkToCli(charaindex, -1, "家族守护兽无法丢出!", CHAR_COLORYELLOW); return FALSE; } if (CHAR_getInt(charaindex, CHAR_RIDEPET) == havepetindex ){ CHAR_talkToCli(charaindex, -1, "骑乘中的宠物无法丢出!", CHAR_COLORYELLOW); return FALSE; } if( strlen(CHAR_getChar(petindex,CHAR_USERPETNAME))>0 && strstr(CHAR_getChar(petindex,CHAR_USERPETNAME),"*")!=NULL ){ CHAR_talkToCli(charaindex, -1, "宠物自定义名称中含有(*),无法丢弃、卖店、交易、摆摊,请修改后操作。", CHAR_COLORYELLOW); return FALSE; } #ifdef _DROPCHECK2 floor = CHAR_getInt( charaindex, CHAR_FLOOR); x = CHAR_getInt( charaindex, CHAR_X); y = CHAR_getInt( charaindex, CHAR_Y); for( i = x-CHAR_DEFAULTSEESIZ/2 ; i <= x+CHAR_DEFAULTSEESIZ/2 ; i++ ){ for( j = y-CHAR_DEFAULTSEESIZ/2 ; j <= y+CHAR_DEFAULTSEESIZ/2 ; j ++ ){ OBJECT object; for( object = MAP_getTopObj(floor,i,j); object ; object = NEXT_OBJECT(object ) ) { int objindex = GET_OBJINDEX(object); if( OBJECT_getType(objindex) == OBJTYPE_NOUSE ) continue; if( OBJECT_getType(objindex) == OBJTYPE_CHARA ) { count_chara++; } if( OBJECT_getType(objindex) == OBJTYPE_ITEM || OBJECT_getType(objindex) == OBJTYPE_GOLD ) { count_item++; } } } if( count_item > 80 || count_chara > 80 ) { CHAR_talkToCli( charaindex, -1, "这里已经太拥挤了,不能再丢了。", CHAR_COLORYELLOW ); return FALSE; } } #endif if( tofl == -1 ) { for( i = 0 ; i < 7 ; i ++ ){ dirx[i+2] = CHAR_getDX(CHAR_getInt(charaindex,CHAR_DIR) + i+1); diry[i+2] = CHAR_getDY(CHAR_getInt(charaindex,CHAR_DIR) + i+1); } dirx[0] = CHAR_getDX(CHAR_getInt(charaindex,CHAR_DIR)); diry[0] = CHAR_getDY(CHAR_getInt(charaindex,CHAR_DIR)); dirx[1] = 0; diry[1] = 0; floor = CHAR_getInt( charaindex,CHAR_FLOOR ); for( i = 0 ; i < 9 ; i ++ ){ int x=CHAR_getInt(charaindex,CHAR_X)+dirx[i]; int y=CHAR_getInt(charaindex,CHAR_Y)+diry[i]; if( PET_isPutPoint( floor, x, y ) == TRUE ) { break; } } if( i == 9 ) i = 1; x=CHAR_getInt(charaindex,CHAR_X)+dirx[i]; y=CHAR_getInt(charaindex,CHAR_Y)+diry[i]; }else { if( MAP_walkAbleFromPoint( tofl,tox,toy, FALSE ) == FALSE ) { print( "map walkable err %s:%d\n", __FILE__,__LINE__); return FALSE; } floor = tofl; x = tox; y = toy; } objindex = PET_dropPetAbsolute( petindex,floor,x,y, FALSE ); if( objindex == -1 ) return FALSE; CHAR_setWorkInt( petindex,CHAR_WORKOBJINDEX,objindex ); CHAR_setCharPet( charaindex, havepetindex, -1); CHAR_setInt( petindex, CHAR_FLOOR, floor); CHAR_setInt( petindex, CHAR_X, x); CHAR_setInt( petindex, CHAR_Y, y); CHAR_setInt( petindex, CHAR_PUTPETTIME, NowTime.tv_sec); if( havepetindex == CHAR_getInt( charaindex, CHAR_DEFAULTPET)) { int fd; CHAR_setInt( charaindex, CHAR_DEFAULTPET, -1); fd = getfdFromCharaIndex( charaindex); lssproto_KS_send( fd, havepetindex, 0); } CHAR_sendCToArroundCharacter( objindex); if( CHAR_getInt( charaindex, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER) { #ifdef _PET_ITEM CHAR_sendPetItemEmpty(charaindex,havepetindex); #endif snprintf( szPet, sizeof( szPet ), "K%d", havepetindex ); CHAR_sendStatusString( charaindex, szPet ); } return TRUE; } /*------------------------------------------------------------ * 無理矢理ペットを置く * 引数 * itemindex int アイテムインデックス * floor int フロアID * x int x座標 * y int y座標 * net BOOL ネットワークのことをするかどうか * 返り値 * 成功 objindex * 失敗 -1 ------------------------------------------------------------*/ int PET_dropPetAbsolute( int petindex, int floor, int x, int y,BOOL net) { Object object; int objindex; if( !CHAR_CHECKINDEX(petindex) )return FALSE; object.type = OBJTYPE_CHARA; object.index = petindex; object.x = x; object.y = y; object.floor = floor; /* オブジェクト登録する */ objindex = initObjectOne( &object ); /* ネットワークフラグがたっているときはする by ringo*/ if( net ) CHAR_sendWatchEvent( objindex,CHAR_ACTSTAND,NULL,0,TRUE); return objindex; } BOOL PET_isPutPoint( int fl,int x, int y) { OBJECT object; if( MAP_walkAbleFromPoint( fl,x,y, FALSE ) == FALSE ) return FALSE; for( object=MAP_getTopObj(fl,x,y) ; object ; object = NEXT_OBJECT(object ) ) { int objindex = GET_OBJINDEX(object); switch( OBJECT_getType(objindex) ){ case OBJTYPE_NOUSE: break; case OBJTYPE_ITEM: case OBJTYPE_GOLD: case OBJTYPE_CHARA: return FALSE; break; default: break; } } return TRUE; } int PET_dropPet( int charaindex, int havepetindex) { if( CHAR_getWorkInt( charaindex, CHAR_WORKSAFEMODE)==0) { CHAR_SafePassword(charaindex); return; } int petindex; petindex = CHAR_getCharPet(charaindex,havepetindex); if( !CHAR_CHECKINDEX( petindex )) return FALSE; #ifdef _PET_AMOI__E //if( PET_NOT_DropTradeStreetVandor == EVOLUTION_getPetENABLETRADE( CHAR_getInt( petindex, CHAR_PETID)) || // PET_NOT_Drop == EVOLUTION_getPetENABLETRADE( CHAR_getInt( petindex, CHAR_PETID)) ){ if( (PET_NOT_DROP) & EVOLUTION_getPetENABLETRADE( CHAR_getInt( petindex, CHAR_PETID))){ char buf[256]; sprintf( buf, "%s无法丢弃!~",CHAR_getChar( petindex, CHAR_NAME) ); CHAR_talkToCli(charaindex,-1,buf,CHAR_COLORRED); return FALSE; } #endif #ifdef _PETSKILL_BINDING int i,skillid=-1,skillarray; for(i=0;i<7;i++){ skillid=CHAR_getPetSkill(petindex,i); skillarray = PETSKILL_getPetskillArray( skillid); if( PETSKILL_CHECKINDEX( skillarray) == FALSE ) continue; if(strstr(PETSKILL_getChar( skillarray, PETSKILL_NAME),"★")){ CHAR_talkToCli(charaindex, -1, "此宠物为绑定宠物,无法丢弃", CHAR_COLORRED); return; } } #endif #ifdef _PET_BINDING if(strstr(CHAR_getChar(petindex,CHAR_NAME),"*") || strstr(CHAR_getChar(petindex,CHAR_NAME),"+")){ CHAR_talkToCli(charaindex, -1, "此宠物为绑定宠物,无法丢弃", CHAR_COLORRED); return; } #endif #ifdef _MM_NO_JIAOBEN if(getNoMMJiaoben()==1){ if(CHAR_getInt(petindex,CHAR_PETID)==718 || CHAR_getInt( petindex, CHAR_PETID) == 401){ if(getMmType()==0){ CHAR_talkToCli(charaindex, -1, getMmMsg(), CHAR_COLORRED); return; } time_t timep; struct tm *p; time(&timep); p=localtime(&timep); timep = mktime(p); char *randtypetime = CHAR_getChar(charaindex,CHAR_RANDTYPE); char tempbuff[64]; int randtype = 0; int randtime = 0; int randwrong = 0; if(strlen(randtypetime)>2){ if(getStringFromIndexWithDelim(randtypetime,"-", 3, tempbuff, sizeof(tempbuff)) != FALSE){ if(getStringFromIndexWithDelim(randtypetime,"-", 1, tempbuff, sizeof(tempbuff))== FALSE) return 0; randwrong = atoi(tempbuff); if(getStringFromIndexWithDelim(randtypetime,"-", 2, tempbuff, sizeof(tempbuff))== FALSE) return 0; randtype = atoi(tempbuff); if(getStringFromIndexWithDelim(randtypetime,"-", 3, tempbuff, sizeof(tempbuff))== FALSE) return 0; randtime = atoi(tempbuff); if(timep - randtime < getEditBaseTime()*randwrong){ char errbuf[256]; sprintf(errbuf,"您还有%d秒才可以继续此操作!",getEditBaseTime()*randwrong-(timep - randtime)); CHAR_talkToCli(charaindex, -1, errbuf, CHAR_COLORRED); return 0; } } } // if(timep-CHAR_getWorkInt(charaindex,CHAR_WORKRANDEDITBASETIME)>=getEditBaseTime()) // CHAR_setWorkInt(charaindex,CHAR_WORKRANDEDITBASETIME,timep); // else{ // char errbuf[256]; // sprintf(errbuf,"您还有%d秒才可以继续此操作!",getEditBaseTime()-(timep-CHAR_getWorkInt(charaindex,CHAR_WORKRANDEDITBASETIME))); // CHAR_talkToCli(charaindex, -1, errbuf, CHAR_COLORRED); // return; // } int fd = getfdFromCharaIndex( charaindex); char arg[255]; char buf[128]; char jiabuf[][5]={"加","╋","╉","╈","╂","十","╃"}; char jianbuf[][5]={"减","一","-","—","-","—","━"}; char chengbuf[][5]={"乘","*","x","X","X","x","*"}; char numbuf[][5]={"0","1","2","3","4","5","6","7","8","9"}; int i,j,k,l,m; i = RAND(30,70); j = RAND(1,29); l = RAND(1,7); m = RAND(1,3); char *typebuf; // if(randtype == 0){ // randtype = RAND(1,10); // if(randtype<=5){ // randtype = RAND(1,10); // if(randtype<=3) randtype=1; // else randtype=2; // }else{ // randtype = RAND(1,10); // if(randtype<=3) randtype=3; // else randtype=4; // } // } randtype = 4; if(randtype==1){ if(m==1){ typebuf=jiabuf[l-1]; k = i+j; }else{ typebuf=jianbuf[l-1]; k = i-j; } char ibuf[10],jbuf[10]; if(i<10){ sprintf(ibuf,"%s",numbuf[i]); }else{ int ia,ib; ia = i/10; ib = i - ia*10; sprintf(ibuf,"%s",numbuf[ia]); strcat(ibuf,numbuf[ib]); } if(j<10){ sprintf(jbuf,"%s",numbuf[j]); }else{ int ja,jb; ja = j/10; jb = j - ja*10; sprintf(jbuf,"%s",numbuf[ja]); strcat(jbuf,numbuf[jb]); } sprintf(arg,"%d|%d",havepetindex,k); CHAR_setWorkChar(charaindex, CHAR_WORKDROPMM, arg); sprintf(buf,"请输入这个算术公式的结果(%s%s%s=?):",ibuf,typebuf,jbuf); lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGEANDLINEINPUT, WINDOW_BUTTONTYPE_OK, CHAR_WINDOWTYPE_RAND1_DROPMM, -1, buf); }else if(randtype==2){ if(m==1){ typebuf=jiabuf[l-1]; k = i+j; }else if(m==2){ typebuf=jianbuf[l-1]; k = i-j; }else{ typebuf=chengbuf[l-1]; k = i*j; } char ibuf[10],jbuf[10]; if(i<10){ sprintf(ibuf,"%s",numbuf[i]); }else{ int ia,ib; ia = i/10; ib = i - ia*10; sprintf(ibuf,"%s",numbuf[ia]); strcat(ibuf,numbuf[ib]); } if(j<10){ sprintf(jbuf,"%s",numbuf[j]); }else{ int ja,jb; ja = j/10; jb = j - ja*10; sprintf(jbuf,"%s",numbuf[ja]); strcat(jbuf,numbuf[jb]); } int n; int randnum1; char tempret[5][32]; randnum1 = RAND(1,5); int randnumbuf[4]; int tmpi=0; while(tmpi<100){ randnumbuf[0] = RAND(1,100); randnumbuf[1] = RAND(1,100); randnumbuf[2] = RAND(1,100); randnumbuf[3] = RAND(1,100); if(randnumbuf[0]!=randnumbuf[1]!=randnumbuf[2]!=randnumbuf[3]!=k){ break; } tmpi++; } tmpi=0; for(n=1;n<=5;n++){ if(n==randnum1){ sprintf(tempret[n-1],"%d",k); }else if(tmpi<4){ sprintf(tempret[n-1],"%d",randnumbuf[tmpi]); tmpi++; } } sprintf(arg,"%d|%d",havepetindex,randnum1); CHAR_setWorkChar(charaindex, CHAR_WORKDROPMM, arg); sprintf(buf,"3\n请选择这个算术公式的结果(%s%s%s=?):\n \n \n选项一:%s\n选项二:%s\n选项三:%s\n选项四:%s\n选项五:%s\n",ibuf,typebuf,jbuf,tempret[0],tempret[1],tempret[2],tempret[3],tempret[4]); lssproto_WN_send( fd, WINDOW_MESSAGETYPE_SELECT, WINDOW_BUTTONTYPE_OK, CHAR_WINDOWTYPE_RAND2_DROPMM, -1, buf); }else if(randtype==3){ sprintf(arg,"%s",sasql_rand_buf()); if(strcmp(arg,"err")==0) return; char tempbuf[64]; char randquestion[64]; char randrightanswer[64]; if(getStringFromIndexWithDelim(arg,"|", 1, tempbuf, sizeof(tempbuf)) == FALSE) return; strcpy(randquestion,tempbuf); if(getStringFromIndexWithDelim(arg,"|", 2, tempbuf, sizeof(tempbuf)) == FALSE) return; strcpy(randrightanswer,tempbuf); sprintf(arg,"%d|%s",havepetindex,randrightanswer); CHAR_setWorkChar(charaindex, CHAR_WORKDROPMM, arg); sprintf(buf,"%s:",randquestion); lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGEANDLINEINPUT, WINDOW_BUTTONTYPE_OK, CHAR_WINDOWTYPE_RAND3_DROPMM, -1, buf); }else{ // sprintf(arg,"%s",sasql_rand_buf()); // if(strcmp(arg,"err")==0) return; char tempbuf[64]; char randquestion[64]; char randrightanswer[64]; char randwronganswer1[64]; char randwronganswer2[64]; char randwronganswer3[64]; char randwronganswer4[64]; // if(getStringFromIndexWithDelim(arg,"|", 1, tempbuf, sizeof(tempbuf)) == FALSE) // return; // strcpy(randquestion,tempbuf); // if(getStringFromIndexWithDelim(arg,"|", 2, tempbuf, sizeof(tempbuf)) == FALSE) // return; // strcpy(randrightanswer,tempbuf); // if(getStringFromIndexWithDelim(arg,"|", 3, tempbuf, sizeof(tempbuf)) == FALSE) // return; // strcpy(randwronganswer1,tempbuf); // if(getStringFromIndexWithDelim(arg,"|", 4, tempbuf, sizeof(tempbuf)) == FALSE) // return; // strcpy(randwronganswer2,tempbuf); // if(getStringFromIndexWithDelim(arg,"|", 5, tempbuf, sizeof(tempbuf)) == FALSE) // return; // strcpy(randwronganswer3,tempbuf); // if(getStringFromIndexWithDelim(arg,"|", 6, tempbuf, sizeof(tempbuf)) == FALSE) // return; // strcpy(randwronganswer4,tempbuf); memset(tempbuf, 0, sizeof(tempbuf)); memset(randquestion, 0, sizeof(randquestion)); memset(randrightanswer, 0, sizeof(randrightanswer)); memset(randwronganswer1, 0, sizeof(randwronganswer1)); memset(randwronganswer2, 0, sizeof(randwronganswer2)); memset(randwronganswer3, 0, sizeof(randwronganswer3)); memset(randwronganswer4, 0, sizeof(randwronganswer4)); if(RAND(1,100)<=75){ char randtmpbuf[4][10]; sprintf(randtmpbuf[0],"%s",hanzibuf[RAND(1,5000)-1]); sprintf(randtmpbuf[1],"%s",hanzibuf[RAND(1,5000)-1]); sprintf(randtmpbuf[2],"%s",hanzibuf[RAND(1,5000)-1]); sprintf(randtmpbuf[3],"%s",hanzibuf[RAND(1,5000)-1]); sprintf(randquestion,"%s",str_hanzi_ganrao(randtmpbuf[0],randtmpbuf[1],randtmpbuf[2],randtmpbuf[3],0,0,0,0,0,0)); strcat(randquestion,"(请找出相同词组)"); int newrand1 = RAND(1,100)-1; int newrand2 = RAND(1,100)-1; int newrand3 = RAND(1,100)-1; int newrand4 = RAND(1,100)-1; int newrand5 = RAND(1,100)-1; sprintf(randrightanswer,"%s",str_hanzi_ganrao(randtmpbuf[0],randtmpbuf[1],randtmpbuf[2],randtmpbuf[3],1,newrand1,newrand2,newrand3,newrand4,newrand5)); sprintf(randwronganswer1,"%s",str_hanzi_ganrao(randtmpbuf[0],randtmpbuf[1],randtmpbuf[3],randtmpbuf[2],1,newrand1,newrand2,newrand3,newrand4,newrand5)); sprintf(randwronganswer2,"%s",str_hanzi_ganrao(randtmpbuf[3],randtmpbuf[1],randtmpbuf[2],randtmpbuf[0],1,newrand1,newrand2,newrand3,newrand4,newrand5)); sprintf(randwronganswer3,"%s",str_hanzi_ganrao(randtmpbuf[1],randtmpbuf[0],randtmpbuf[2],randtmpbuf[3],1,newrand1,newrand2,newrand3,newrand4,newrand5)); sprintf(randwronganswer4,"%s",str_hanzi_ganrao(randtmpbuf[2],randtmpbuf[3],randtmpbuf[0],randtmpbuf[1],1,newrand1,newrand2,newrand3,newrand4,newrand5)); }else{ int tii; char timubuf[36][5] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9"}; for(tii=0;tii<5;tii++){ if(tii==0) strcpy(tempbuf,timubuf[RAND(1,36)-1]); else{ int timunum = 0; while(1){ timunum = RAND(1,36)-1; if(strstr(tempbuf,timubuf[timunum])==NULL) break; } strcat(tempbuf,timubuf[timunum]); } } sprintf(randwronganswer1,"[%c%c%c%c%c]",tempbuf[0],tempbuf[2],tempbuf[1],tempbuf[3],tempbuf[4]); sprintf(randwronganswer2,"[%c%c%c%c%c]",tempbuf[0],tempbuf[1],tempbuf[4],tempbuf[2],tempbuf[3]); sprintf(randwronganswer3,"[%c%c%c%c%c]",tempbuf[4],tempbuf[1],tempbuf[2],tempbuf[0],tempbuf[3]); sprintf(randwronganswer4,"[%c%c%c%c%c]",tempbuf[1],tempbuf[0],tempbuf[2],tempbuf[3],tempbuf[4]); sprintf(randquestion,"[%s](请找出相同词组)",tempbuf); sprintf(randrightanswer,"[%s]",tempbuf); char* randstr = NULL; randstr = str_ganrao(randquestion); strcpy(randquestion,randstr); randstr = str_ganraoan(randrightanswer); strcpy(randrightanswer,randstr); randstr = str_ganraoan(randwronganswer1); strcpy(randwronganswer1,randstr); randstr = str_ganraoan(randwronganswer2); strcpy(randwronganswer2,randstr); randstr = str_ganraoan(randwronganswer3); strcpy(randwronganswer3,randstr); randstr = str_ganraoan(randwronganswer4); strcpy(randwronganswer4,randstr); } int n; int randnum1; m=1; char tempret[5][64]; randnum1 = RAND(1,5); int rightnum,wrongnum1,wrongnum2,wrongnum3,wrongnum4; rightnum = RAND(getRandMin(),getRandMax()); wrongnum1 = RAND(getRandMin(),getRandMax()); wrongnum2 = RAND(getRandMin(),getRandMax()); wrongnum3 = RAND(getRandMin(),getRandMax()); wrongnum4 = RAND(getRandMin(),getRandMax()); //char *tempbuff2 = "ABCDE"; int qianhounum = RAND(1,100); for(n=1;n<=5;n++){ if(n==randnum1){ if(qianhounum<=50) sprintf(tempret[n-1],"选项( %d %s )",rightnum,randrightanswer); else sprintf(tempret[n-1],"选项( %s %d )",randrightanswer,rightnum); }else{ if(m==1){ if(qianhounum<=50) sprintf(tempret[n-1],"选项( %d %s )",wrongnum1,randwronganswer1); else sprintf(tempret[n-1],"选项( %s %d )",randwronganswer1,wrongnum1); m = 2; }else if(m==2){ if(qianhounum<=50) sprintf(tempret[n-1],"选项( %d %s )",wrongnum2,randwronganswer2); else sprintf(tempret[n-1],"选项( %s %d )",randwronganswer2,wrongnum2); m = 3; }else if(m==3){ if(qianhounum<=50) sprintf(tempret[n-1],"选项( %d %s )",wrongnum3,randwronganswer3); else sprintf(tempret[n-1],"选项( %s %d )",randwronganswer3,wrongnum3); m = 4; }else if(m==4){ if(qianhounum<=50) sprintf(tempret[n-1],"选项( %d %s )",wrongnum4,randwronganswer4); else sprintf(tempret[n-1],"选项( %s %d )",randwronganswer4,wrongnum4); m = 5; } } } int windowtype = 0; int selecttype = RAND(1,100); if(selecttype<=30){ sprintf(arg,"%d|%d|%d",havepetindex,rightnum); windowtype = WINDOW_MESSAGETYPE_MESSAGEANDLINEINPUT; }else{ sprintf(arg,"%d|%d|%d",havepetindex,randnum1); windowtype = WINDOW_MESSAGETYPE_SELECT; } CHAR_setWorkChar(charaindex, CHAR_WORKDROPMM, arg); sprintf(buf,"%s\n%s\n%s\n%s\n%s\n%s\n输入正确答案括号内的5位数字或者点选答案",randquestion,tempret[0],tempret[1],tempret[2],tempret[3],tempret[4]); lssproto_WN_send( fd, windowtype, WINDOW_BUTTONTYPE_OK, CHAR_WINDOWTYPE_RAND4_DROPMM, -1, buf); CHAR_setWorkInt(charaindex,CHAR_WORKLUANPCINT,0); } if(randwrong<=0){ sprintf(tempbuff,"1-%d-%d",randtype,timep); }else{ sprintf(tempbuff,"%d-%d-%d",randwrong*3,randtype,timep); } CHAR_setChar(charaindex,CHAR_RANDTYPE,tempbuff); return 0; } } #endif if( _PET_dropPet( charaindex, havepetindex, -1,-1,-1) == TRUE ){ char tmpbuf[256]; sprintf(tmpbuf,"丢弃 %s (宠物消失时间%d秒)。",CHAR_getChar( petindex, CHAR_NAME),getPetdeletetime()); CHAR_talkToCli( charaindex, -1, tmpbuf, CHAR_COLORYELLOW ); LogPet( CHAR_getChar( charaindex, CHAR_NAME ), /* 平乓仿 */ CHAR_getChar( charaindex, CHAR_CDKEY ), CHAR_getChar( petindex, CHAR_NAME), CHAR_getInt( petindex, CHAR_LV), "Drop(丢宠)", CHAR_getInt( charaindex,CHAR_FLOOR), CHAR_getInt( charaindex,CHAR_X ), CHAR_getInt( charaindex,CHAR_Y ), CHAR_getChar( petindex, CHAR_UNIQUECODE) // shan 2001/12/14 ); return 1; } return 0; } int PET_dropPetFLXY( int charaindex, int havepetindex, int fl, int x, int y) { return _PET_dropPet( charaindex, havepetindex, fl,x,y); } /*------------------------------------------------------------ * ペット用のイベント関数をセットしてやる ------------------------------------------------------------*/ int PET_initCharOneArray( Char *ch) { int i; char *tmp[CHAR_FUNCTABLENUM] = { "", /* CHAR_INITFUNC */ "", /* CHAR_WALKPREFUNC */ "", /* CHAR_WALKPOSTFUNC */ "", /* CHAR_PREOVERFUNC */ "", /* CHAR_PREOVERFUNC */ "core_PetWatch", /* CHAR_WATCHFUNC */ "", /* CHAR_LOOPFUNC */ "", /* CHAR_DYINGFUNC */ "core_PetTalk", /* CHAR_TALKEDFUNC */ "", /* CHAR_PREATTACKEDFUNC */ "", /* CHAR_POSTATTACKEDFUNC */ "", /* CHAR_OFFFUNC */ "", /* CHAR_LOOKEDFUNC */ "", /* CHAR_ITEMPUTFUNC */ "", /* CHAR_SPECIALTALKEDFUNC */ "", /* CHAR_WINDOWTALKEDFUNC */ #ifdef _USER_CHARLOOPS "", // CHAR_LOOPFUNCTEMP1, "", // CHAR_LOOPFUNCTEMP2, "", //CHAR_BATTLEPROPERTY, #endif }; for( i = 0; i < CHAR_FUNCTABLENUM; i ++ ) { strcpysafe( ch->charfunctable[i].string, sizeof( ch->charfunctable[i]), tmp[i]); } if( ch->data[CHAR_MAILMODE] != CHAR_PETMAIL_NONE ) { strcpysafe( ch->charfunctable[CHAR_LOOPFUNC].string, sizeof( ch->charfunctable[CHAR_LOOPFUNC]), "PETMAIL_Loop"); } #ifdef _USER_CHARLOOPS if( ch->data[CHAR_FUSIONBEIT] == 1 && ch->data[CHAR_FUSIONRAISE] > 0 ) { //andy_log // print("init CHAR_LOOPFUNCTEMP1:%s \n", "PET_CheckIncubateLoop"); strcpysafe( ch->charfunctable[CHAR_LOOPFUNCTEMP1].string, sizeof( ch->charfunctable[CHAR_LOOPFUNCTEMP1]), "PET_CheckIncubateLoop"); ch->data[CHAR_LOOPINTERVAL] = 60000; ch->functable[CHAR_LOOPFUNCTEMP1] = getFunctionPointerFromName( "PET_CheckIncubateLoop"); // CHAR_constructFunctable( petindex); } #endif return( CHAR_initCharOneArray( ch)); } int PET_createPetFromCharaIndex( int charaindex, int enemyindex) { Char CharNew; int newindex; int havepetelement; char szPet[128]; int i; havepetelement = CHAR_getCharPetElement( charaindex); if( havepetelement < 0 ) return -1; memset( &CharNew, 0, sizeof( Char ) ); if( !CHAR_getDefaultChar( &CharNew,31010 ) )return -1; CharNew.data[CHAR_BASEBASEIMAGENUMBER] = CharNew.data[CHAR_BASEIMAGENUMBER] = CHAR_getInt(enemyindex,CHAR_BASEIMAGENUMBER); CharNew.data[CHAR_WHICHTYPE] = CHAR_TYPEPET; CharNew.data[CHAR_HP] = CHAR_getInt(enemyindex, CHAR_HP); CharNew.data[CHAR_MP] = CHAR_getInt(enemyindex, CHAR_MP); CharNew.data[CHAR_MAXMP] = CHAR_getInt(enemyindex, CHAR_MAXMP); CharNew.data[CHAR_VITAL] = CHAR_getInt(enemyindex, CHAR_VITAL); CharNew.data[CHAR_STR] = CHAR_getInt(enemyindex, CHAR_STR); CharNew.data[CHAR_TOUGH] = CHAR_getInt(enemyindex, CHAR_TOUGH); CharNew.data[CHAR_DEX] = CHAR_getInt(enemyindex, CHAR_DEX); CharNew.data[CHAR_LUCK] = CHAR_getInt(enemyindex, CHAR_LUCK); CharNew.data[CHAR_FIREAT] = CHAR_getInt(enemyindex, CHAR_FIREAT); CharNew.data[CHAR_WATERAT] = CHAR_getInt(enemyindex, CHAR_WATERAT); CharNew.data[CHAR_EARTHAT] = CHAR_getInt(enemyindex, CHAR_EARTHAT); CharNew.data[CHAR_WINDAT] = CHAR_getInt(enemyindex, CHAR_WINDAT); //CharNew.data[CHAR_EXP] = CHAR_getInt(enemyindex, CHAR_EXP); CharNew.data[CHAR_SLOT] = CHAR_getInt(enemyindex, CHAR_SLOT); CharNew.data[CHAR_MODAI] = CHAR_getInt(enemyindex, CHAR_MODAI); CharNew.data[CHAR_LV] = CHAR_getInt(enemyindex, CHAR_LV); CharNew.data[CHAR_POISON] = CHAR_getInt(enemyindex, CHAR_POISON); CharNew.data[CHAR_PARALYSIS]= CHAR_getInt(enemyindex, CHAR_PARALYSIS); CharNew.data[CHAR_SLEEP] = CHAR_getInt(enemyindex, CHAR_SLEEP); CharNew.data[CHAR_STONE] = CHAR_getInt(enemyindex, CHAR_STONE); CharNew.data[CHAR_DRUNK] = CHAR_getInt(enemyindex, CHAR_DRUNK); CharNew.data[CHAR_CONFUSION]= CHAR_getInt(enemyindex, CHAR_CONFUSION); CharNew.data[CHAR_RARE] = CHAR_getInt(enemyindex, CHAR_RARE); CharNew.data[CHAR_PETRANK] = CHAR_getInt(enemyindex, CHAR_PETRANK); CharNew.data[CHAR_PETID] = CHAR_getInt(enemyindex, CHAR_PETID); CharNew.data[CHAR_CRITIAL] = CHAR_getInt(enemyindex, CHAR_CRITIAL); CharNew.data[CHAR_COUNTER] = CHAR_getInt(enemyindex, CHAR_COUNTER); CharNew.data[CHAR_PETMAILEFFECT] = RAND(0, PETMAIL_EFFECTMAX); CharNew.data[CHAR_PETENEMYID] = CHAR_getInt(enemyindex, CHAR_PETENEMYID); for( i = 0; i < CHAR_MAXPETSKILLHAVE; i ++ ) { CharNew.unionTable.indexOfPetskill[i] = CHAR_getPetSkill( enemyindex, i); } CharNew.data[CHAR_ALLOCPOINT] = CHAR_getInt(enemyindex, CHAR_ALLOCPOINT); strcpysafe( CharNew.string[CHAR_NAME].string, sizeof(CharNew.string[CHAR_NAME].string), CHAR_getChar( enemyindex, CHAR_NAME) ); newindex = PET_initCharOneArray( &CharNew ); #ifdef _CAX_LVTISHI if (CharNew.data[CHAR_LV] == 1){//如果捕捉到的宠物是1级 int namelen=strlen(CHAR_getChar(newindex, CHAR_NAME));//获得宠物名称的长度 char petname[namelen-3];//因为要去掉宝宝这四个字符,所以重新设置名称的话,直接取消掉后面的四个字符 snprintf( petname, sizeof( petname),"%s",CHAR_getChar( newindex, CHAR_NAME)); CHAR_setChar( newindex, CHAR_NAME, petname); } #endif if( newindex < 0 ){ return -1; } CHAR_setMaxExpFromLevel( newindex, CHAR_getInt( enemyindex, CHAR_LV )); CHAR_complianceParameter( newindex ); CHAR_setWorkInt( newindex, CHAR_WORKPLAYERINDEX, charaindex); CHAR_setCharPet( charaindex, havepetelement, newindex); CHAR_setChar( newindex, CHAR_OWNERCDKEY, CHAR_getChar( charaindex, CHAR_CDKEY)); CHAR_setChar( newindex, CHAR_OWNERCHARANAME, CHAR_getChar( charaindex, CHAR_NAME)); snprintf( szPet, sizeof( szPet ), "K%d", havepetelement ); CHAR_sendStatusString( charaindex, szPet ); snprintf( szPet, sizeof( szPet ), "W%d", havepetelement ); CHAR_sendStatusString( charaindex, szPet ); return newindex; } BOOL PET_SelectBattleEntryPet( int charaindex, int petarray) { int pindex; /* 戦闘中は除く (ラグでこれに引っかかる可能性あり) */ if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return FALSE; /* -1の場合は,-1にしてセットして終わり */ if( petarray == -1 ) { CHAR_setInt( charaindex, CHAR_DEFAULTPET, -1 ); return TRUE; } if( !CHAR_CHECKPETINDEX( petarray)) return FALSE; pindex = CHAR_getCharPet( charaindex, petarray ); if( !CHAR_CHECKINDEX( pindex)) return FALSE; if( CHAR_getFlg( pindex, CHAR_ISDIE )) return FALSE; #ifdef _RIDEBUG //判断是否为骑宠 if(CHAR_getInt( charaindex, CHAR_RIDEPET) == petarray) return FALSE; #endif CHAR_setInt( charaindex, CHAR_DEFAULTPET, petarray ); return TRUE; } // Robin 0707 petFollow #if 1 int PET_dropPetFollow( int charaindex, int havepetindex, int tofl, int tox, int toy) { char szPet[128]; int dirx[9],diry[9]; int i; int objindex=-1; int floor,x,y; int petindex; if( CHAR_getWorkInt( charaindex, CHAR_WORKBATTLEMODE) != BATTLE_CHARMODE_NONE) return FALSE; petindex = CHAR_getCharPet(charaindex,havepetindex); if( petindex == -1 ) return FALSE; if( !CHAR_CHECKINDEX( charaindex ) )return FALSE; if( CHAR_CHECKINDEX( petindex) == FALSE ) return FALSE; if (CHAR_getInt(petindex, CHAR_PETFAMILY) == 1){ CHAR_talkToCli(charaindex, -1, "家族守护兽无法丢出!", CHAR_COLORYELLOW); return FALSE; } if (CHAR_getInt(charaindex, CHAR_RIDEPET) == havepetindex){ CHAR_talkToCli(charaindex, -1, "骑乘中的宠物无法跟随!", CHAR_COLORYELLOW); return FALSE; } if( tofl == -1 ) { for( i = 0 ; i < 7 ; i ++ ){ dirx[i+2] = CHAR_getDX(CHAR_getInt(charaindex,CHAR_DIR) + i+1); diry[i+2] = CHAR_getDY(CHAR_getInt(charaindex,CHAR_DIR) + i+1); } dirx[0] = CHAR_getDX(CHAR_getInt(charaindex,CHAR_DIR)); diry[0] = CHAR_getDY(CHAR_getInt(charaindex,CHAR_DIR)); dirx[1] = 0; diry[1] = 0; floor = CHAR_getInt( charaindex,CHAR_FLOOR ); for( i = 0 ; i < 9 ; i ++ ){ int x=CHAR_getInt(charaindex,CHAR_X)+dirx[i]; int y=CHAR_getInt(charaindex,CHAR_Y)+diry[i]; if( PET_isPutPoint( floor, x, y ) == TRUE ) { break; } } if( i == 9 ) i = 1; x=CHAR_getInt(charaindex,CHAR_X)+dirx[i]; y=CHAR_getInt(charaindex,CHAR_Y)+diry[i]; } else { if( MAP_walkAbleFromPoint( tofl,tox,toy, FALSE ) == FALSE ) { print( "map walkable err %s:%d\n", __FILE__,__LINE__); return FALSE; } floor = tofl; x = tox; y = toy; } objindex = PET_dropPetAbsolute( petindex,floor,x,y, FALSE ); if( objindex == -1 ) return FALSE; CHAR_setWorkInt( petindex,CHAR_WORKOBJINDEX,objindex ); CHAR_setCharPet( charaindex, havepetindex, -1); CHAR_setInt( petindex, CHAR_FLOOR, floor); CHAR_setInt( petindex, CHAR_X, x); CHAR_setInt( petindex, CHAR_Y, y); CHAR_setInt( petindex, CHAR_PUTPETTIME, NowTime.tv_sec); if( havepetindex == CHAR_getInt( charaindex, CHAR_DEFAULTPET)) { int fd; CHAR_setInt( charaindex, CHAR_DEFAULTPET, -1); fd = getfdFromCharaIndex( charaindex); lssproto_KS_send( fd, havepetindex, 0); } CHAR_sendCToArroundCharacter( objindex); if( CHAR_getInt( charaindex, CHAR_WHICHTYPE) == CHAR_TYPEPLAYER) { #ifdef _PET_ITEM CHAR_sendPetItemData( charaindex, havepetindex); #endif snprintf( szPet, sizeof( szPet ), "K%d", havepetindex ); CHAR_sendStatusString( charaindex, szPet ); } CHAR_setWorkInt( charaindex, CHAR_WORKPETFOLLOW, petindex); CHAR_setWorkInt( petindex, CHAR_WORKPETFOLLOWMODE, CHAR_PETFOLLOW_NOW); CHAR_setWorkInt( petindex, CHAR_WORKPETFOLLOWCOUNT, 0); CHAR_setInt( petindex, CHAR_PUTPETTIME, (int)(NowTime.tv_sec)); CHAR_setInt( petindex, CHAR_WORKPLAYERINDEX, charaindex); LogPet( CHAR_getChar( charaindex, CHAR_NAME ), CHAR_getChar( charaindex, CHAR_CDKEY ), CHAR_getChar( petindex, CHAR_NAME), CHAR_getInt( petindex, CHAR_LV), "Follow(溜宠)", CHAR_getInt( charaindex,CHAR_FLOOR), CHAR_getInt( charaindex,CHAR_X ), CHAR_getInt( charaindex,CHAR_Y ), CHAR_getChar( petindex, CHAR_UNIQUECODE) ); return 1; } #endif BOOL PET_getBaseForAllocpoint( int toindex, int *work) { int LevelUpPoint=0; if( CHAR_getInt( toindex, CHAR_WHICHTYPE) != CHAR_TYPEPET) return FALSE; LevelUpPoint = CHAR_getInt( toindex, CHAR_ALLOCPOINT ); work[3] =(( LevelUpPoint >> 24 ) & 0xFF); work[0] = (( LevelUpPoint >> 16 ) & 0xFF); work[1] = (( LevelUpPoint >> 8 ) & 0xFF); work[2] = (( LevelUpPoint >> 0 ) & 0xFF); return TRUE; } void PET_showEditBaseMsg( int charaindex, int toindex, int itemindex, int *work) { int i, maxnums = 6000; char buf1[256]; char buf2[][32]={"腕力成长率","耐久力成长率","速度成长率","体力成长率","能力"}; char buf3[][32]={"大幅提高","略为提高","略为减少"}; if( CHAR_getInt( toindex, CHAR_WHICHTYPE) != CHAR_TYPEPET) return; memset( buf1, 0, sizeof( buf1)); for( i=0; i<4; i++) { int type = ITEM_getInt( itemindex, (ITEM_MODIFYATTACK + i)); // print(" 喂[%d]%d+%d ", i, work[i], type); work[i] += type; strcpy( buf1,"\0"); if( work[i] > maxnums ) { sprintf(buf1,"%s 已经达到最高了。", buf2[i]); work[i] = maxnums; }else if( work[i] < 0 ) { sprintf(buf1,"%s 已经为零了。", buf2[i]); work[i] = 0; }else { if( type > 0 ) { if( type > 2 ) { sprintf(buf1,"%s %s %s", buf2[i], buf3[0], "。"); }else { sprintf(buf1,"%s %s %s", buf2[i], buf3[1], "。"); } }else if( type < 0 ){ sprintf(buf1,"%s %s %s", buf2[i], buf3[2], "。"); } } if( strcmp( buf1, "\0")) { CHAR_talkToCli( charaindex, toindex, buf1, CHAR_COLORYELLOW); } } } #ifdef _PET_EVOLUTION BOOL PET_getBaseAndSkill( int charaindex, int baseindex, int *base, int *skill, int flg) { int i; if( !CHAR_CHECKINDEX( baseindex)) return FALSE; if( base != NULL ) { int levelup = CHAR_getInt( baseindex, CHAR_ALLOCPOINT); base[0] = ((levelup>>24) & 0xFF); base[1] = ((levelup>>16) & 0xFF); base[2] = ((levelup>> 8) & 0xFF); base[3] = ((levelup>> 0) & 0xFF); } if( skill != NULL ) { for( i=0; i= CHAR_MAXPETHAVE){ return FALSE; }else { char szPet[256]; char msgbuf[256]; CHAR_setCharPet( charaindex, i, -1); snprintf( szPet, sizeof( szPet ), "K%d", i); CHAR_sendStatusString( charaindex, szPet ); snprintf( msgbuf,sizeof( msgbuf), "交出%s。", CHAR_getChar( petindex, CHAR_NAME)); CHAR_talkToCli( charaindex, -1, msgbuf, CHAR_COLORYELLOW); CHAR_endCharOneArray( petindex ); } return TRUE; }