UID192389
帖子
精華
主題
積分26666
現金
積極性
威望
違規
熱心
推廣次數
閱讀權限30
註冊時間2009-8-29
在線時間 小時
最後登錄1970-1-1
TA的每日心情 | 怒 2017-1-18 12:17 AM |
---|
簽到天數: 512 天 連續簽到: 1 天 [LV.9]以壇為家II
|
本帖最後由 grass0916 於 2013-8-3 01:19 AM 編輯
腳本指令 (script command) : mirrormap
指令作用
使用方式- mirrormap(<string>, <int>) ; // 要映射的地圖名稱, 要映射地圖張數。
複製代碼
路徑 : \src\map\script.c
找到 "struct script_function buildin_func[] = {" 此行, 於後一行加上- BUILDIN_DEF(mirrormap,"si"),
複製代碼
路徑 : \src\map\script.c
找到 "// NPC interaction" 此行, 於後一行加上- BUILDIN_FUNC( mirrormap ) {
- const char * ori_Map = script_getstr( st, 2 ) ;
- int mirror_count = script_getnum( st, 3 ) ;
- int ori_m = map_mapname2mapid( ori_Map ) ;
- int mir_m, i ;
- size_t size;
- for ( i = 1 ; i <= mirror_count ; i++ ) {
- mir_m = map_num++ ;
- // Copy the map
- memcpy( &map[mir_m], &map[ori_m], sizeof( struct map_data ) ) ;
- // Alter the name & set map
- snprintf( map[mir_m].name, sizeof( map[mir_m].name ), "%.3d#%s", i, ori_Map ) ;
- map[mir_m].name[MAP_NAME_LENGTH-1] = '\0' ;
- map[mir_m].m = mir_m ;
- map[mir_m].users = 0 ;
- size = map[mir_m].bxs * map[mir_m].bys * sizeof( struct block_list* ) ;
- map[mir_m].block = ( struct block_list ** )aCalloc( 1, size ) ;
- map[mir_m].block_mob = ( struct block_list ** )aCalloc( 1, size ) ;
- map[mir_m].index = mapindex_addmap( -1, map[mir_m].name ) ;
- map[mir_m].channel = NULL ;
- // Add this map to MapDB
- map_addmap2db( &map[mir_m] ) ;
- ShowInfo( "[Mirror map] : %s(%s) had been added.\n", ori_Map, map[mir_m].name ) ;
- }
- return 0 ;
- }
複製代碼
測試用腳本- pasture,24,26,4 script Man 56,{
- set .@count, 5 ;
- mirrormap( "pasture", .@count ) ;
- npctalk "The map "pasture" had been mirrored, those name are "001#pasture", "002#pasture"..." ;
- }
複製代碼 測試結果, 無執行該指令時, 無法進入指定地圖。
執行指令結束, 可以成功傳送到該映射地圖, 其地圖設定與母地圖完全相同 (格子點的可走與否, 景觀物件 ... 等)。
|
評分
-
查看全部評分
|