OK論壇

 找回密碼
 註冊
查看: 3874|回復: 4

[教學] 取得魔物GID

[複製鏈接]
  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

    發表於 2009-10-4 11:25:38 | 顯示全部樓層 |閱讀模式
    本帖最後由 Alopex 於 2011-6-30 05:08 PM 編輯

    src\map\script.c
    搜尋:

    1. BUILDIN_FUNC(monster)
    2. {
    3. const char* mapn  = script_getstr(st,2);
    4. int x             = script_getnum(st,3);
    5. int y             = script_getnum(st,4);
    6. const char* str   = script_getstr(st,5);
    7. int class_        = script_getnum(st,6);
    8. int amount        = script_getnum(st,7);
    9. const char* event = "";
    10. struct map_session_data* sd;
    11. int m;
    12. if( script_hasdata(st,8) )
    13. {
    14.   event = script_getstr(st,8);
    15.   check_event(st, event);
    16. }
    17. if (class_ >= 0 && !mobdb_checkid(class_)) {
    18.   ShowWarning("buildin_monster: Attempted to spawn non-existing monster class %d\n", class_);
    19.   return 1;
    20. }
    21. sd = map_id2sd(st->rid);
    22. if( sd && strcmp(mapn,"this") == 0 )
    23.   m = sd->bl.m;
    24. else
    25. {
    26.   m = map_mapname2mapid(mapn);
    27.   if( map[m].flag.src4instance && st->instance_id )
    28.   { // Try to redirect to the instance map, not the src map
    29.    if( (m = instance_mapid2imapid(m, st->instance_id)) < 0 )
    30.    {
    31.     ShowError("buildin_monster: Trying to spawn monster (%d) on instance map (%s) without instance attached.\n", class_, mapn);
    32.     return 1;
    33.    }
    34.   }
    35. }
    36. mob_once_spawn(sd,m,x,y,str,class_,amount,event);
    37. return 0;
    38. }
    複製代碼


    改成

    1. BUILDIN_FUNC(monster)
    2. {int id;
    3. const char* mapn  = script_getstr(st,2);
    4. int x             = script_getnum(st,3);
    5. int y             = script_getnum(st,4);
    6. const char* str   = script_getstr(st,5);
    7. int class_        = script_getnum(st,6);
    8. int amount        = script_getnum(st,7);
    9. const char* event = "";
    10. struct map_session_data* sd;
    11. int m;
    12. if( script_hasdata(st,8) )
    13. {
    14.   event = script_getstr(st,8);
    15.   check_event(st, event);
    16. }
    17. if (class_ >= 0 && !mobdb_checkid(class_)) {
    18.   ShowWarning("buildin_monster: Attempted to spawn non-existing monster class %d\n", class_);
    19.   return 1;
    20. }
    21. sd = map_id2sd(st->rid);
    22. if( sd && strcmp(mapn,"this") == 0 )
    23.   m = sd->bl.m;
    24. else
    25. {
    26.   m = map_mapname2mapid(mapn);
    27.   if( map[m].flag.src4instance && st->instance_id )
    28.   { // Try to redirect to the instance map, not the src map
    29.    if( (m = instance_mapid2imapid(m, st->instance_id)) < 0 )
    30.    {
    31.     ShowError("buildin_monster: Trying to spawn monster (%d) on instance map (%s) without instance attached.\n", class_, mapn);
    32.     return 1;
    33.    }
    34.   }
    35. }
    36. id = mob_once_spawn(sd,m,x,y,str,class_,amount,event);
    37.         script_pushint(st,id);
    38. return 0;
    39. }

    複製代碼


    使用方法:set .GID,monster "<map name>",<x>,<y>,"<name to show>",<mob id>,<amount>;
    .GID就是魔物GID.

    評分

    參與人數 1積分 +10 收起 理由
    pan00017 + 10 我很贊同

    查看全部評分

    回復

    使用道具 舉報

  • TA的每日心情
    慵懶
    2017-2-15 05:18 PM
  • 簽到天數: 476 天

    連續簽到: 1 天

    [LV.9]以壇為家II

    發表於 2011-1-23 10:17:36 | 顯示全部樓層
    那也得召&#21796;出怪&#26469;了才能取得GID.
    也&#27809;&#21150;法&#33719;得已&#32463;存在的怪物的GID...
    果然&#36824;是要&#20889; OnPCAttackEvent
    或者&#20889; OnNPCHitedEvent
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    無聊
    2014-2-25 05:17 PM
  • 簽到天數: 126 天

    連續簽到: 1 天

    [LV.7]常住居民III

    發表於 2011-6-29 21:10:14 | 顯示全部樓層
    可是改了會出現
    d:\檔\src\map\script.c(7971) : error C2065: 'id' : 未宣告的識別項
    d:\檔\src\map\script.c(7972) : error C2065: 'id' : 未宣告的識別項
    這樣的錯誤
    這是怎樣子的錯誤呢?
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    慵懶
    2013-7-11 12:09 AM
  • 簽到天數: 118 天

    連續簽到: 1 天

    [LV.6]常住居民II

     樓主| 發表於 2011-6-30 17:12:07 | 顯示全部樓層
    回復 3# 黑俏

    int id;
    回復 支持 反對

    使用道具 舉報

  • TA的每日心情
    難過
    2018-1-13 10:01 PM
  • 簽到天數: 232 天

    連續簽到: 1 天

    [LV.7]常住居民III

    發表於 2014-6-11 00:51:21 | 顯示全部樓層
    請問大大的amount 是只輸入數量嗎..

    那如果  大於1的話   變量.GID 是否適用陣列下去記錄..


    感謝大大
    回復 支持 反對

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 註冊

    本版積分規則

    Archiver|手機版|小黑屋|OK討論區

    GMT+8, 2025-6-15 04:01 PM , Processed in 0.074978 second(s), 20 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回復 返回頂部 返回列表