[hanlp]특수한 무기를 만들고 싶은데요...
박대성
2,023
0
0
2004-02-10 00:37:47
6Comments
혼
2004.02.10(화) 오전 00:40:02
흠 오늘도 쭈욱 글을 읽어보고 있는 혼입니다.. ㅎㅎ
이방법은 207번글의 마군님의 답변을 보면 쉽게 해결될것같습니다.
그와 같은 데몬을 만들어서 일정시간마다 돌아가게 한다음.
돌아가는 함수 내용은
"무기명"을 체크하여서 해당 무기를 무장하고 있을경우 피를 깍아주면 될것 같습니다.
박대성
2004.02.10(화) 오전 00:44:10
음.. 데몬을 하나 만드는 수밖에 없는건가요..
그것을 여기다 응용할 수도 있는군요 :-) 저는 시간이나 날짜표시할때만 쓸수있다고 생각했는데..
MaGuN
2004.02.10(화) 오전 00:47:51
만약 무기에 관한 부분에 루틴을 넣어 둔다면.. call_out() 으로 처리하는것은..
매우 불합리할수 있습니다. 수백명의 사용자가 게임에 들어오고 소지품에 무기들이
10개씩 있다면 수천개의 call_out() 함수가 실행될수도 있고.. 이것은 게임을 느리게
하는데 일익(-_-;;;)을 할것 같습니다.
대략 두세가지 정도의 방법이 아닐까 싶은데요.. 하나는 사용자와 같이 무기들도
heart_beat()를 두어서 여기서 만약 자신(무기)이 무장되어 있는 상태이고
무장한대상이 사람이라면 그 사람의 체력을 떨어뜨리게 하는 방법과..
다른 하나는 무기에다가 각각의 query()를 주고.. 예를 들어서 set("체력저하",10);
같은 식으로요..
user.c의 heart_beat() 함수에서 만약 사용자가 무기를 무장하고 고 무기에 체력저하
라는 query가 있으면 이 수치만큼씩 체력을 깍아 주는 방법도 있겠구요...
매번 heart_beat()에서 검색을 하게 되면 아무래도 게임에 부하가 조금 더 갈 수 있으니
lib/std/body/attack.c 화일의 heal_up() 함수를 수정해서.. this_object()가 사용자
이고 무장하고 있고, 무장한 무기에 체력저하라는 query가 있으면 틱타임에 체력을 올려
주는게 아니고 오히려 체력을 깎는다든지 하는 방법이 있을것 같습니다.
만약 저라면.. 3번째 방법을 선호할것 같습니다만.. ^^;;
MaGuN
2004.02.10(화) 오전 00:50:49
실제로 머드에 독중독 같은부분이 있고.. 만약 독에 중독되면 체력이 떨어지게 한다든지
할때에도 lib/std/body/attack.c의 heal_up() 함수에 간단히 if() 문을 넣어서 처리
되게 할수도 있습니다. 다른 여러가지 방법의 응용도 가능하리라 봅니다. ^^
혼
2004.02.10(화) 오전 09:19:17
음 제가 -_- 밑에 마군님의 답변을 잘못 이해한건가...
제가 말한방법으로 하면. 예를들어서
머드 시작할때 call_out 으로 함수 불러주고
그 함수에서 주기적으로 call_out 불러서 머드접속자들중에 그 무기 무장한사람들 체크 한단뜻이였는데..
사용자에게 call_out 을 불러주는게 아니라 -_-;;
예를들어 뭐 주기적 방송이나 날씨같은것처럼요. 주기적으로.. 음~? 아닌가염?
MaGuN
2004.02.10(화) 오후 12:06:21
혼님이 말하신 방법으로 하여도 충분히 가능합니다. ^^
어떤식으로 구현을 하는가는 순전히 제작하는 사람의 취향에 따라...
달라지겠죠 ^^;;;
제가 쓴 콜아웃에 대한 부분은..
그냥 콜아웃으로 했더니 무장하기도 전에 피가 달고..
한 무기가 2개 생기니까 -_- 난리법석..
요 글에 대한 생각이였습니다. ^^
총 게시물 954개 / 검색된 게시물: 954개