Jump to content

hendra814

Members
  • Posts

    1188
  • Joined

  • Last visited

  • Days Won

    17

Posts posted by hendra814

  1. 12 hours ago, eusouteupai said:

    itemshop don't work anymore.

     

    Example:
    prontera,147,166,3    itemshop    Donation Items    48,7179,12114:1,12115:1,12116:1,12117:1

     

    Don't work.

     

    Just the 1st item appear and the rest unknown item, and are normal itens that if do in @item work normally.

     

    image.png.76399e24a58d100c603889145f4f2896.png

     

    image.png.334f14343e1c554a2ddad463948a047b.png

    i think you can try with barter script.

  2. On 4/11/2024 at 6:27 PM, zeonronin said:

    Hello, the script work well with Collection Quest, but the Hunting Quest doesnt increase the monster quote, the numbber doesnt update when i kill the targeted monster, any solution ?

    try this 1.6.6 version 

    //===== rAthena Script =======================================
    //= tr0n's Questboard
    //===== By: ==================================================
    //= tr0n
    //===== Current Version: =====================================
    //= 1.6.6
    //===== Description: =========================================
    //= Easily add collection and hunting quests.
    //===== Changelogs: ==========================================
    // 1.0.0 Release
    // 1.1.0 Added zeny reward
    // 1.2.0 Rewrote checkmob and killcounter
    // 1.3.1 Added level restriction
    // 1.3.4 Added Reward Item Amount
    // 1.4.4 Added Quest delay
    // 1.5.4 Added repeatable Quests
    // 1.6.4 Added party support
    // 1.6.5 Bug fixes for party support
    // 1.6.6 Bug fixes for delay time does not appear [mazvi]
    //============================================================
    prontera,159,192,4	script	Questboard	4_BOARD3,{
    
    	if(c_run==true){
    		mes "[^FF7700Questboard^000000]";
    		mes "^0000FF"+getd("." + currentquest$ + "_collectionname$")+"^000000";
    		mes "--------------------------------";
    		set .@size, getarraysize(getd("."+ currentquest$ + "_collectionitem"));
    		for( set .@j, 0; .@j < .@size; set .@j,.@j+2){
    			mes "^FF0000"+getitemname(getd("."+currentquest$+"_collectionitem["+.@j+"]"))+" - "+countitem(getd("."+currentquest$+"_collectionitem["+.@j+"]"))+"/"+getd("."+currentquest$+"_collectionitem["+(.@j+1)+"]")+" ea.^000000";
    		}
    		mes "--------------------------------";
    		mes "[Reward]";
    		mes "Item: ^0000FF"+((getd("." +currentquest$+"_collectionprize"))?getitemname(getd("." +currentquest$+"_collectionprize"))+" - "+getd("." +currentquest$+"_collectionamount")+" ea.^000000":"Nothing^000000");
    		mes "Zeny: ^0000FF"+getd("." +currentquest$+"_collectionzeny")+"^000000";
    		mes "Base EXP: ^0000FF"+getd("." +currentquest$+"_collectionexp["+0+"]")+"^000000";
    		mes "Job EXP: ^0000FF"+getd("." +currentquest$+"_collectionexp["+1+"]")+"^000000";
    		next;
    		if(select("Finish:Abort") == 2){
    			mes "[^FF7700Questboard^000000]";
    			mes "Quest aborted.";
    			set currentquest$, "";
    			set c_run, false;
    			close;
    		}
    		goto L_checkitems;
    	}
    
    	if(h_run==true){
    		mes "[^FF7700Questboard^000000]";
    		mes "^0000FF"+getd("." + currentquest$ + "_huntingname$")+"^000000";
    		mes "--------------------------------";
    		set .@size, getarraysize(getd("."+ currentquest$ + "_huntingmob"));
    		for( set .@j, 0; .@j < .@size; set .@j,.@j+2){
    			set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@j)+"]");
    			mes "^FF0000"+strmobinfo(1,getd("."+currentquest$+"_huntingmob["+.@j+"]"))+" - "+getd(currentquest$+"_"+.@currentmob+"_"+(.@j+1)+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+(.@j+1)+"]")+" ea.^000000";
    		}
    		mes "--------------------------------";
    		mes "[Reward]";
    		mes "Item: ^0000FF"+((getd("." +currentquest$+"_huntingprize"))?getitemname(getd("." +currentquest$+"_huntingprize"))+" - "+getd("." +currentquest$+"_huntingamount")+" ea.^000000":"Nothing^000000");
    		mes "Zeny: ^0000FF"+getd("." +currentquest$+"_huntingzeny")+"^000000";
    		mes "Base EXP: ^0000FF"+getd("." +currentquest$+"_huntingexp["+0+"]")+"^000000";
    		mes "Job EXP: ^0000FF"+getd("." +currentquest$+"_huntingexp["+1+"]")+"^000000";
    		next;
    		if(select("Finish:Abort") == 2){
    			mes "[^FF7700Questboard^000000]";
    			mes "Quest aborted.";
    			for(set .@x, 1; .@x < .@size; set .@x,.@x+2){
    				set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@x-1)+"]");
    				setd(currentquest$+"_"+.@currentmob+"_"+.@x+"_killcount", 0);
    			}
    			set currentquest$, "";
    			set h_run, false;
    			close;
    		}
    		goto L_checkmobs;
    	}
    
    	mes "[^FF7700Questboard^000000]";
    	mes "Select category:";
    	next;
    
    	switch(select((.collection)?"Collection Quests":"",
    				  (.hunting)?"Hunting Quests":"",
    				  "Exit")) {
    
    	case 1:
    		set .@collectmenu$, "";
    		for( set .@i,0; .@i < .collectionquestcount; set .@i,.@i+1){
    			if (.@i) set .@collectmenu$,.@collectmenu$+":";
    			set .@collectmenu$, .@collectmenu$ + "[" + getd("." +(.@i+1)+"_collectionmin") + " - " + getd("." +(.@i+1)+"_collectionmax") + "] " + getd("." + (.@i+1) + "_collectionname$");
    		}
    		set .@selection,select(.@collectmenu$);
    		if(.quest_repeat == true){
    			if(gettimetick(2) < getd(.@selection + "_collection_delay")){
    				mes "[^FF7700Questboard^000000]";
    				mes "You have to wait ^0000FF"+Time2Str(getd(.@selection + "_collection_delay"))+"^000000 to do this quest again.";
    				close;
    			}
    		}
    		else{
    			if(getd(.@selection + "_collection_repeat") == true){
    				mes "[^FF7700Questboard^000000]";
    				mes "You already did this quest.";
    				mes "Please choose another one.";
    				close;
    			}
    		}
    		mes "[^FF7700Questboard^000000]";
    		mes "^0000FF"+getd("." + .@selection + "_collectionname$")+"^000000";
    		mes "--------------------------------";
    		set .@size, getarraysize(getd("."+ .@selection + "_collectionitem"));
    		for( set .@j, 0; .@j < .@size; set .@j,.@j+2){
    			mes "^FF0000"+getitemname(getd("."+.@selection+"_collectionitem["+.@j+"]"))+" - "+getd("."+.@selection+"_collectionitem["+(.@j+1)+"]")+" ea.^000000";
    		}
    		mes "--------------------------------";
    		mes "[Reward]";
    		mes "Item: ^0000FF"+((getd("." +.@selection+"_collectionprize"))?getitemname(getd("." +.@selection+"_collectionprize"))+" - "+getd("." +.@selection+"_collectionamount")+" ea.^000000":"Nothing^000000");
    		mes "Zeny: ^0000FF"+getd("." +.@selection+"_collectionzeny")+"^000000";
    		mes "Base EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+0+"]")+"^000000";
    		mes "Job EXP: ^0000FF"+getd("." +.@selection+"_collectionexp["+1+"]")+"^000000";
    		next;
    		if(select("Accept:Decline") == 2){
    			close;
    		}
    		if(BaseLevel >= getd("." +.@selection+"_collectionmin") && BaseLevel <= getd("." +.@selection+"_collectionmax")){
    			mes "[^FF7700Questboard^000000]";
    			mes "Quest accepted.";
    			set c_run, true;
    			set currentquest$, .@selection;
    			close;
    		}
    		else{
    			mes "[^FF7700Questboard^000000]";
    			mes "You don't have the required";
    			mes "level to do this quest.";
    			close;
    		}
    
    	case 2:
    		set .@huntmenu$, "";
    		for( set .@i,0; .@i < .huntingquestcount; set .@i,.@i+1){
    			if (.@i) set .@huntmenu$,.@huntmenu$+":";
    			set .@huntmenu$, .@huntmenu$ + "[" + getd("." +(.@i+1)+"_huntingmin") + " - " + getd("." +(.@i+1)+"_huntingmax") + "] " + getd("." + (.@i+1) + "_huntingname$");
    		}
    		set .@selection,select(.@huntmenu$);
    		if(.quest_repeat == true){
    			if(gettimetick(2) < getd(.@selection + "_hunting_delay")){
    				mes "[^FF7700Questboard^000000]";
    				mes "You have to wait ^0000FF"+Time2Str(getd(.@selection + "_hunting_delay"))+"^000000 to do this quest again.";
    				close;
    			}
    		}
    		else{
    			if(getd(.@selection + "_hunting_repeat") == true){
    				mes "[^FF7700Questboard^000000]";
    				mes "You already did this quest.";
    				mes "Please choose another one.";
    				close;
    			}
    		}
    		mes "[^FF7700Questboard^000000]";
    		mes "^0000FF"+getd("." + .@selection + "_huntingname$")+"^000000";
    		mes "--------------------------------";
    		set .@size, getarraysize(getd("."+ .@selection + "_huntingmob"));
    		for( set .@j, 0; .@j < .@size; set .@j,.@j+2){
    			mes "^FF0000"+strmobinfo(1,getd("."+.@selection+"_huntingmob["+.@j+"]"))+" - "+getd("."+.@selection+"_huntingmob["+(.@j+1)+"]")+" ea.^000000";
    		}
    		mes "--------------------------------";
    		mes "[Reward]";
    		mes "Item: ^0000FF"+((getd("." +.@selection+"_huntingprize"))?getitemname(getd("." +.@selection+"_huntingprize"))+" - "+getd("." +.@selection+"_huntingamount")+" ea.^000000":"Nothing^000000");
    		mes "Zeny: ^0000FF"+getd("." +.@selection+"_huntingzeny")+"^000000";
    		mes "Base EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+0+"]")+"^000000";
    		mes "Job EXP: ^0000FF"+getd("." +.@selection+"_huntingexp["+1+"]")+"^000000";
    		next;
    		if(select("Accept:Decline") == 2){
    			close;
    		}
    		if(BaseLevel >= getd("." +.@selection+"_huntingmin") && BaseLevel <= getd("." +.@selection+"_huntingmax")){
    			mes "[^FF7700Questboard^000000]";
    			mes "Quest accepted.";
    			set h_run, true;
    			set currentquest$, .@selection;
    			close;
    		}
    		else{
    			mes "[^FF7700Questboard^000000]";
    			mes "You don't have the required";
    			mes "level to do this quest.";
    			close;
    		}
    
    	case 3:
    		close;
    	}
    
    L_checkitems:
    	set .@size, getarraysize(getd("."+currentquest$+"_collectionitem"));
    	for( set .@k,0; .@k < .@size; set .@k,.@k+2){
    		if(countitem(getd("."+currentquest$+"_collectionitem["+.@k+"]"))>=getd("."+currentquest$+"_collectionitem["+(.@k+1)+"]")){
    			set .@checkitem,.@checkitem+2;
    		}
    	}
    	if(.@checkitem<.@size){
    		mes "[^FF7700Questboard^000000]";
    		mes "You don't have everything.";
    		close;
    	}
    	for( set .@delcount,0; .@delcount < .@size; set .@delcount,.@delcount+2){
    		delitem getd("."+currentquest$+"_collectionitem["+.@delcount+"]"),getd("."+currentquest$+"_collectionitem["+(.@delcount+1)+"]");
    	}
    	mes "[^FF7700Questboard^000000]";
    	mes "Congratulation! Here is your Reward.";
    	if(getd("." +currentquest$+"_collectionprize")!=0) getitem(getd("." +currentquest$+"_collectionprize"),getd("." +currentquest$+"_collectionamount"));
    	set Zeny,Zeny+getd("." +currentquest$+"_collectionzeny");
    	getexp getd("." +currentquest$+"_collectionexp["+0+"]"),getd("." +currentquest$+"_collectionexp["+1+"]");
    	setd(currentquest$ + "_collection_delay"),gettimetick(2)+.quest_delay;
    	setd(currentquest$ + "_collection_repeat"),true;
    	set currentquest$, "";
    	set c_run, false;
    	close;
    
    L_checkmobs:
    	set .@size, getarraysize(getd("."+currentquest$+"_huntingmob"));
    	set .@goal, .@size/2;
    	for(set .@i, 1; .@i < .@size; set .@i,.@i+2){
    		set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]");
    		if(getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")==getd("."+currentquest$+"_huntingmob["+.@i+"]")){
    			set .@checkmonster, .@checkmonster+1;
    			if(.@checkmonster==.@goal){
    				goto L_checkmobs2;
    			}
    			continue;
    		}
    		goto L_checkmobs2;
    	}
    
    L_checkmobs2:
    	if(.@checkmonster<.@goal){
    		mes "[^FF7700Questboard^000000]";
    		mes "You didn't kill everything.";
    		close;
    	}
    	mes "[^FF7700Questboard^000000]";
    	mes "Congratulation! Here is your Reward.";
    	set .@size, getarraysize(getd("."+currentquest$+"_huntingmob"));
    	for(set .@x, 1; .@x < .@size; set .@x,.@x+2){
    		set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@x-1)+"]");
    		setd(currentquest$+"_"+.@currentmob+"_"+.@x+"_killcount", 0);
    	}
    	if(getd("." +currentquest$+"_huntingprize")!=0) getitem(getd("." +currentquest$+"_huntingprize"),getd("." +currentquest$+"_huntingamount"));
    	set Zeny, Zeny+getd("." +currentquest$+"_huntingzeny");
    	getexp getd("." +currentquest$+"_huntingexp["+0+"]"),getd("." +currentquest$+"_huntingexp["+1+"]");
    	setd(currentquest$ + "_hunting_delay"),gettimetick(2)+.quest_delay;
    	setd(currentquest$ + "_hunting_repeat"),true;
    	set currentquest$, "";
    	set h_run, false;
    	close;
    
    OnNPCKillEvent:
    	if(h_run!=true) end;
    	set .@size, getarraysize(getd("."+currentquest$+"_huntingmob"));
    	for(set .@i, 1; .@i < .@size; set .@i,.@i+2){
    		if(killedrid==getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]")){
    			set .@currentmob, getd("."+currentquest$+"_huntingmob["+(.@i-1)+"]");
    			if(getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")<getd("."+currentquest$+"_huntingmob["+.@i+"]")){
    				setd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount", getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+1);
    				dispbottom getd("."+currentquest$+"_huntingname$")+": ["+strmobinfo(1,.@currentmob)+"] ("+ getd(currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount")+"/"+getd("."+currentquest$+"_huntingmob["+.@i+"]")+")";
    			}
    			if(getcharid(1) != 0 && .party_support == true){
    				getmapxy(.@map1$,.@x1,.@y1);
    				set .@killerid, getcharid(3);
    				set .@currentquest$, currentquest$;
    				getpartymember getcharid(1),1;
    				getpartymember getcharid(1),2;
    				for(set .@j, 0; .@j < $@partymembercount; .@j++){
    					if(isloggedin($@partymemberaid[.@j], $@partymembercid[.@j])){
    						if(h_run==true && $@partymemberaid[.@j] != .@killerid && .@currentquest$ == getvar(currentquest$, $@partymembercid[.@j]) && readparam(HP, $@partymembercid[.@j]) > 0){
    							getmapxy(.@map2$,.@x2,.@y2,BL_PC,rid2name($@partymemberaid[.@j]));
    							if(.@map1$ == .@map2$ && distance(.@x1,.@y1,.@x2,.@y2) < .party_range){
    								set .@kill_amt,getvar(getd(.@currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount"), $@partymembercid[.@j]);
    								set .@kill_goal,getd("."+.@currentquest$+"_huntingmob["+.@i+"]");
    								if(.@kill_amt<.@kill_goal)
    								{
    									setd(.@currentquest$+"_"+.@currentmob+"_"+.@i+"_killcount", .@kill_amt+1, $@partymembercid[.@j]);
    									dispbottom getd("."+.@currentquest$+"_huntingname$")+": ["+strmobinfo(1,.@currentmob)+"] ("+(.@kill_amt+1)+"/"+.@kill_goal+")", 0xB6FF00, $@partymembercid[.@j];
    								}
    							}
    						}
    					}
    				}
    			}
    			break;
    		}
    	}
    	end;
    
    OnInit:
    
    	function AddCollection;
    	function AddHunting;
    
    	//Activate/Deactivate quest categories (true/1 - activated, false/0 - deactivated)
    	set .collection, true;
    	set .hunting, true;
    
    	//Quest Delay (seconds)
    	//24 hours = 86400 seconds
    	set .quest_delay, 0;
    
    	//Activate/Deactivate repeatable quests (true/1 - activated, false/0 - deactivated)
    	set .quest_repeat, true;
    
    	//Activate/Deactivate party support (true/1 - activated, false/0 - deactivated)
    	set .party_support, true;
    
    	//Max range for party support (+- x & y coordinations)
    	set .party_range, 25;
    
    	//Checks if quests are loaded (prevents out of index)
    	if(.questsloaded==true) end;
    	set .questsloaded, true;
    
    	//Add Collection Quests here (You can add as many required items as you want)
    	//AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...);
    	
    	//Add Hunting Quests here (You can add as many required mobs as you want)
    	//AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...);
    	
    	end;
    
    	function AddCollection{
    		set .collectionquestcount,.collectionquestcount+1;
    		setd ("." +.collectionquestcount+"_collectionname$", getarg(0));
    		setd ("." +.collectionquestcount+"_collectionmin", getarg(1));
    		setd ("." +.collectionquestcount+"_collectionmax", getarg(2));
    		setd ("." +.collectionquestcount+"_collectionprize", getarg(3));
    		setd ("." +.collectionquestcount+"_collectionamount", getarg(4));
    		setd ("." +.collectionquestcount+"_collectionzeny", getarg(5));
    		set .@argcount, 6;
    		set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionexp"));
    		setd ("." +.collectionquestcount+"_collectionexp["+.@size+"]",getarg(.@argcount)); 
    		setd ("." +.collectionquestcount+"_collectionexp["+(.@size+1)+"]",getarg(.@argcount+1)); 
    		set .@argcount, .@argcount+2;
    		set .@size, getarraysize(getd("."+ .collectionquestcount + "_collectionitem"));
    		while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1){
    			setd ("."+.collectionquestcount+"_collectionitem["+.@size+"]",getarg(.@argcount)); 
    			setd ("."+.collectionquestcount+"_collectionitem["+(.@size+1)+"]",getarg(.@argcount+1));
    			set .@argcount,.@argcount+2;
    			set .@size, .@size+2;
    		}
    		return;
    	}
    
    	function AddHunting{
    		set .huntingquestcount,.huntingquestcount+1;
    		setd ("." +.huntingquestcount+"_huntingname$", getarg(0));
    		setd ("." +.huntingquestcount+"_huntingmin", getarg(1));
    		setd ("." +.huntingquestcount+"_huntingmax", getarg(2));
    		setd ("." +.huntingquestcount+"_huntingprize", getarg(3));
    		setd ("." +.huntingquestcount+"_huntingamount", getarg(4));
    		setd ("." +.huntingquestcount+"_huntingzeny", getarg(5));
    		set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingexp"));
    		set .@argcount, 6;
    		setd ("." +.huntingquestcount+"_huntingexp["+.@size+"]",getarg(.@argcount));
    		setd ("." +.huntingquestcount+"_huntingexp["+(.@size+1)+"]",getarg(.@argcount+1)); 
    		set .@argcount, .@argcount+2;
    		set .@size, getarraysize(getd("."+ .huntingquestcount + "_huntingmob"));
    		while(getarg(.@argcount,-1)!=-1 && getarg(.@argcount+1,-1)!=-1){
    			setd ("."+.huntingquestcount+"_huntingmob["+.@size+"]",getarg(.@argcount)); 
    			setd ("."+.huntingquestcount+"_huntingmob["+(.@size+1)+"]",getarg(.@argcount+1));
    			set .@argcount, .@argcount+2;
    			set .@size, .@size+2;
    		}
    		return;
    	}
    }

     

  3. 36 minutes ago, aleph075 said:

    on wich .grf file? 4jobs.grf or data.grf?

    Still dunno how the game could read a de encripted file, if you say "just copy it"

    are 4jobs.grf your custom grf, i yes put the file at this grf.

    try this step.

    1 create data folder and put the file like this path data/luafiles514/lua files/skillinfoz/skilldescript.lub

    image.png.7b65499453f039f0b42fefacaeb79402.png

    2. open 4jobs.grf using grf application, here as example using grf editor, at your grf righ click than choose add

    image.png.9c7a41d3ef82d1353947105e72ebadfd.png

    3. pick data folder directore point no 1

    image.png.eceebfeb785e3cf78ddbff0f44342fb1.png

    4. then click add, wait until the progress bar finished.

    image.png.918e9d489be92554950a544f58382567.png

    5. click file and then pick save.

     

    • Upvote 1
  4. 44 minutes ago, monyet said:

    bener jadi player nanti melihat kan dari semua perusahaan terdaftar mana yang paling banyak memberikan gaji , nah player sebagai pekerja dia akan memainkan mini game contohnya roulet atau tiktakto ataupun yang lain untuk minigamenya. Hingga nanti uang deposit yang di masukan oleh player selaku owner perusahaan habis uangnya dan ia wajib mengisi kembali ke npc tersebut

    mungkin bisa contek script ini 

     

  5. 48 minutes ago, monyet said:

    ok deh kalo begitu, sekarang lagi nyoba script selanjutnya 

    NPC Embiroc Factory // namanya XD
    - saat berinteraksi NPC , NPC akan meminta nama perusahaan
    - Npc akan meminta barang apa yang hendak di produksi ( sesuai dengan list item yang tersedia )
    - Deposit zeni untuk membayar gaji Karyawan ( karyawan disini adalah player lain )
    - Bisa melihat list Perusahaan berapa gaji yang di berikan ( untuk pekerja )
    - Item hasil produksi akan di kirim lewat E-mail
    - Karyawan mendapatkan gaji setelah dia selesai main mini game ( rencana menggunakan slot machine )
    - Item hasil produksi itu random 
    - Perusahaan yang bisa di daftarkan 1 player 1 aja, trus untuk ke seluruhan hanya ada 30 slot
    - pajak penghasilan tiap minggu berubah max 11 persen
    - jumblah hasil prokduksi random
    - Barang hasil produksi bisa di jual ke player lain, npc , atau npc Eden Group 

    rencananya si gitu ternyata sulit juga buatnya tapi tetap gw lakuin, dan nanti mohon bantuanya dalam koreksi ^^ Hendra dan Harvin

    ini buat script untuk player bisa buat quest untuk dikerjakan player lain?

  6. 50 minutes ago, monyet said:

    Terimakasih banyak @hendra814 udah sangat terbantu 

    Apakah mungkin jika npcnya saya cloning dan npc yang lain bisa jual item yagn berbeda ?

    Dear @monyet

    setau saya tidak bisa, kalau mau pakai item lain harus dibuat ulang dan diganti item ID nya.

  7. 9 hours ago, monyet said:

    apa yang anda perbaiki saya sangat terlolong dan sangat berterimakasih, lalu disini saya menambhakn beberapa script untuk broadcaster global setiap perubahan harga item dengan script sebagai brikut :

     

    prontera,158,180,4	script	Pedagang Grup Eden	100,{
    	mes "[VRO Asisten]";
    	mes "Halo! Apakah kamu ingin menjual Jellopy padaku? Saya membayar harga yang berbeda tergantung waktu!";
    	next;
    	// Tampilkan harga yang saat ini ditawarkan
    	mes "Saat ini, saya akan membeli Jellopy seharga "+.selected_price+" Zeny per buah.";
    	announce "Pedagang Grup Eden: Harga Jellopy saat ini adalah " + .selected_price + " Zeny per buah!", bc_all; // Mengumumkan harga kepada semua pemain
    	next;
    	if (countitem(909) < 1) {
    		mes "Tampaknya kamu tidak memiliki Jellopy!";
    		close;
    	}
    	mes "Berapa banyak Jellopy yang ingin kamu jual?";
    	.@selected_price = .selected_price; // Preserve price during user interaction
    	input .@amount;
    	if (.@amount <= 0 || .@amount > countitem(909)) {
    		mes "Mohon masukkan jumlah yang valid!";
    		close;
    	}
    	.@total_price = .@amount * .selected_price;
    	mes "Kamu akan mendapatkan "+ .@total_price +" Zeny untuk "+ .@amount +" Jellopy.";
    	next;
    	.@s = select("Jual:Ya,Tidak");
    	if (.@s == 1) {
    		if (.@selected_price != .selected_price) {
    			mes "Harga telah berubah, silahkan coba lagi!";
    			close;
    		}
    		delitem 909, .@amount; // Hapus Jellopy dari inventory pemain
    		Zeny += .@total_price; // Berikan Zeny kepada pemain
    		mes "Terima kasih telah menjual Jellopy-mu!";
    	} else {
    		mes "Mungkin lain waktu!";
    	}
    	close;
    
    OnInit:
    	.selected_price = rand(1, 500); // Inisialisasi harga secara acak antara 1 dan 500 Zeny
    	announce "Pedagang Grup Eden: Harga Jellopy saat ini adalah " + .selected_price + " Zeny per buah!", bc_all; // Mengumumkan harga awal kepada semua pemain
    	initnpctimer();
    	end;
    
    OnTimer900000: // Perbarui harga setiap 15 menit.
    	stopnpctimer();
    	.selected_price = rand(1, 500);
    	announce "Pedagang Grup Eden: Harga Jellopy telah berubah! Harga baru adalah " + .selected_price + " Zeny per buah!", bc_all;
    	initnpctimer();
    	end;
    }

    tapi disini setelah saya coba, setiap saya klick npc akan broadcast harganya, dan saya ingin disini walau player berinteraksi dengan NPC tidak akan broadcast berapa harga saat ini kecuali saat harga berubah saja, tolong bantu saya dimana salahnya.

    Disable line no 7 ini saya bantu update scriptnya

    prontera,158,180,4	script	Pedagang Grup Eden	100,{
    	mes "[VRO Asisten]";
    	mes "Halo! Apakah kamu ingin menjual Jellopy padaku? Saya membayar harga yang berbeda tergantung waktu!";
    	next;
    	// Tampilkan harga yang saat ini ditawarkan
    	mes "Saat ini, saya akan membeli Jellopy seharga "+.selected_price+" Zeny per buah.";
    	//announce "Pedagang Grup Eden: Harga Jellopy saat ini adalah " + .selected_price + " Zeny per buah!", bc_all; // Mengumumkan harga kepada semua pemain
    	next;
    	if (countitem(909) < 1) {
    		mes "Tampaknya kamu tidak memiliki Jellopy!";
    		close;
    	}
    	mes "Berapa banyak Jellopy yang ingin kamu jual?";
    	.@selected_price = .selected_price; // Preserve price during user interaction
    	input .@amount;
    	if (.@amount <= 0 || .@amount > countitem(909)) {
    		mes "Mohon masukkan jumlah yang valid!";
    		close;
    	}
    	.@total_price = .@amount * .selected_price;
    	mes "Kamu akan mendapatkan "+ .@total_price +" Zeny untuk "+ .@amount +" Jellopy.";
    	next;
    	.@s = select("Jual:Ya,Tidak");
    	if (.@s == 1) {
    		if (.@selected_price != .selected_price) {
    			mes "Harga telah berubah, silahkan coba lagi!";
    			close;
    		}
    		delitem 909, .@amount; // Hapus Jellopy dari inventory pemain
    		Zeny += .@total_price; // Berikan Zeny kepada pemain
    		mes "Terima kasih telah menjual Jellopy-mu!";
    	} else {
    		mes "Mungkin lain waktu!";
    	}
    	close;
    
    OnInit:
    	.selected_price = rand(1, 500); // Inisialisasi harga secara acak antara 1 dan 500 Zeny
    	announce "Pedagang Grup Eden: Harga Jellopy saat ini adalah " + .selected_price + " Zeny per buah!", bc_all; // Mengumumkan harga awal kepada semua pemain
    	initnpctimer();
    	end;
    
    OnTimer900000: // Perbarui harga setiap 15 menit.
    	stopnpctimer();
    	.selected_price = rand(1, 500);
    	announce "Pedagang Grup Eden: Harga Jellopy telah berubah! Harga baru adalah " + .selected_price + " Zeny per buah!", bc_all;
    	initnpctimer();
    	end;
    }

     

  8. for pvp point try using this, the point will change into roulette coin

    -	script	PVPPOINTS	-1,{
    OnPCKillEvent:
    	if ( getgmlevel() >= 60) {
    		end;
    	}
    	set PVPPoint,PVPPoint+1;
    	dispbottom "Gained 1 PVP Points. Total : "+ PVPPoint +" PVP Points.";
    	end;
    }
    
    Welgaia,203,119,4	script	PVP Point Trader	512,{
    
    setarray $@pvprewitem[0], 671,673,675;
    
    mes "Do you want to trade your point to coin?";
    mes "For 1 pvp point will get random 1 coin";
    mes "You have "+ PVPPoint +" PVP Points.";
    switch(select("Yes:No")){
        Case 1:
    		if (PVPPoint <= 0) {
    			next;
    			mes "You don't have PVP point.";
    			end;
    		}
    		next;
    		mes "Here your random coin.";
            getitem $@pvprewitem[rand(0,getarraysize($@pvprewitem)-1)],1;
    		set PVPPoint,PVPPoint-.point;
            close;
        Case 2:
        mes "ok bye";
        close;
    	}
    }

    For PVP ladder and dota sound try use script at this download page on folder NPC

     

  9. 4 hours ago, seenmylove said:

    Like this,but I want in NPC script do it

    Like when I input 1002 or poring

    NPC can let me choices go where and warp that

     

    Sorry,my English too bad.

    But thanks everyone who give me answer.

    for this you can use navigation function, for 2021 client and newer already have this.

  10. 9 hours ago, Racaae said:

    Updated:
    iRO 2024 OngoingQuestInfoList.lub

    Also Rachel and Veins board NPCs:

    rachel,87,73,0	script	Bounty Board 80-100#rac1	2_BULLETIN_BOARD,{
    	callfunc "F_Bounty_Board", 80, 100, 20, 2,
    		1030,	63516,		697125,		697125,	// ANACONDAQ
    		1782,	63517,		697125,		697125,	// ROWEEN
    		1776,	63518,		697125,		697125;	// SIROMA
    	end;
    
    OnInit:
    	questinfo(QTYPE_QUEST, QMARK_NONE, "BaseLevel >= 80 && BaseLevel <= 100");
    	end;
    }
    
    rachel,89,73,0	script	Bounty Board 100-120#rac2	2_BULLETIN_BOARD,{
    	callfunc "F_Bounty_Board", 100, 120, 20, 2,
    		1106,	63519,		270000, 	202500,	// DESERT_WOLF
    		1781,	63520,		202500,		151950,	// DROSERA
    		1629,	63521,		285000,		213750,	// HILL_WIND
    		1777,	63522,		408600,		396600,	// ICE_TITAN
    		1775,	63523,		408600,		396600;	// SNOWIER
    	end;
    
    OnInit:
    	questinfo(QTYPE_QUEST, QMARK_NONE, "BaseLevel >= 100 && BaseLevel <= 120");
    	end;
    }
    
    rachel,91,73,0	script	Bounty Board 120-140#rac3	2_BULLETIN_BOARD,{
    	callfunc "F_Bounty_Board", 120, 140, 20, 2,
    		1769,	63524,		589950,		442350,	// AGAV
    		1770,	63525,		553500,		415200,	// ECHIO
    		1773,	63526,		563700,		422700,	// HODREMLIN
    		1772,	63527,		518400,		388800,	// ISILLA
    		1774,	63528,		601200,		450900,	// SEEKER
    		1771,	63529,		486000,		364500;	// VANBERK
    	end;
    
    OnInit:
    	questinfo(QTYPE_QUEST, QMARK_NONE, "BaseLevel >= 120 && BaseLevel <= 140");
    	end;
    }
    
    veins,226,154,0	script	Bounty Board 80-100#vei1	2_BULLETIN_BOARD,{
    	callfunc "F_Bounty_Board", 80, 100, 20, 2,
    		1784,	63530,		380400, 	285450;	// STAPO
    	end;
    
    OnInit:
    	questinfo(QTYPE_QUEST, QMARK_NONE, "BaseLevel >= 80 && BaseLevel <= 100");
    	end;
    }
    
    veins,224,154,0	script	Bounty Board 100-120#vei2	2_BULLETIN_BOARD,{
    	callfunc "F_Bounty_Board", 100, 120, 20, 2,
    		1781,	63531,		270000,		202500,	// DROSERA
    		1783,	63532,		265350,		199050,	// GALION
    		1836,	63533,		380400,		285450,	// MAGMARING
    		1780,	63534,		291600,		218700;	// MUSCIPULAR
    	end;
    
    OnInit:
    	questinfo(QTYPE_QUEST, QMARK_NONE, "BaseLevel >= 100 && BaseLevel <= 120");
    	end;
    }
    
    veins,222,154,0	script	Bounty Board 120-140#vei3	2_BULLETIN_BOARD,{
    	callfunc "F_Bounty_Board", 120, 140, 20, 2,
    		1833,	63535,		839700,		1156200,	// KASA
    		1838,	63536,		553500,		565200,		// KNOCKER
    		1831,	63539,		887700,		1070700,	// SALAMANDER
    		1870,	63537,		837000,		627600,		// NECROMANCER
    		1865,	63538,		527100,		462900,		// RAGGED_ZOMBIE
    		1864,	63540,		590700,		405300;		// ZOMBIE_SLAUGHTER
    	end;
    
    OnInit:
    	questinfo(QTYPE_QUEST, QMARK_NONE, "BaseLevel >= 120 && BaseLevel <= 140");
    	end;
    }

    And \db\import\quest_db.yml

    # iRO Bounty Board Rachel and Veins
      - Id: 63516
        Title: Bounty Board Hunt
        Targets:
          - Mob: ANACONDAQ
            Count: 150
      - Id: 63517
        Title: Bounty Board Hunt
        Targets:
          - Mob: ROWEEN
            Count: 150
      - Id: 63518
        Title: Bounty Board Hunt
        Targets:
          - Mob: SIROMA
            Count: 150
      - Id: 63519
        Title: Bounty Board Hunt
        Targets:
          - Mob: DESERT_WOLF
            Count: 150
      - Id: 63520
        Title: Bounty Board Hunt
        Targets:
          - Mob: DROSERA
            Count: 150
      - Id: 63521
        Title: Bounty Board Hunt
        Targets:
          - Mob: HILL_WIND
            Count: 150
      - Id: 63522
        Title: Bounty Board Hunt
        Targets:
          - Mob: ICE_TITAN
            Count: 150
      - Id: 63523
        Title: Bounty Board Hunt
        Targets:
          - Mob: SNOWIER
            Count: 150
      - Id: 63524
        Title: Bounty Board Hunt
        Targets:
          - Mob: AGAV
            Count: 150
      - Id: 63525
        Title: Bounty Board Hunt
        Targets:
          - Mob: ECHIO
            Count: 150
      - Id: 63526
        Title: Bounty Board Hunt
        Targets:
          - Mob: HODREMLIN
            Count: 150
      - Id: 63527
        Title: Bounty Board Hunt
        Targets:
          - Mob: ISILLA
            Count: 150
      - Id: 63528
        Title: Bounty Board Hunt
        Targets:
          - Mob: SEEKER
            Count: 150
      - Id: 63529
        Title: Bounty Board Hunt
        Targets:
          - Mob: VANBERK
            Count: 150
      - Id: 63530
        Title: Bounty Board Hunt
        Targets:
          - Mob: STAPO
            Count: 150
      - Id: 63531
        Title: Bounty Board Hunt
        Targets:
          - Mob: DROSERA
            Count: 150
      - Id: 63532
        Title: Bounty Board Hunt
        Targets:
          - Mob: GALION
            Count: 150
      - Id: 63533
        Title: Bounty Board Hunt
        Targets:
          - Mob: MAGMARING
            Count: 150
      - Id: 63534
        Title: Bounty Board Hunt
        Targets:
          - Mob: MUSCIPULAR
            Count: 150
      - Id: 63535
        Title: Bounty Board Hunt
        Targets:
          - Mob: KASA
            Count: 150
      - Id: 63536
        Title: Bounty Board Hunt
        Targets:
          - Mob: KNOCKER
            Count: 150
      - Id: 63537
        Title: Bounty Board Hunt
        Targets:
          - Mob: NECROMANCER
            Count: 150
      - Id: 63538
        Title: Bounty Board Hunt
        Targets:
          - Mob: RAGGED_ZOMBIE
            Count: 150
      - Id: 63539
        Title: Bounty Board Hunt
        Targets:
          - Mob: SALAMANDER
            Count: 150
      - Id: 63540
        Title: Bounty Board Hunt
        Targets:
          - Mob: ZOMBIE_SLAUGHTER
            Count: 150

     

    Thanks for this, ar you have complete IRO bounty board quest?

  11. On 3/27/2024 at 11:47 AM, fakezinhu666 said:

    Title.

    char_name_option is set to 0.

    Client is 2022-04-06

    When I click 'create' in client, nothing happens. If I remove special characters (such as [ ] ™) then character is created.

    at conf folder open char_athena.conf

    at char_name_letters, put the symbol in the list

     

    image.png.81c3ea9ffbd816ed0ed7d8a42330a782.png

     

    image.png.892090a57a3ac9de0bc60ffd258cdfdc.png

  12. 11 hours ago, ManokStreZ said:

    hallo, i was download lateset rathena today
    also download kro RAG_SETUP_220706.exe

    for rathena connect usingMySql Workbrench tutorial Here
    everything fine nothing happen until i got like this pic..

    sclientinfo.xml
     

      Reveal hidden contents

    <?xml version="1.0" encoding="euc-kr" ?>
    <clientinfo>
        <desc>Ragnarok Client Information</desc>
        <servicetype>korea</servicetype>
        <servertype>primary</servertype>
        <connection>
            <display>Local</display>
                  <address>127.0.0.1</address>
                  <port>6900</port>
                  <version>55</version>
                  <langtype>1</langtype>
            <registrationweb>www.ragnarok.com</registrationweb>
            <loading>
                <image>loading00.jpg</image>
                <image>loading01.jpg</image>
                <image>loading02.jpg</image>
                <image>loading03.jpg</image>
                <image>loading04.jpg</image>
                <image>loading05.jpg</image>
                <image>loading06.jpg</image>
            </loading>
           </connection>
    </clientinfo>


    if you guys know something please tell me,,,thanks a lot

    123.jpg

    are you already create new account using account ID 2000000 at login table?

    Or try create it via client using user_M or user _F for the first time.

    after that only use user for ID.

×
×
  • Create New...