경매 소스

2007.04.12 13:03

그리움 조회 수:180 추천:53

번 호 : 33
게시자 : 머드개발 (머드개발)
등록일 : 1999-10-11 10:30
제 목 : [충격공개] 경매소스

제목: [충격공개] 경매소스
이름: 머드개발 석봉운 99/9/29 10:52 조회:61 쪽:1/12 번호:33/35
───────────────────────────────────────
이소스는 아직까진 공개된곳이 전혀 없는걸로 알고 있습니다.


#include "mstruct.h"
#include "mextern.h"
#include

long sellgold, nextgold;
int issell = 0;
creature *sell_ply;
creature *buy_ply;
object *sell_obj;
long sellcount;

int sell_object(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
  int fd;
  char objs[40];
  long objn;
  object *obj_ptr;

  fd = ply_ptr->fd;
  if (cmnd->num < 2) {
     if (issell) {
        print(fd, "당신은 경매중인 물건의 정보를 봅니다.\n");
                                  
        return(0);
     } else {
        print(fd, "무엇을 경매하실려구요?\n");
        return(0);
     }
  }

  if (issell) {
     print(fd, "현재 경매가 진행중입니다.\n");
     return(0);
  }
  
  if (cmnd->num == 2) {
     sellgold = 10;
     strcpy(objs, cmnd->str[1]);
     objn = cmnd->val[1];
  } else {
     if (strcmp(&cmnd->str[1][strlen(cmnd->str[1])-2], "냥")
        || strlen(cmnd->str[1])<3) {
        print(fd, "그것은 돈이 아닙니다.\n");
        return(0);
     }
     sscanf(cmnd->str[1],"%ld", &sellgold);
     if (sellgold < 10) sellgold = 10;
     strcpy(objs, cmnd->str[2]);
     objn = cmnd->val[2];
  }

  obj_ptr = find_obj(ply_ptr, ply_ptr->first_obj, objs, objn);

  if (!obj_ptr) {
     print(fd, "당신은 그것을 가지고 있지 않습니다.\n");
     return(0);
  }

  if (sellgold > ply_ptr->gold || sellgold < 0) {
     print(fd, "당신은 그만한 돈이 없습니다\n");
     return(0);
  }

  del_obj_crt(obj_ptr, ply_ptr);
  issell = 1;
  nextgold = sellgold;
  sellcount = 550;
  sell_obj = obj_ptr;
  sell_ply = ply_ptr;

  print(fd, "당신은 경매물품 '%s'를 내 놓습니다.\n", obj_ptr->name);
  return(0);
}

int buy_object(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
  int fd;
  long gold, sellg;

  fd = ply_ptr->fd;
  if (!issell) {
     print(fd, "현재는 경매중이 아닙니다.\n");
     return(0);
  }
  if (cmnd->num < 2) {
     print(fd, "얼마에 매입을 하실려구요?\n");
     return(0);
  } else {
     if (!strcmp(ply_ptr->name, sell_ply->name)) {
        print(fd, "당신은 경매자이므로 매입을 할수가 없습니다.\n");
        return(0);
     }
        
  if (strcmp(&cmnd->str[1][strlen(cmnd->str[1])-2], "냥")
                                   || strlen(cmnd->str[1]) < 3) {
        print(fd, "그것은 돈이 아닙니다.\n");
        return(0);
     }

     sscanf(cmnd->str[1],"%ld", &gold);

     if (gold > ply_ptr->gold) {
        print(fd, "당신은 그만한 돈이 없습니다.\n");
        return(0);
     }

     if (gold < nextgold) {
  print(fd, "경매에 응하시려면 %ld냥 이상을 지불하여야 합니다.\n",nextgold);
        return(0);
     }
     nextgold = gold + gold/10;
     if (nextgold < 0) nextgold = 0x7fffffff;

     if (buy_ply && buy_ply->fd != -1 && issell == 2) {
       print(buy_ply->fd, "당신은 경매에 지불하였던 돈을 되돌려받습니다\n");
        buy_ply->gold += sellgold;
     }

     issell = 2;
     sellcount = 550;
     sellgold = gold;
     buy_ply = ply_ptr;
     ply_ptr->gold -= gold;

     print(fd, "당신은 %ld냥을 경매대금으로 지불하고 경매에응찰합니다\n", sellgold);
     return(0);
  }
}

