불홍드라이버 REF2
작성일23-02-10 21:32
조회 6,791
댓글 4
본문
{buildin_deletenpc, "deletenpc", "ii"},
{buildin_isequip, "isequip", "ii"},
{buildin_get_equip, "get_equip", "ii"},
{buildin_set_equip, "set_equip", "ii"},
{buildin_drop_equip, "drop_equip", "iii"}, // sd, slot, deadflag(0~1)
{buildin_set_unequip2, "del_equip", "ii"},
{buildin_get_equip_name, "get_equip_name", "ii"},
{buildin_set_unequip, "set_unequip", "ii"},
{buildin_set_unequip2, "set_unequip2", "ii"},
{buildin_get_equip_maxdura, "get_equip_maxdura", "ii"},
{buildin_get_equip_dura, "get_equip_dura", "ii"},
{buildin_set_equip_dura, "set_equip_dura", "iii"},
{buildin_get_equip_nickname, "get_equip_nickname", "ii"},
{buildin_set_equip_nickname, "set_equip_nickname", "iis"},
// {buildin_slot_delitem, "slot_delitem", "iiii"},
{buildin_get_spell, "get_spell", "ii"}, // sd, slot
{buildin_set_spell, "set_spell", "iii"}, // sd, slot, spell_id
{buildin_del_spell, "del_spell", "ii"},
{buildin_get_item, "get_item", "ii"}, // sd, slot
{buildin_del_item, "del_item", "iii"}, // sd, slot, amount
{buildin_drop_item, "drop_item", "iiii"}, // sd, slot, alldropflag(0~1), deadflag(0~1)
{buildin_drop_money, "drop_money", "iii"}, // sd, slot, deadflag(0~1)
{buildin_get_item_dura, "get_item_dura", "ii"},
{buildin_set_item_dura, "set_item_dura", "iii"},
{buildin_get_item_nickname, "get_item_nickname", "ii"},
{buildin_set_item_nickname, "set_item_nickname", "iis"},
// ONDROP
{ buildin_get_dropitem_slot, "get_dropitem_slot", "i" }, // @sd, 떨어뜨린 아이템 슬롯
{ buildin_get_dropitem_all, "get_dropitem_all", "i" }, // @sd, all flag
// ONTHROW
{ buildin_get_throwitem_slot, "get_throwitem_slot", "i" }, // @sd, 떨어뜨린 아이템 슬롯
{ buildin_get_throwitem_all, "get_throwitem_all", "i" }, // @sd, all flag
{buildin_get_itemtype, "get_itemtype", "i"}, // name2itemid("목도")
{buildin_get_itemicon, "get_itemicon", "i"},
{buildin_get_itemcolor, "get_itemcolor", "i"},
{buildin_get_itemmaxhave, "get_itemmaxhave", "i"},
{buildin_get_itemdura, "get_itemdura", "i"},
{buildin_get_itemprice, "get_itemprice", "i"},
{buildin_get_itemmight, "get_itemmight", "i"},
{buildin_get_itemgrace, "get_itemgrace", "i"},
{buildin_get_itemwill, "get_itemwill", "i"},
{buildin_get_itemgender, "get_itemgender", "i"},
{buildin_get_itemlevel, "get_itemlevel", "i"},
{buildin_get_itemjob, "get_itemjob", "i"},
{buildin_get_itemjoblevel, "get_itemjoblevel", "i"},
{buildin_get_itemdeathpenalty, "get_itemdeathpenalty", "i"},
{buildin_get_itemdropable, "get_itemdropable", "i"},
{buildin_get_itemfixable, "get_itemfixable", "i"},
{buildin_get_itemfixcost, "get_itemfixcost", "i"},
{buildin_get_itemdepositcost, "get_itemdepositcost", "i"},
{buildin_get_itemnamingcost, "get_itemnamingcost", "i"},
{buildin_get_itemequipscript, "get_itemequipscript", "i"},
{buildin_get_itemunequipscript, "get_itemunequipscript", "i"},
{buildin_get_itemusescript, "get_itemusescript", "i"},
{buildin_get_aether, "get_aether", "ii"}, // sd, slot
{buildin_get_legend, "get_legend", "ii"}, // sd, slot
{buildin_get_spouse, "get_spouse", "i"}, // @sd
{buildin_set_spouse, "set_spouse", "is"}, // @sd, @spouse_name$
{buildin_makeclan, "makeclan", "siss"}, // 문파명, 문파자금, 문파장, 부문파장(없으면 0)
{buildin_get_clanid, "get_clanid", "i"}, // 문파의 번호를 가져옴
{buildin_get_clanname, "get_clanname", "i"}, // 문파의 이름을 가져옴
{buildin_get_clanmoney, "get_clanmoney", "i"}, // 문파의 자금을 가져옴
{buildin_set_clanmoney, "set_clanmoney", "ii"}, // 문파의 자금을 설정함
{buildin_get_clanmaster, "get_clanmaster", "i"}, // 문파의 문주이름을 가져옴
{buildin_set_clanmaster, "set_clanmaster", "is"}, // 문파의 문주를 설정함
{buildin_get_clanlowmaster, "get_clanlowmaster", "i"}, // 문파의 부문주이름을 가져옴
{buildin_set_clanlowmaster, "set_clanlowmaster", "is"}, // 문파의 부문주를 설정함
{buildin_get_clantitle, "get_clantitle", "i"}, // 문파의 칭호를 가져옴
{buildin_set_clantitle, "set_clantitle", "is"}, // 문파의 칭호를 설정함
{buildin_clan_exist, "clan_exist", "i"}, // 문파 있는지 없는지 체크 (mysd)
{buildin_set_clan, "set_clan", "iss"}, // 문파가입 : mysd, 가입할문파명, 가입할이름
{buildin_del_clan, "del_clan", "iss"}, // 문파탈퇴 : mysd, 가입한문파명, 탈퇴할이름
{buildin_is_clan_member, "is_clan_member", "ss"}, // if(is_clan_member("떡게", "떡게문파") > 0)
{buildin_clan_membername, "clan_membername", "ii"}, // set @name$, clan_membername(@clan_id, @index);
{buildin_clan_membercount, "clan_membercount", "i"}, // clan_membercount(@clan_id);
// 다음 함수로 단방향 관계를 알 수 있다
{buildin_isallied, "isallied", "ii"}, // @sd가 @target_sd와 동맹했는지 확인
{buildin_ishostile, "ishostile", "ii"}, // @sd가 @target_sd와 적대적인지 확인
// 리턴값
// 성공: 1, 실패: 0
{buildin_add_alliedclan, "add_alliedclan", "ss"}, // s1의 동맹문파에 s2를 추가
{buildin_del_alliedclan, "del_alliedclan", "ss"}, // s1의 동맹문파에서 s2를 삭제
{buildin_add_enemyclan, "add_enemyclan", "ss"}, // s1의 적문파에 s2를 추가
{buildin_del_enemyclan, "del_enemyclan", "ss"}, // s1의 적문파에서 s2를 삭제
{buildin_get_alliedclan, "get_alliedclan", "si"}, // 문파명, index
{buildin_get_enemyclan, "get_enemyclan", "si"}, // 문파명, index
{buildin_get_alliedclancount, "get_alliedclancount", "s"}, // 문파명
{buildin_get_enemyclancount, "get_enemyclancount", "s"}, /// 문파명
{buildin_get_clanparam, "get_clanparam", "ii"},
{buildin_set_clanparam, "set_clanparam", "iii"},
// // 구동기 내 interval
// {buildin_get_spellinterval, "get_spellinterval", "i"}, //구동기 내 마법 인터벌
// {buildin_set_spellinterval, "set_spellinterval", "ii"},
// 날씨
{buildin_get_weather, "get_weather", ""},
{buildin_set_weather, "set_weather", "i"},
{buildin_get_mapboarddata, "get_mapboarddata", "ii"}, // @x, @y (mapsegment의 맵을 탐색함)
{buildin_set_mapboarddata, "set_mapboarddata", "iis"}, // @x, @y, @msg
// 레전드(s 누르면 뜨는 퀘스트 업적)
{buildin_addlegend, "addlegend","iiiiis"}, //iiiis -> iiiiis(근데 추가된 i(type)는 unknown);
{buildin_dellegend, "dellegend","ii"},
{buildin_get_uservar_i, "get_uservar_i", "is"}, // mysd, 변수이름 (반환값 숫자)
{buildin_get_uservar_s, "get_uservar_s", "is"}, // mysd, 변수이름 (반환값 문자)
{buildin_set_uservar_i, "set_uservar_i", "isi"}, // mysd, 변수이름, 값
{buildin_set_uservar_s, "set_uservar_s", "iss"}, // mysd, 변수이름, 값
{buildin_getoutofhere, "getoutofhere", "i"},
// 소환된 몹의 아이디를 가져옮
// 파티 멤버 구하는 거랑 비슷함
{buildin_subordinate_max, "subordinate_max", ""}, // == 12
{buildin_get_subordinate, "get_subordinate", "ii"}, // set @target_id, get_subordinate(@sd, @index);
{buildin_get_mobspawner_name, "get_mobspawner_name", "i"}, // if(get_mobspawner_name(@target_id) == get_name(@sd))
{buildin_throwitem, "throwitem", "iiiiii"}, // @sd, @item_icon, @item_color, @action, @x, @y
{buildin_flyitem, "flyitem", "iiiiii"}, // @item_icon, @item_color, @x1, @y1, @x2, @y2
{buildin_get_usercolor, "get_usercolor", "i"},
{buildin_set_usercolor, "set_usercolor", "ii"},
{buildin_get_mobprotection, "get_mobprotection", "i"},
{buildin_get_depositmoney, "get_depositmoney", "i"},
{buildin_get_deposititem_max, "get_deposititem_max", ""}, // 최대 맡길 수 있는 아이템 개수 == 60
{buildin_get_deposititem, "get_deposititem", "ii"}, // @sd, @index -> item_id
{buildin_get_deposititem_count, "get_deposititem_count", "ii"}, // @sd, @index -> 개수
{buildin_del_deposititem, "del_deposititem", "iii"}, // @sd, @index, @count
{buildin_get_session, "get_session","i"}, // for(set @i, 0; @i<session_count(); set @i, @i+1)
{buildin_session_count, "session_count",""}, // if(get_session(@i) > 0) { set @target_sd, get_session(@i); }
{buildin_write_log, "write_log", "ss"}, // 로그 작성, write_log "공부/TOEIC특강-2주차/오소리/국산노모/a.txt", @msg$;
{buildin_rewrite_log, "rewrite_log", "ss"}, // 덮어 씌우는 로그 작성, rewrite_log "공부/TOEIC특강-2주차/오소리/국산노모/a.txt", @msg$;
//-- 플래그 --/
/*
struct map_flag
{
char cmd; // 운영자 채팅 명령어 사용가능여부
char chat; // 채팅 가능여부
char spell; // 마법사용 가능여부
char whisper; // 귓속말 가능여부
char ride; // 말타기(R) 가능여부
char drop; // 버리기(D,H,교환,던지기) 가능여부
char get; // 줍기(',',교환,노획) 가능여부
char emotion; // 표정(:) 가능여부
char door; // 문 여닫기(O) 가능여부
char changeslot; // 아이템, 마법 슬롯 스왑 가능여부
};
*/
{buildin_get_flag, "get_flag", "is"}, // if(get_flag(@sd, "spell") > 0) // 마법 사용 가능
{buildin_set_flag, "set_flag", "isi"}, // set_flag @sd, "cmd", 0; (운영자 명령어 사용불가)
{buildin_saesi_screen, "saesi_screen", "iiiiii"}, // @sd, @screen, @hair, @side, @x, @y (세시마을 사진 출력)
//-- 거래 관련 함수 --//
// ONTRADE에서 밖에 못 쓰는 함수들임
{buildin_trademax, "trademax", ""}, // @trade_slot_max == 12
{buildin_get_tradedmoney, "get_tradedmoney", "i"}, // @sd, 이 사람이 올린 돈
{buildin_get_tradeditem, "get_tradeditem", "ii"}, // @sd, @slot, 이 사람이 올린 템
{buildin_get_tradeditem_dura, "get_tradeditem_dura", "ii"},
{buildin_get_tradeditem_amount, "get_tradeditem_amount", "ii"},
{buildin_get_tradeditem_nickname, "get_tradeditem_nickname", "ii"},
//-- 조합 관련 함수 --//
{buildin_mixid_max, "mixid_max", ""}, // 조합법 id의 max
{buildin_get_lastmixsuccess, "get_lastmixsuccess", "i"}, // 성공은 1, 실패는 0, 초기값 0
{buildin_get_lastmixid, "get_lastmixid", "i"}, // mix_id
{buildin_get_mixchance, "get_mixchance", "i"}, // @mix_id
{buildin_get_mixrequire_count, "get_mixrequire_count", "i"}, // @mix_id
{buildin_get_mixsuccess_count, "get_mixsuccess_count", "i"},
{buildin_get_mixfailure_count, "get_mixfailure_count", "i"},
{buildin_get_mixrequire_itemid, "get_mixrequire_itemid", "ii"}, // @mix_id, @index
{buildin_get_mixsuccess_itemid, "get_mixsuccess_itemid", "ii"},
{buildin_get_mixfailure_itemid, "get_mixfailure_itemid", "ii"},
{buildin_get_mixrequire_amount, "get_mixrequire_amount", "ii"}, // @mix_id, @index
{buildin_get_mixsuccess_amount, "get_mixsuccess_amount", "ii"},
{buildin_get_mixfailure_amount, "get_mixfailure_amount", "ii"},
{ buildin_get_mixitem_many, "get_mix_many", "i" },
{ buildin_get_mixitem_itemid, "get_mix_itemid", "ii" },
{ buildin_get_mixitem_amount, "get_mix_amount", "ii" },
{ buildin_get_mixitem_attribute, "get_mix_attribute", "iii" },
{buildin_get_maptile, "get_maptile", "ii"}, // @x, @y(map_segment의 map_id 사용) -> 맵타일 번호
{buildin_get_mapobject, "get_mapobject", "ii"}, // @x, @y(map_segment의 map_id 사용) -> 맵오브젝트 번호
{buildin_set_maptile, "set_maptile", "iii"}, // @x, @y, @value
{buildin_set_mapobject, "set_mapobject", "iii"}, // @x, @y, @value
{buildin_fopen, "fopen", "ss"},
{buildin_feof, "feof", "i"},
{buildin_fputs, "fputs", "is"},
{buildin_fgets, "fgets", "i"},
{buildin_fclose, "fclose", "i"},
{buildin_get_lastget_success, "get_lastget_success", "i"}, // 아이템을 줍는 것의 성공 여부(0, 1)
{buildin_get_lastget_itemid, "get_lastget_itemid", "i"}, // 최근 주운 아이템의 itemid, mapid, x, y를 구한다
{buildin_get_lastget_m, "get_lastget_m", "i"},
{buildin_get_lastget_x, "get_lastget_x", "i"},
{buildin_get_lastget_y, "get_lastget_y", "i"},
{buildin_get_lastdrop_itemid, "get_lastdrop_itemid", "i"}, // 최근 던진 아이템의 itemid, mapid, x, y를 구한다
{buildin_get_lastdrop_m, "get_lastdrop_m", "i"},
{buildin_get_lastdrop_x, "get_lastdrop_x", "i"},
{buildin_get_lastdrop_y, "get_lastdrop_y", "i"},
{buildin_get_lastdamaging_intensity, "get_lastdamaging_intensity", "i"}, // 최근 가한 데미지의 양
{buildin_get_lastdamaging_type, "get_lastdamaging_type", "i"}, // 최근 가한 데미지의 타입
{buildin_get_lastdamaged_intensity, "get_lastdamaged_intensity", "i"}, // 최근 받은 데미지의 양
{buildin_get_lastdamaged_type, "get_lastdamaged_type", "i"}, // 최근 받은 데미지의 타입
{buildin_get_lastsd, "get_lastsd", "i"}, // @id -- 최근 나에게 영향을 가한 sd
{buildin_get_lastid, "get_lastid", "i"}, // @id -- 최근 나에게 영향을 가한 id
{buildin_get_lastslot, "get_lastslot", "i"}, // @id -- 최근 나에게 영향이 있었던 slot
// @sd, @slot, @index, @value?@value$?
{buildin_get_equipattribute, "get_equipattribute", "iii"},
{buildin_set_equipattribute, "set_equipattribute", "iii?"},
{buildin_del_equipattribute, "del_equipattribute", "iii"},
{buildin_get_itemattribute, "get_itemattribute", "iii"},
{buildin_set_itemattribute, "set_itemattribute", "iii?"},
{buildin_del_itemattribute, "del_itemattribute", "iii"},
{buildin_get_spellattribute, "get_spellattribute", "iii"},
{buildin_set_spellattribute, "set_spellattribute", "iii?"},
{buildin_del_spellattribute, "del_spellattribute", "iii"},
{buildin_get_aetherattribute, "get_aetherattribute", "iii"},
{buildin_set_aetherattribute, "set_aetherattribute", "iii?"},
{buildin_del_aetherattribute, "del_aetherattribute", "iii"},
{buildin_get_legendattribute, "get_legendattribute", "iii"},
{buildin_set_legendattribute, "set_legendattribute", "iii?"},
{buildin_del_legendattribute, "del_legendattribute", "iii"},
{buildin_get_loginbantime, "get_loginbantime", "i"},
{buildin_set_loginbantime, "set_loginbantime", "ii"},
{buildin_get_chatbantime, "get_chatbantime", "i"},
{buildin_set_chatbantime, "set_chatbantime", "ii"},
{buildin_get_mailbantime, "get_mailbantime", "i"},
{buildin_set_mailbantime, "set_mailbantime", "ii"},
{buildin_get_spellbantime, "get_spellbantime", "i"},
{buildin_set_spellbantime, "set_spellbantime", "ii"},
{buildin_sendmapbgm, "sendmapbgm", "ii"}, // @sd, @bgm_id
{buildin_set_mapbgm, "set_mapbgm", "i"}, // @bgm_id (map_segment의 맵번호 사용)
{buildin_get_mapbgm, "get_mapbgm", ""}, // (map_segment의 맵번호 사용)
{buildin_sendmapbgm_midi, "sendmapbgm_midi", "ii"}, // @sd, @bgm_id
{buildin_version, "version", "i"}, // 현재 접속한 클라이언트 버전(550, 565)을 체크 (mysd)
//--
{tempfunction, "set_developer", "ii"}, // 미구현
{tempfunction, "set_imitation", "iii"}, // 미구현
// ** EOF ** //
{NULL, NULL, NULL}
//--
};
댓글 목록 4
불홍님의 댓글

다들 알고 계시는 사실이겠지만 패킷만 요리저리 주물러서
https://github.com/rathena/rathena/commits/master
이 rathena 사용하면 더 멋진 서버를 만들 수 있습니다.
https://github.com/rathena/rathena/commits/master
이 rathena 사용하면 더 멋진 서버를 만들 수 있습니다.
불홍님의 댓글

또한 위 git을 참고하시더라도 libcurl은 어디서 받아서 사용하지 마시고,
직접 찾아서 라이브러리는 가능한 최신 빌드를 직접 만드시길 추천하고(해킹방지 등),
VS2019 버전으로 빌드하셔서 가능한한 대부분의 함수를 마이그레이션 하시길 바랍니다.
그나저나 유니티 하시는분 없을까요? 언리얼이라도?
직접 찾아서 라이브러리는 가능한 최신 빌드를 직접 만드시길 추천하고(해킹방지 등),
VS2019 버전으로 빌드하셔서 가능한한 대부분의 함수를 마이그레이션 하시길 바랍니다.
그나저나 유니티 하시는분 없을까요? 언리얼이라도?
개발어린이님의 댓글


감사합니다 알러뷰,..
나비님의 댓글


쪽지한번만 봐주세요!