복권 소스

2007.04.12 11:38

그리움 조회 수:207 추천:67

**복권 소스**
복권을 긁으면 당첨금이 3차에 걸쳐서 나온다.
※사용방법
1. OBJECT.C에 카피한다.
2. MEXTERN.H 로 이동해서 OBJECT.C 으로 간다.
int <-- bockwun();<--이렇게 적는다.
3. GLOBAL.C로 이동해서 { "긁어", 102, "bockwun" }, <--이렇게 적는다.
4. MTYPE.H로 이동해서 object flag로 이동
object flag의 맨아랫부분에 #define OBOCK 51 /* 복권 */<--이렇게 적는다.
5. make


/*************************************************/
/* bockwun (긁어) */
/*************************************************/
long ply_bockwun_time[PMAX];
int bockwun(ply_ptr, cmnd)
creature *ply_ptr;
cmd *cmnd;
{
   room *rom_ptr;
   object *obj_ptr, *cnt_ptr;
   int fd, n, match=0;
   long t;
   fd = ply_ptr->fd;
   if(cmnd->num < 2) {
       print(fd, "무엇을 긁으시려고요?");
       return(0);
   }
   t=time(0);
   if(ply_bockwun_time[fd]>t) {
       please_wait(fd,ply_bockwun_time[fd]-t);
       return 0;
   }
   rom_ptr = ply_ptr->parent_rom;
   F_CLR(ply_ptr, PHIDDN);
   obj_ptr = find_obj(ply_ptr, ply_ptr->first_obj,
              cmnd->str[1], cmnd->val[1]);
   if(!obj_ptr) {
       print(fd, "당신은 그런것을 갖고 있지 않습니다.");
       return(0);
   }
   if(!F_ISSET(obj_ptr, OBOCK)) {
    print(fd, "그것은 긁을 수 있는 아이템이 아닙니다.");
       return(0);
   }
   if(ply_ptr->gold < 100) {
    print(fd, "당신은 동전이 없어서 복권을 긁을 수 없습니다.");
       return(0);
   }
   del_obj_crt(obj_ptr, ply_ptr);
broadcast_rom(fd, rom_ptr->rom_num,
                "\n%M%j 동전으로 %1i%j 긁었습니다.", ply_ptr,"1",
obj_ptr,"1");
   free_obj(obj_ptr);
ANSI(fd, GREEN);
   print(fd, "\n\n[[ ");
ANSI(fd, MAGENTA);
   print(fd, "1차 기회");
ANSI(fd, GREEN);
   print(fd, " ]]");
ANSI(fd, YELLOW);
   print(fd, " : ");
ANSI(fd, WHITE);
   if(((time(0)+mrand(1,100))%2000)==9) { /*확률 */
       print(fd,"1000000냥");
broadcast("\n### %M께서 1등에 당첨되셨습니다. [1차: 1000000냥]",
ply_ptr->name);
       ply_ptr->gold+=1000000;
   }
   if(((time(0)+mrand(1,100))%1000)==9) {
       print(fd,"500000냥");
broadcast("\n### %M께서 2등에 당첨되셨습니다. [1차: 500000냥]",
ply_ptr->name);
       ply_ptr->gold+=500000;
   }
   if(((time(0)+mrand(1,100))%500)==9) {
       print(fd,"250000냥");
broadcast_rom(fd, "\n### %M께서 3등에 당첨되셨습니다. [1차: 250000냥]",
ply_ptr->name);
       ply_ptr->gold+=250000;
   }
   if(((time(0)+mrand(1,100))%250)==9) {
       print(fd,"100000냥");
broadcast_rom(fd, "\n### %M께서 4등에 당첨되셨습니. [1차: 100000냥]",
ply_ptr->name);
       ply_ptr->gold+=100000;
   }
   if(((time(0)+mrand(1,100))%100)==9) {
       print(fd,"50000냥");
broadcast_rom(fd, "\n### %M께서 5등에 당첨되셨습니다. [1차: 50000냥]",
ply_ptr->name);
       ply_ptr->gold+=50000;
   }
   if(((time(0)+mrand(1,10))%100)==9) {
       print(fd,"5000냥");
broadcast_rom(fd, "\n### %M께서 6등에 당첨되셨습니다. [1차: 5000냥]",
ply_ptr->name);
       ply_ptr->gold+=5000;
   }
   else print(fd, "꽝! 꽝! 꽝!");
ANSI(fd, GREEN);
   print(fd, "\n\n[[ ");
ANSI(fd, MAGENTA);
   print(fd, "2차 기회");
ANSI(fd, GREEN);
   print(fd, " ]]");
ANSI(fd, YELLOW);
   print(fd, " : ");
ANSI(fd, WHITE);
   if(((time(0)+mrand(1,100))%2000)==9) { /*확률 */
       print(fd,"1000000냥");
broadcast("\n### %M께서 1등에 당첨되셨습니다.[2차; 1000000냥]",
ply_ptr->name);
       ply_ptr->gold+=1000000;
   }
   if(((time(0)+mrand(1,100))%1000)==9) {
       print(fd,"500000냥");
broadcast("\n### %M께서 2등에 당첨되셨습니다. [2차: 500000냥]",
ply_ptr->name);
       ply_ptr->gold+=500000;
   }
   if(((time(0)+mrand(1,100))%500)==9) {
       print(fd,"250000냥");
broadcast_rom(fd, "\n### %M께서 3등에 당첨되셨습니다. [2차: 250000냥]",
ply_ptr->name);
       ply_ptr->gold+=250000;
   }
   if(((time(0)+mrand(1,100))%250)==9) {
       print(fd,"100000냥");
broadcast_rom(fd, "\n### %M께서 4등에 당첨되셨습니다. [2차: 100000냥]",
ply_ptr->name);
       ply_ptr->gold+=100000;
   }
   if(((time(0)+mrand(1,100))%100)==9) {
       print(fd,"50000냥");
broadcast_rom(fd, "\n###%M께서 5등에 당첨되셨습니다. [2차: 50000냥]",
ply_ptr->name);
       ply_ptr->gold+=50000;
   }
   if(((time(0)+mrand(1,10))%100)==9) {
       print(fd,"5000냥");
broadcast_rom(fd, "\n###%M께서 6등에 당첨되셨습니다. [2차: 5000냥]",
ply_ptr->name);
       ply_ptr->gold+=5000;
   }
   else print(fd, "꽝! 꽝! 꽝!");
ANSI(fd, GREEN);
   print(fd, "\n\n[[ ");
ANSI(fd, MAGENTA);
   print(fd, "3차 기회");
ANSI(fd, GREEN);
   print(fd, " ]]");
ANSI(fd, YELLOW);
   print(fd, " : ");
ANSI(fd, WHITE);
   if(((time(0)+mrand(1,100))%2000)==9) { /*확률 */
       print(fd,"1000000냥");
broadcast("\n###% M께서 1등에 당첨되셨습니다. [3차: 1000000냥]",
ply_ptr->name);
       ply_ptr->gold+=1000000;
   }
   if(((time(0)+mrand(1,100))%1000)==9) {
       print(fd,"500000냥");
broadcast("\n### %M께서 2등에 당첨되셨습니다. [3차: 500000냥]",
ply_ptr->name);
       ply_ptr->gold+=500000;
   }
   if(((time(0)+mrand(1,100))%500)==9) {
       print(fd,"250000냥");
broadcast("\n### %M께서 3등에 당첨되셨습니다. [3차: 250000냥]",
ply_ptr->name);
       ply_ptr->gold+=250000;
   }
   if(((time(0)+mrand(1,100))%250)==9) {
       print(fd,"100000냥");
broadcast("\n### %M께서 4등에 당첨되셨습니다. [3차: 100000냥]",
ply_ptr->name);
       ply_ptr->gold+=100000;
   }
   if(((time(0)+mrand(1,100))%100)==9) {
       print(fd,"50000냥");
broadcast("\n### %M께서 5등에 당첨되셨습니다. [3차: 50000냥]",
ply_ptr->name);
       ply_ptr->gold+=50000;
   }
   if(((time(0)+mrand(1,10))%100)==9) {
       print(fd,"5000냥");
broadcast("\n### %M께서 6등에 당첨되셨습니다. [3차: 5000냥]",
ply_ptr->name);
       ply_ptr->gold+=5000;
   }
   else print(fd, "꽝! 꽝! 꽝!");
   ply_bockwun_time[fd]=t+6; /* 긁어 딜레이 */
   return(0);
}


XE Login