void sell_rtn()
{
  if (issell == 1) {
     if (sellcount == 550) {
         broadcast("\n경매 경매자: %s 물품: %s 금액: %ld냥\n",
         sell_ply->name, sell_obj->name, sellgold);
        broadcast("도움 경매: [###냥] 물건 경매 매입: ###냥 매입\n");
     }
     else if(sellcount == 275) {
         broadcast("\n경매 경매자: %s 물품: %s 금액: %ld냥\n",
           sell_ply->name, sell_obj->name, sellgold);
        broadcast(" 경매완료 15초전입니다.\n");
     }
     else if(sellcount == 0) {
        broadcast("\n경매 경매에 응하는 사람이 없어 중단합니다.\n");
        if (sell_ply && sell_ply->fd != -1) {
           print(sell_ply->fd, "당신은 경매물품을 돌려받습니다.\n");
           add_obj_crt(sell_obj, sell_ply);
        }
        issell = 0;
     }
  } else {
     if (sellcount == 550) {
        broadcast("\n매입 물품: %s 응찰자: %s 매입금액: %ld냥\n",
           sell_obj->name, buy_ply->name, sellgold);
     }
     else if (sellcount == 275) {
        broadcast("\n매입 물품: %s 응찰자: %s 매입금액: %ld냥\n",
           sell_obj->name, buy_ply->name, sellgold);
        broadcast(" ^[[=13F매입완료 15초전입니다.\n");
     } else if (sellcount == 0) {
   broadcast("\n매입 물품: %s 매입자: %s 매입금액: %ld냥[경매완료]\n",
           sell_obj->name, buy_ply->name, sellgold);
        if (sell_ply && buy_ply->fd != -1) {
       print(sell_ply->fd, "당신은 물품이 경매되어 경매대금을받습니다.\n");
           sell_ply->gold += sellgold;
        }
        if (buy_ply && buy_ply->fd != -1) {
           print(buy_ply->fd, "당신은 경매 입찰되어 물품을 받습니다.\n");
           add_obj_crt(sell_obj, buy_ply);
        }
        issell = 0;
     }
  }
  sellcount -= 25;
}


출처 : INS Mordor 게시판

홈지기 "그륨"
번호 제목 글쓴이 날짜 조회 수
57 도배방지 그리움 2007.04.12 222
56 그룹경험치 소스 그리움 2007.04.12 220
55 패거리전쟁중 "휴전" 그리움 2007.04.12 220
54 직업 추가하기 그리움 2007.04.12 218
53 자동으로 돈줍기 소스 그리움 2007.04.12 213
52 경매는 이렇게 그리움 2007.04.12 213
51 어디 그리움 2007.04.12 211
50 무한에서 안시 넣는 방법 그리움 2007.04.12 210
49 방설명 지우기 그리움 2007.04.12 209
48 특수 아이템 만들기 그리움 2007.04.12 209
47 복권 소스 그리움 2007.04.12 207
46 혼자 말하는 몹 그리움 2007.04.12 206
45 자동 이벤트 그리움 2007.04.12 204
44 낮과 밤이 되면 어둡고 환하게 그리움 2007.04.12 203
43 귀환장소 변경 소스 #1 그리움 2007.04.12 202
42 개량형 우체국 그리움 2007.04.12 202
41 주문추가 소스 그리움 2007.04.12 201
40 출구모양 개량 소스 그리움 2007.04.12 201
39 자동수련 소스 그리움 2007.04.12 201
38 잡담 안시 사용하기 그리움 2007.04.12 200


XE Login