Jump to content

LearningRO

Members
  • Posts

    778
  • Joined

  • Last visited

  • Days Won

    12

Posts posted by LearningRO

  1. 7 hours ago, iraciz said:

    Ok there you go, first you have to follow this indications:

    1- add the gold poring mob if you are running pre-re, this is the indicator were the point is going, I  used this mob to replace the original portal npc.

    
    2248,GOLDPORING,Golden Poring,Golden Poring,50,10000,0,0,0,1,300,300,2,5,6,1,1,0,6,5,10,12,0,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

     2- check the coordinates and locate them in a proper map,  my poring_w01 map is modified in gats and objetcs.

    
    //=-=-=-=-=-=-=-= Script by ColoExpress =-=-=-=-=-=-=-=
    //=-=-=-=-=-=-=-= 2010 - 2011 Develop present =-=-=-=-=-=-=-=
    //=-=-=-=-=-=-=-= Powered By www.coloexpress.in.th =-=-=-=-=-=-=-=
    //=-=-=-=-=-=-=-=Fix and translation in spanish by iraciz=-=-=-=-=-=-=-=
    
    -	script	PoringSlotsCh	-1,{
    	end;
    
    OnInit:
    	set $PSItem,7539;
    	set $PSre,7539; //Prize
    	set $NMItem,1;
    	end;
    }
    
    poring_w01,74,78,6	duplicate(PoringSlotsCh)	PoringSlots#01	1002
    poring_w01,76,78,6	duplicate(PoringSlotsCh)	PoringSlots#02	1002
    poring_w01,78,78,6	duplicate(PoringSlotsCh)	PoringSlots#03	1031
    poring_w01,80,78,6	duplicate(PoringSlotsCh)	PoringSlots#04	1113
    poring_w01,82,78,6	duplicate(PoringSlotsCh)	PoringSlots#05	1002
    poring_w01,84,78,6	duplicate(PoringSlotsCh)	PoringSlots#06	950
    poring_w01,86,78,6	duplicate(PoringSlotsCh)	PoringSlots#07	1002
    poring_w01,88,78,6	duplicate(PoringSlotsCh)	PoringSlots#08	1096
    poring_w01,90,78,6	duplicate(PoringSlotsCh)	PoringSlots#09	1002
    poring_w01,92,78,6	duplicate(PoringSlotsCh)	PoringSlots#10	1113
    
    poring_w01,92,76,6	duplicate(PoringSlotsCh)	PoringSlots#11	1031
    poring_w01,92,74,6	duplicate(PoringSlotsCh)	PoringSlots#12	1031
    poring_w01,92,72,6	duplicate(PoringSlotsCh)	PoringSlots#13	1002
    poring_w01,92,70,6	duplicate(PoringSlotsCh)	PoringSlots#14	1113
    
    poring_w01,92,68,6	duplicate(PoringSlotsCh)	PoringSlots#15	1002
    poring_w01,90,68,6	duplicate(PoringSlotsCh)	PoringSlots#16	1031
    poring_w01,88,68,6	duplicate(PoringSlotsCh)	PoringSlots#17	1002
    poring_w01,86,68,6	duplicate(PoringSlotsCh)	PoringSlots#18	1113
    poring_w01,84,68,6	duplicate(PoringSlotsCh)	PoringSlots#19	1002
    poring_w01,82,68,6	duplicate(PoringSlotsCh)	PoringSlots#20	950
    poring_w01,80,68,6	duplicate(PoringSlotsCh)	PoringSlots#21	1002
    poring_w01,78,68,6	duplicate(PoringSlotsCh)	PoringSlots#22	1031
    poring_w01,76,68,6	duplicate(PoringSlotsCh)	PoringSlots#23	1113
    poring_w01,74,68,6	duplicate(PoringSlotsCh)	PoringSlots#24	1002
    
    poring_w01,74,70,6	duplicate(PoringSlotsCh)	PoringSlots#25	1388 
    poring_w01,74,72,6	duplicate(PoringSlotsCh)	PoringSlots#26	1113
    poring_w01,74,74,6	duplicate(PoringSlotsCh)	PoringSlots#27	1002
    poring_w01,74,76,6	duplicate(PoringSlotsCh)	PoringSlots#28	1096
    
    poring_w01,74,78,6	script	PoringSlotsPoint	2248,1,1,{}
    
    -	script	PoringSlotsSetter	-1,{
    
    OnInit:
    								//--TOP					//--RIGHT					//BOTTOM						//LEFT
    	setarray $PoringSlotsX,74,76,78,80,82,84,86,88,90,	92,92,92,92,92,		92,90,88,86,84,82,80,78,76,74,		74,74,74,74,74;
    	setarray $PoringSlotsY,78,78,78,78,78,78,78,78,78,	78,76,74,72,70,		68,68,68,68,68,68,68,68,68,68,		70,72,74,76,78;
    
    
    	set $@PoringSlotsPlaying,	0;
    	set $@PoringSlotsRunning,	0;
    
    	donpcevent "PoringSlotsChoose#01::OnResetRoom";
    	donpcevent "PoringSlotsChoose#02::OnResetRoom";
    	donpcevent "PoringSlotsChoose#03::OnResetRoom";
    	donpcevent "PoringSlotsChoose#04::OnResetRoom";
    	donpcevent "PoringSlotsChoose#05::OnResetRoom";
    	end;
    }
    
    poring_w01,82,73,6	script	Poring Slots Play	693,{
    
    	mes "[ Poring Slots Play ]";
    	mes "Bienvenido a la ruleta poring";
    	mes "Antes de girar la ruleta, procura hacer tus apuestas ok? ";
    	mes "- Se cobra [ ^9900FF" +$NMItem+ "^000000 ] ^00AA55"+getitemname($PSItem)+"^000000 por lanzamiento.";
    	next;
    	if(select("- Girar la Ruleta","- Cancelar")==2)
    		close;
    	if($@PoringSlotsPlaying==1){
    		mes "[ Poring Slots Play ]";
    		mes "Ya hay un lanzamiento en fila. Debes esperar que termine para iniciar otro.";
    		close;
    	}
    	if(countitem($PSItem)<$NMItem){
    		mes "[ Poring Slots Play ]";
    		mes " No tienes la cantidad necesaria de monedas para girar la ruleta.";
    		close;
    	}
    	delitem $PSItem,$NMItem;
    	mes "[ Poring Slots Play ]";
    	mes "Comenzamos..";
    	donpcevent "Poring Slots Play::OnPoringSlotsAnnounce";
    	close;
    
    OnPoringSlotsAnnounce:
    	set $@PoringSlotsPlaying,1;
    	mapannounce "poring_w01","[ PoringSlots ] : Atencion a todos, la ruleta va a dar inicio en 1 Minuto a partir de este momento.",bc_map;
    	
    	sleep 20000;
    	npctalk "La ruleta va a girar dentro 40 segundos, vayan cerrando sus apuestas.";
    	sleep 20000;
    	npctalk "Dentro de poco iniciara el lanzamiento! quedan 20 Segundos";
    	sleep 5000;
    	npctalk "15 segundos restantes para el lanzamiento dela ruleta Poring.";
    	sleep 5000;
    	npctalk "Inicia el conteo regresivo de 10 segundos.";
    	sleep 1000; npctalk "9";
    	sleep 1000; npctalk "8";
    	sleep 1000; npctalk "7";
    	sleep 1000; npctalk "6";
    	sleep 1000; npctalk "5";
    	sleep 1000; npctalk "4";
    	sleep 1000; npctalk "3";
    	sleep 1000; npctalk "2";
    	sleep 1000; npctalk "1";
    	sleep 1000; npctalk "It's Show Time!!";	
    	donpcevent "Poring Slots Play::OnPoringSlotsPlaying";
    	end;
    
    OnPoringSlotsPlaying:
    	set $@PoringSlotsRunning,1;
    	set $PoringSlotsRound,$PoringSlotsRound+1;
    	set $@PoringSlotsSpeed,10;
    		for(set $@PoringSlotsRound,0;$@PoringSlotsRound<8;set $@PoringSlotsRound,$@PoringSlotsRound+1){
    			set $@PoringSlotsTemp,rand(20,40);
    			for(set $@i,0;$@i<$@PoringSlotsTemp;set $@i,$@i+1){
    				movenpc "PoringSlotsPoint",$PoringSlotsX[$@PoringSlotsPoint],$PoringSlotsY[$@PoringSlotsPoint];
    				set $@PoringSlotsPoint,$@PoringSlotsPoint+1;
    				if($@PoringSlotsPoint>=28)
    				set $@PoringSlotsPoint,0;
    				sleep $@PoringSlotsSpeed;
    			}
    			set $@PoringSlotsSpeed,$@PoringSlotsSpeed+10;
    		}
    	set $@PoringSlotsTemp,rand(5,10);
    		for(set $@i,0;$@i<$@PoringSlotsTemp;set $@i,$@i+1){
    			movenpc "PoringSlotsPoint",$PoringSlotsX[$@PoringSlotsPoint],$PoringSlotsY[$@PoringSlotsPoint];
    			set $@PoringSlotsPoint,$@PoringSlotsPoint+1;
    			if($@PoringSlotsPoint>=28)
    			set $@PoringSlotsPoint,0;
    			set $@PoringSlotsSpeed,$@PoringSlotsSpeed+100;
    			sleep $@PoringSlotsSpeed;
    		}
    	set $@PoringSlotsTemp,rand(8,15);
    		for(set $@i,0;$@i<$@PoringSlotsTemp;set $@i,$@i+1){
    			movenpc "PoringSlotsPoint",$PoringSlotsX[$@PoringSlotsPoint],$PoringSlotsY[$@PoringSlotsPoint];
    			set $@PoringSlotsPoint,$@PoringSlotsPoint+1;
    			if($@PoringSlotsPoint>=28)
    			set $@PoringSlotsPoint,0;
    			set $@PoringSlotsSpeed,$@PoringSlotsSpeed+150;
    			sleep $@PoringSlotsSpeed;
    		}
    	switch($@PoringSlotsPoint)
    	{
    		case 6:case 20:
    			set $FSC_Win,0;break;
    		case 1:case 2:case 5:case 7:case 9:case 12:case 13:case 15:case 17:case 19:case 21:case 24:case 27:
    			set $FSC_Win,1;break;
    		case 4:case 10:case 14:case 18:case 23:case 26:
    			set $FSC_Win,2;break;
    		case 3:case 11:case 16:case 22:
    			set $FSC_Win,3;break;
    		case 8:case 0:
    			set $FSC_Win,4;break;
    		case 25:
    			set $FSC_Win,5;break;
    	}
    	specialeffect 577;
    	if($FSC_Win==0) { npctalk "Ups.. se detuvo en un Ghostring"; sleep 1000; npctalk "Todos Pierden... Muahaha!!!"; }
    	if($FSC_Win==1) { npctalk "La ruleta se detuvo en Poring, Aquel que aposto al poring ha ganado del doble de la inversion!"; sleep 1000; npctalk "Quien haya ganado, retire su premio!"; }
    	if($FSC_Win==2) { npctalk "La ruleta se detuvo en Drops, Aquel que aposto al Drops, ganaria el Triple de la Inversion"; sleep 1000; npctalk "Quien haya ganado, retire su premio!"; }
    	if($FSC_Win==3) { npctalk "La ruleta se detuvo en Poporing"; sleep 1000; npctalk "Gana x 5 tu inversion"; sleep 1000; npctalk "Retiren su premio si han ganado!"; }
    	if($FSC_Win==4) { npctalk "La ruleta se detuvo en el exquisito Angeling.. multiplicando la inversion x9"; sleep 1000; npctalk "El feliz ganador puede retirar su botin!"; }
    	if($FSC_Win==5) { npctalk "Oh por Dios, La ruleta se detuvo en el el Arch Angeling..."; sleep 1000; npctalk "Quien haya apostado al Arch Angeling habra multiplicado » 17 Veces lo que invirtio!!";}
    
    	donpcevent "PoringSlotsChoose#01::OnResetRoom";
    	donpcevent "PoringSlotsChoose#02::OnResetRoom";
    	donpcevent "PoringSlotsChoose#03::OnResetRoom";
    	donpcevent "PoringSlotsChoose#04::OnResetRoom";
    	donpcevent "PoringSlotsChoose#05::OnResetRoom";
    	donpcevent "PoringSlotsChoose#0"+$FSC_Win+"::OnEffect";
    	set $@PoringSlotsPlaying,0;
    	set $@PoringSlotsRunning,0;
    	end;
    }
    
    function	script	FuncPoringSlotsChoose	{
    
    	if($@PoringSlotsRunning==1){
    		mes "[ Poring Slots Play ]";
    		mes "- Hay un juego en proceso";
    		mes "- debes esperar que termine para volver a apostar.";
    		close;
    		end;
    	}
    
    	set .@FSC_Poring,getarg(0);
    	set .@FSC_GetPoint,getarg(1);
    
    	if(getd("FSC_Coin"+.@FSC_Poring)>0){
    		if(getd("PoringSlotsRound"+.@FSC_Poring)==$PoringSlotsRound-1&&.@FSC_Poring==$FSC_Win){
    			set .@FSC_Temp,getd("FSC_Coin"+.@FSC_Poring)*.@FSC_GetPoint;
    			getitem $PSRe,.@FSC_Temp;
    			specialeffect2 18;
    			setd "FSC_Coin"+.@FSC_Poring,0;
    			mes "[ Poring Slots Play ]";
    			mes "- Ganaste la bolsa de ^00AA55"+getitemname($PSRe)+"^000000";
    			mes "- Premio [ ^AA3366"+.@FSC_Temp+"^000000 ]";
    			close;
    		}
    	}
    	mes "[ Poring Slots Play ]";
    	mes "Deseas apostar ^00AA55"+getitemname($PSItem)+"^000000?";
    	mes "- Ganaras ^0000FF"+getitemname($PSRe)+" * "+.@FSC_GetPoint+"^000000 ";
    	if(getd("FSC_Coin"+.@FSC_Poring)!=0&&getd("PoringSlotsRound"+.@FSC_Poring)==$PoringSlotsRound){
    		mes "- La bolsa actual es [ ^AA3333"+getd("FSC_Coin"+.@FSC_Poring)+"^000000 ]";
    		mes "- Habla conmigo despues de girar y te entregare tu premio.";
    		close;
    	}
    	mes "^FF0000Consejos:^000000";	
    	mes "El stack maximo es de ^FF000030,000 Coins^000000";
    	mes "Conserva monedas para pagar el lanzamiento.";
    	next;
    	input .@FSC_Input;
    	mes "[ Poring Slots Play ]";
    	mes "- Haz ingresado [ ^2236BB"+.@FSC_Input+"^000000 ] unidades.";
    	next;
    	if(select("- Confirmar","- Cambie de idea")==2)
    		close;
    	if(countitem($PSItem)<.@FSC_Input){
    		mes "[ Poring Slots Play ]";
    		mes "No tienes suficientes  [ ^2236BB"+getitemname($PSItem)+"^000000 ] para la cantidad que elegiste.";
    		close;
    		return;
    	}
    	if(.@FSC_Input==0){
    		mes "[ Poring Slots Play ]";
    		mes "Debes apostar como minimo ^0000FF1^000000 moneda..";
    		close;
    		return;
    	}
    	delitem $PSItem,.@FSC_Input;
    	setd "FSC_Coin"+.@FSC_Poring,.@FSC_Input;
    	delwaitingroom "PoringSlotsChoose#0"+.@FSC_Poring;
    	setd "$FSC_Coin"+.@FSC_Poring,getd("$FSC_Coin"+.@FSC_Poring)+.@FSC_Input;
    	setd "$FSC_Player"+.@FSC_Poring,getd("$FSC_Player"+.@FSC_Poring)+1;
    	waitingroom "Bets ["+getd("$FSC_Player"+.@FSC_Poring)+"] Inv ["+getd("$FSC_Coin"+.@FSC_Poring)+"]",0;
    	setd "PoringSlotsRound"+.@FSC_Poring,$PoringSlotsRound;
    	mes "[ Poring Slots Play ]";
    	mes "Tu apuesta ha sido registrada, todavia puedes apostar a otros porings o lanzar la ruleta.";
    	mes "Buena suerte.";
    	close;
    	return;
    }
    
    poring_w01,96,80,4	script	PoringSlotsChoose#01	1002,{
    	callfunc("FuncPoringSlotsChoose",1,2);
    end;
    OnEffect:
    	for(set $@FSC_i,1;$@FSC_i<15;set $@FSC_i,$@FSC_i+1){
    		specialeffect 377;
    		sleep 800;
    		}
    	end;
    OnResetRoom:
    	delwaitingroom "PoringSlotsChoose#01";
    	set $FSC_Coin1,0;
    	set $FSC_Player1,0;
    	waitingroom"Bets [0] $ [0]",0;
    	end;
    OnInit:
    	waitingroom"Bets [0] $ [0]",0;
    	end;
    }
    
    poring_w01,96,75,4	script	PoringSlotsChoose#02	1113,{
    	callfunc("FuncPoringSlotsChoose",2,3);
    end;
    OnEffect:
    	for(set $@FSC_i,1;$@FSC_i<15;set $@FSC_i,$@FSC_i+1){
    		specialeffect 377;
    		sleep 800;
    		}
    	end;
    OnResetRoom:
    	delwaitingroom "PoringSlotsChoose#02";
    	set $FSC_Coin2,0;
    	set $FSC_Player2,0;
    	waitingroom"Bets [0] $ [0]",0;
    	end;
    OnInit:
    	waitingroom"Bets [0] $ [0]",0;
    	end;
    }
    
    poring_w01,96,70,4	script	PoringSlotsChoose#03	1031,{
    	callfunc("FuncPoringSlotsChoose",3,5);
    end;
    OnEffect:
    	for(set $@FSC_i,1;$@FSC_i<15;set $@FSC_i,$@FSC_i+1){
    		specialeffect 377;
    		sleep 800;
    		}
    	end;
    OnResetRoom:
    	delwaitingroom "PoringSlotsChoose#03";
    	set $FSC_Coin3,0;
    	set $FSC_Player3,0;
    	waitingroom"Bets [0] $ [0]",0;
    	end;
    OnInit:
    	waitingroom"Bets [0] $ [0]",0;
    	end;
    }
    
    poring_w01,101,72,4	script	PoringSlotsChoose#04	1096,{
    	callfunc("FuncPoringSlotsChoose",4,9);
    end;
    OnEffect:
    	for(set $@FSC_i,1;$@FSC_i<15;set $@FSC_i,$@FSC_i+1){
    		specialeffect 377;
    		sleep 800;
    		}
    	end;
    OnResetRoom:
    	delwaitingroom "PoringSlotsChoose#04";
    	set $FSC_Coin4,0;
    	set $FSC_Player4,0;
    	waitingroom"Bets [0] $ [0]",0;
    	end;
    OnInit:
    	waitingroom"Bets [0] $ [0]",0;
    	end;
    }
    
    poring_w01,101,77,4	script	PoringSlotsChoose#05	1388 ,{
    	callfunc("FuncPoringSlotsChoose",5,17);
    	end;
    OnEffect:
    	for(set $@FSC_i,1;$@FSC_i<15;set $@FSC_i,$@FSC_i+1){
    		specialeffect 377;
    		sleep 800;
    		}
    	end;
    OnResetRoom:
    	delwaitingroom "PoringSlotsChoose#05";
    	set $FSC_Coin5,0;
    	set $FSC_Player5,0;
    	waitingroom"Bets [0] $ [0]",0;
    	end;
    OnInit:
    	waitingroom"Bets [0] $ [0]",0;
    	end;
    }

     

    english ver please ?

  2. Hi, All im was trying to make instance always reset every 4 AM

     

    this is my quest_db
     

    - Id: 9998
        Title: "Memorial Dungeon: Champion"
        TimeLimit: 4h
    - Id: 9999
        Title: "Memorial Dungeon: Champion"
        TimeLimit: +4h


    my script
     

    if (checkquest(9998,PLAYTIME) == 2) {
    		erasequest 9998;// Memorial Dungeon: Champion
    		erasequest 9999;
    	}
    	else if (checkquest(9999,PLAYTIME) == 2) {// Memorial Dungeon: Champion
    		mes "^ff0000Memorial Dungeon cannot be reentered within 8 hours after your last entrance.^000000";
    		mes "Reset Every 04:00 AM";
    		close;
    	}
    
    Create INSTANCE

     

    but not working

    The result if i use that setting
    player didn't get any delay to create instance

    so player can do instance unlimited

  3. 33 minutes ago, dolphincute said:

    i have remove it, but still get some error

     

    robeerror.png

    you missing some file 
    on texture/À¯ÀúÀÎÅÍÆäÀ̽º/item/Yourspritename.bmp
    texture/À¯ÀúÀÎÅÍÆäÀ̽º/Collection/yourspritename.bmp

  4. On 2/22/2020 at 8:50 PM, Vy Low said:

     but inorder to check that the proxy is working as intended you need to check from login > char > map, the best way to do it is try logging in to login server and check the ip connected to the login port, then proceed to char ip, then check again on the char server if proxy ip is connected to the char server port as well as the map server, this is one way to ensure that proxy is working properly, otherwise it will only read the proxy ip on the login server, but then uses players ip when connecting to char and map.

    Hi, Vy low can you explain more detail about your step to check it that?

    what config do you use to make scenario like this

    Quote

    but then uses players ip when connecting to char and map.


     

  5. On 3/30/2020 at 5:50 AM, luxus2311 said:

    If I encrypt my grf would they be able to change its files and run the game normally?

     

    Answered.

    encrypt didn't make other poeople can merge so yess what ever your encrypt player still can modification your grf LOL
    encrypt purpose only  for pervent other poeple still your unique sprite ?

  6. On 12/20/2018 at 1:16 AM, crossworld said:

    I was just testing your script on my test server and every time i log into the server i get the next days reward. It also happens when i use the @ commands it will continue to give the next days reward.  I didn't modify the script in any way.  Does this happen to anybody else?

    hi i got this issue too 

    its there any config i missed?

  7. On 1/14/2019 at 4:22 AM, AnnieRuru said:
    
    /* can only bet these item types
    - `IT_WEAPON`: 4
    - `IT_ARMOR`: 5
    - `IT_CARD`: 6
    - `IT_PETEGG`: 7
    - `IT_PETARMOR`: 8
    */
    prontera,155,185,5	script	sfksfjhsfj	1_F_MARIA,{
    	if ( .start == 1 ) goto L_StartEvent; // goto is evil, but it actually helps make script higher readability
    	else if ( .start == 2 ) {
    		mes "Currently rolling dice ... please be patient";
    		close;
    	}
    	mes "select an item from your inventory to bet";
    	next;
    	getinventorylist;
    	for ( .@i = 0; .@i < @inventorylist_count; ++.@i ) {
    		if ( @inventorylist_equip[.@i] == 0 && @inventorylist_identify[.@i] == true && @inventorylist_attribute[.@i] == false && @inventorylist_expire[.@i] == 0 && @inventorylist_bound[.@i] == BOUND_NONE && ( getiteminfo( @inventorylist_id[.@i], 2 ) == IT_WEAPON || getiteminfo( @inventorylist_id[.@i], 2 ) == IT_ARMOR || getiteminfo( @inventorylist_id[.@i], 2 ) == IT_CARD || getiteminfo( @inventorylist_id[.@i], 2 ) == IT_PETEGG || getiteminfo( @inventorylist_id[.@i], 2 ) == IT_PETARMOR ) ) {
    			.@itemname$ = callfunc( "getitemname2", @inventorylist_id[.@i], @inventorylist_identify, @inventorylist_refine, @inventorylist_attribute, @inventorylist_card1, @inventorylist_card2, @inventorylist_card3, @inventorylist_card4 );
    			.@menu$ = .@menu$ + @itemname2_info$ + .@itemname$ +"; "+ @inventorylist_amount[.@i] +" ea.:";
    			.@id[.@c] = @inventorylist_id[.@i];
    			.@refine[.@c] = @inventorylist_refine[.@i];
    			.@card1[.@c] = @inventorylist_card1[.@i];
    			.@card2[.@c] = @inventorylist_card2[.@i];
    			.@card3[.@c] = @inventorylist_card3[.@i];
    			.@card4[.@c] = @inventorylist_card4[.@i];
    			++.@c;
    		}
    	}
    	if ( !.@c ) {
    		mes "you don't have anything useful to bet !";
    		close;
    	}
    	.@s = select(.@menu$) -1;
    	.@id = .@id[.@s];
    	.@refine = .@refine[.@s];
    	.@card1 = .@card1[.@s];
    	.@card2 = .@card2[.@s];
    	.@card3 = .@card3[.@s];
    	.@card4 = .@card4[.@s];
    	.@itemname$ = callfunc( "getitemname2", .@id, 1, .@refine, 0, .@card1, .@card2, .@card3, .@card4 );
    	mes "Are you sure you want to auction your";
    	mes .@itemname$ +" away ?";
    	next;
    	if ( select( "Yes", "No" ) == 2 ) close;
    	mes "select the amount of "+ getitemname( .currency ) +" for the player to bet";
    	next;
    	if ( input( .@amount, 1, 30000 ) ) {
    		mes "you have input invalid value";
    		close;
    	}
    	mes "Confirm ?";
    	mes .@itemname$;
    	mes .@amount +"x "+ getitemname( .currency );
    	if ( select ( "Yes", "No" ) == 2 ) close;
    	close2;
    	if ( !countitem2( .@id, 1, .@refine, 0, .@card1, .@card2, .@card3, .@card4 ) ) {
    		dispbottom "please don't hack";
    		end;
    	}
    	if ( .start != 0 ) {
    		dispbottom "Too slow, somebody make it faster than you";
    		end;
    	}
    	announce strcharinfo(0) +" is trying to auction "+ .@itemname$ +" !!", bc_all;
    	delitem2 .@id, 1, 1, .@refine, 0, .@card1, .@card2, .@card3, .@card4;
    	.id = .@id;
    	.refine = .@refine;
    	.card1 = .@card1;
    	.card2 = .@card2;
    	.card3 = .@card3;
    	.card4 = .@card4;
    	.aid = getcharid(3);
    	.cid = getcharid(0);
    	.amount = .@amount;
    	.itemname$ = .@itemname$;
    	.start = true;
    	initnpctimer;
    	end;
    L_StartEvent:
    	mes "Currently there are "+ .total_bet +" players betting.";
    	for ( .@i = 0; .@i < .total_bet; ++.@i )
    		mes ( .@i +1 )+". "+ rid2name(.bet_aid[.@i]);
    	next;
    	if ( getcharid(3) == .aid ) {
    		mes "You are the one who placed this bet";
    		close;
    	}
    	if ( .total_bet >= .register_limit ) {
    		mes "only accept 10 maximum bets";
    		close;
    	}
    	.@i = 0;
    	while ( .bet_aid[.@i] != getcharid(3) && .@i < .total_bet ) ++.@i;
    	if ( .@i < .total_bet ) {
    		mes "You already placed the bet";
    		close;
    	}
    	mes "Are you sure you want bet";
    	mes .amount +"x "+ getitemname( .currency ) +" for ";
    	mes .itemname$ +" ?";
    	next;
    	if ( select ( "Yes", "No" ) == 2 ) close;
    	if ( countitem( .currency ) < .amount ) {
    		mes "the minimum bet is "+ .amount +"x "+ getitemname( .currency );
    		close;
    	}
    	if ( .start != 1 ) {
    		mes "Too late";
    		close;
    	}
    	delitem .currency, .amount;
    	announce strcharinfo(0) +" has placed "+( ( Sex )? "his":"her" )+" bet for "+ .itemname$, bc_npc|bc_area;
    	.bet_aid[.total_bet] = getcharid(3);
    	.bet_cid[.total_bet] = getcharid(0);
    	++.total_bet;
    	close;
    OnTimer15000: // 15 seconds
    	stopnpctimer;
    	.start = 2;
    	announce "betting is now close. Start counting now", bc_npc|bc_area;
    	sleep 1000;
    	announce "There are "+ .total_bet +" players bet on "+ .itemname$, bc_npc|bc_area;
    	sleep 1000;
    	.@amount = 1; // this stupid mail system ...
    	.@zeny = 0;
    	.@give_amount = .amount * .total_bet; // why do I have to make these stupid variables ??
    	if ( !.total_bet ) {
    		announce "this auction has failed because nobody is joining", bc_npc|bc_area;
    		mail .cid, "Rolling in the Deep", "Prize", "Nobody bet on your item, you get a refund", .@zeny, .id, .@amount, .card1, .card2, .card3, .card4;
    	}
    	else {
    		.@r = rand(.total_bet);
    		announce "The winner is "+ rid2name(.bet_aid[.@r]) +" !!", bc_npc|bc_area;
    		mail .bet_cid[.@r], "Rolling in the Deep", "Prize", "This is your prize.", .@zeny, .id, .@amount, .card1, .card2, .card3, .card4;
    		mail .cid, "Rolling in the Deep", "Prize", "There were "+ .total_bet +" players bet on your item.", .@zeny, .currency, .@give_amount;
    	}
    	.start = false;
    	.id = 0;
    	.refine = 0;
    	.card1 = 0;
    	.card2 = 0;
    	.card3 = 0;
    	.card4 = 0;
    	.aid = 0;
    	.amount = 0;
    	.itemname$ = "";
    	deletearray .bet_aid;
    	deletearray .bet_cid;
    	.total_bet = 0;
    	end;
    OnInit:
    	.currency = 7539; // Poring_Coin
    	.register_limit = 10; // only 10 people can join
    	end;
    }

     

    LOL when I saw n0ttt post came out I was like ... WAH~~
    somebody can actually finish script faster than me @_@

     

    EDIT: forgot to tell the getitemname2 function, not from this topic ... 2.3
    but from hercules ones
    , 2.4
    https://herc.ws/board/topic/11275-getitemname2/

    rathena one is version 2.3 made on 2013
    hercules has version 2.4 made on 2015

     

    EDIT2: Radian say cannot bet equipped items, so just add @inventorylist_equip check

    hi Annie how to change item currency into zeny?

×
×
  • Create New...