石器时代角色名字修改道具开发教程

  • A+
所属分类:石器源码
在游戏中如果不喜欢现在的名字了,想换个,那就用改名卡吧!找GM是很麻烦的一件事情,也不方便,为了更好的方便大家,弄个改名卡道具修改下游戏角色名称是不是非常方便啊。
  主要需要修改一下6个文件,修改之后在制作下改名卡道具就可以了,使用下。是不是管用了呢。
char.c

#ifdef _SET_CHARNAME
    else if( seqno == CHAR_WINDOWTYPE_SET_CHARNAME ){
     int i;
     char buf[256];
     int itemindex = -1;
     int id,len=-1;
     int fd = getfdFromCharaIndex(charaindex);
         if (fd == -1) return;
     if (strlen(data) < 1 || strlen(data)>16)
      {
              lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
        WINDOW_BUTTONTYPE_OK,
        -1,
        -1,
        makeEscapeString( "              『警       告』\n抱歉!您要修改的角色名称长度不符,请确定在1-16字符内。", buf, sizeof(buf)));
       return;
      }
      for(i=0;i<strlen(data);i++)
      {
       if(data[i] =='\' || data[i] == '|')
        {
       len = 1;
       break;
        }
      }
      if (len == 1)
       {
        lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
        WINDOW_BUTTONTYPE_OK,
        -1,
        -1,
       makeEscapeString( "              『警       告』\n抱歉!您要修改的角色名称中有不符合符号存在,请确认并修改,谢谢合作。", buf, sizeof(buf)));
        return;
       }
     if(CHAR_getInt(charaindex,CHAR_FMINDEX) != -1){
       lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
        WINDOW_BUTTONTYPE_OK,
        -1,
        -1,
        makeEscapeString( "              『警       告』\n抱歉!修改角色名称必须先脱离家族。", buf, sizeof(buf)));
   return;
  }
     CHAR_setChar(charaindex, CHAR_NAME, data);
     for( i = CHAR_STARTITEMARRAY ; i < CHAR_MAXITEMHAVE ; i++ ) {
     itemindex = CHAR_getItemIndex( charaindex , i );
     id=ITEM_getInt(itemindex ,ITEM_ID );
     if (id == 27019)
      {
       CHAR_DelItem( charaindex, i);
       break;
      }
     }
            lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
        WINDOW_BUTTONTYPE_OK,
        -1,
        -1,
        makeEscapeString( "              『报       告』\n系统已经为您重新赋予了新的角色名称", buf, sizeof(buf)));
     CHAR_send_P_StatusString(  charaindex, CHAR_P_STRING_NAME);
    }
#endif

function.c
1
2
3	#ifdef _SET_CHARNAME
  { {"ITEM_SetCharname"}, ITEM_SetCharname, 0 },
#endif

item_event.c
#ifdef _SET_CHARNAME
void ITEM_SetCharname( int charaindex, int toindex, int haveitemindex)
{
  char buf[256];
  int fd = getfdFromCharaIndex( charaindex);
  if( fd == - 1 ) return;

  lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGEANDLINEINPUT, 
      WINDOW_BUTTONTYPE_OKCANCEL,
      CHAR_WINDOWTYPE_SET_CHARNAME,
      -1,
      makeEscapeString( "请输入您要修改的角色名称\n", buf, sizeof(buf)));
}
#endif

char.h

#ifdef _SET_CHARNAME
CHAR_WINDOWTYPE_SET_CHARNAME,
#endif

item_event.h
#ifdef _SET_CHARNAME
void ITEM_SetCharname( int charaindex, int toindex, int haveitemindex);
#endif

version.h
#define _SET_CHARNAME            // 人物名称修改道具
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

您必须才能发表评论!