Jump to content

sader1992

Content Moderator
  • Posts

    1678
  • Joined

  • Last visited

  • Days Won

    72

Posts posted by sader1992

  1. i think you need to use another id

     

    there is ids for npcs and jobs you must not use one of them (i don't know the available IDs)

    try to put the monster into the id 3999 and tell me if the problem still there

     

     

    you can see all the already token IDs at jobidentity.lub and npcidentity.lub  (i don't know if there is more)

    but here you will see the ids so if your id is already id of npc then you can't click on the monster

  2. rAthena\npc\scripts_custom.conf

    open it and you will find there npcs

    search for //npc: npc/custom/warper.txt

    remove the // from the start

    npc: npc/custom/warper.txt

    and if you wanna add any npc just add the path in this file and it would be added to the server

    inside the game type @reloadscript to reload the npc files and it will show inside the game

    • Love 1
  3. you can but you will need bandwidth(in your host not you cuz every one will taake like 2g from it bandwidth)  aloooot and your players will need loong time to download

    and if someone fail will need to re download from the start etc

    i would suggest you upload to some website and tell your players to redownload the grf ( or just upload the full game)

     

    again bandwidth

    if you have 10 players you will need 20gig

    if you have 50 players you will need 100 gig

    this without uploading it and the failing times cuz it will happen :P

    and also the internet speed in your host

    • Upvote 1
  4. go to this path

    rAthena\npc\custom >>(all not official NPCs you will find them here)

    you will find warper.txt

    see how it work and make your own script

    there is no real way to learn how to make scripts

    if you know in development it will be easier for you

    but also if you test and see other scripts you will get to it

    • Love 1
  5. try id less then 5000 like 4000+

    like this

    4000,lif,Lif,Lif,105,400000,1,350000,224657,1,5000,6000,64,51,62,44,25,105,85,20,10,12,1,7,89,102774421,200,598,1056,336,0,0,0,0,0,0,0,7929,5,969,20,607,20,7621,20,523,20,7136,40,7139,40,0,0,0,0,0,0

    or else you need to edit file in the src to add id that more then 5000

  6. did you add the monster line on the right file ?

    if you use txt files

    pre-re = rAthena\db\pre-re\mob_db.txt

    renewal = rAthena\db\re\mob_db.txt

    if you use sql

    pre-re = mob_db.sql

    renewal = mob_db_re.sql

    if you have the default setting then you use the txt files

  7. 22 minutes ago, Prime said:

    i'm using rAmod mm May revision or so, if you want to check the script i can send it personally :s is private

    no need to send it cuz i am not sure i can fix it it's like gambling :P

    can you try (OnInstanceInit:) insted (OnInstancing:)

  8. cuz at the shops list you edit the shops names and it need to be edit but not as you think

    -	shop	qshop6	-1,909:-1
    -	shop	qshop7	-1,909:-1
    -	shop	qshop8	-1,909:-1
    -	shop	qshop9	-1,909:-1
    -	shop	qshop10	-1,909:-1

    "qshop1"+.@i, so the shops will be call at the name then the number

    -	shop	qshop11	-1,909:-1
    -	shop	qshop12	-1,909:-1
    -	shop	qshop13	-1,909:-1
    -	shop	qshop14	-1,909:-1
    -	shop	qshop15	-1,909:-1

    like that

    qshop1 = name

    1 = number

  9. you upload the map files via the patcher to the other players

     

     

    but first you need to add the maps on the server side or else if you upload the patcher before adding them the other players may can't login to the server until you add them in the server side

     

    you must add them the server side 

    then add them to your client

    if every thing work fine upload them via the pathcer

  10. at line 239 

    mes "really thinks that you can with me just like that?;

    must be 

    mes "really thinks that you can with me just like that?";

     

    but if you want to make 2 npcs quest shop then there is alot of things that need to change not only the function name

  11. as i get it 

    i will tell you how to do it cuz it's look like it need so many options and i need more info to do it so

    you see at the start the npc when you talk to the npc it call a function

    callfunc "qshop";

    this what it call the shop , so this function that you need to call at the last of your options

    and you make new function that the npc call it insted of the shop function

    let's call that function (myquest)

    the npc line here will be 

    prontera,164,203,6	script	Quest Shop#1	998,{ callfunc "myquest"; }

    and now after you call the function you make it like that

    function	script	myquest	{
    		//my script
    		//my script
    		//last result after the player do all what it need you need to call the shop fuction
    		//if...
    		//else if
    		//etc callfunc "qshop";
    	end;
    }

     

    i will give you an example here

    //===== rAthena Script =======================================
    //= Euphy's Quest Shop
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.6c
    //===== Compatible With: =====================================
    //= rAthena Project
    //===== Description: =========================================
    //= A dynamic quest shop based on Lunar's, with easier config.
    //= Includes support for multiple shops & cashpoints.
    //= Item Preview script by ToastOfDoom.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.2 Added category support.
    //= 1.3 More options and fixes.
    //= 1.4 Added debug settings.
    //= 1.5 Replaced categories with shop IDs.
    //= 1.6 Added support for purchasing stackables.
    //= 1.6a Added support for previewing costumes and robes.
    //= 1.6b Added 'disable_items' command.
    //= 1.6c Replaced function 'A_An' with "F_InsertArticle".
    //============================================================
    
    // Shop NPCs -- supplying no argument displays entire menu.
    //	callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
    //============================================================
    prontera,164,203,6	script	Quest Shop#1	998,{ callfunc "myquest"; }
    
    
    // Script Core
    //============================================================
    -	script	quest_shop	-1,{ 
    function Add; function Chk; function Slot;
    OnInit:
    	freeloop(1);
    
    // -----------------------------------------------------------
    //  Basic shop settings.
    // -----------------------------------------------------------
    
    	set .Announce,1;	// Announce quest completion? (1: yes / 0: no)
    	set .ShowSlot,1;	// Show item slots? (2: all equipment / 1: if slots > 0 / 0: never)
    	set .ShowID,0;  	// Show item IDs? (1: yes / 0: no)
    	set .ShowZeny,0;	// Show Zeny cost, if any? (1: yes / 0: no)
    	set .MaxStack,100;	// Max number of quest items purchased at one time.
    
    // -----------------------------------------------------------
    //  Points variable -- optional quest requirement.
    //	setarray .Points$[0],"<variable name>","<display name>";
    // -----------------------------------------------------------
    
    	setarray .Points$[0],"#CASHPOINTS","Cash Points";
    
    // -----------------------------------------------------------
    //  Shop IDs -- to add shops, copy dummy data at bottom of file.
    //	setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
    // -----------------------------------------------------------
    
    	setarray .Shops$[1],"Headgears","Weapons","Other";
    
    // -----------------------------------------------------------
    //  Quest items -- do NOT use a reward item more than once!
    //	Add(<shop ID>,<reward ID>,<reward amount>,
    //	    <Zeny cost>,<point cost>,
    //	    <required item ID>,<required item amount>{,...});
    // -----------------------------------------------------------
    
    	Add(1,5022,1,0,0,7086,1,969,10,999,40,1003,50,984,2);
    	Add(1,5032,1,0,0,1059,250,2221,1,2227,1,7063,600);
    	Add(1,5027,1,0,0,2252,1,1036,400,7001,50,4052,1);
    	Add(1,5045,1,0,0,2252,1,1054,450,943,1200);
    
    	Add(2,1224,1,0,0,7297,30,969,10,999,50,714,10);
    	Add(2,1225,1,0,0,7292,30,969,10,999,50,714,10);
    
    	Add(3,531,1,3,0,512,1,713,1);
    	Add(3,532,1,3,0,513,1,713,1);
    	Add(3,533,1,3,0,514,1,713,1);
    	Add(3,534,1,3,0,515,1,713,1);
    
    // -----------------------------------------------------------
    
    	freeloop(0);
    	set .menu$,"";
    	for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
    		set .menu$, .menu$+.Shops$[.@i]+":";
    		npcshopdelitem "qshop"+.@i,909;
    	}
    	end;
    
    OnMenu:
    	set .@size, getarraysize(@i);
    	if (!.@size) set @shop_index, select(.menu$);
    	else if (.@size == 1) set @shop_index, @i[0];
    	else {
    		for(set .@j,0; .@j<.@size; set .@j,.@j+1)
    			set .@menu$, .@menu$+.Shops$[@i[.@j]]+":";
    		set @shop_index, @i[select(.@menu$)-1];
    	}
    	deletearray @i[0],getarraysize(@i);
    	if (.Shops$[@shop_index] == "") {
    		message strcharinfo(0),"An error has occurred.";
    		end;
    	}
    	dispbottom "Select one item at a time.";
    	callshop "qshop"+@shop_index,1;
    	npcshopattach "qshop"+@shop_index;
    	end;
    
    OnBuyItem:
    	// .@q[] : RewardID, BoughtAmt, RewardAmt, BaseAmt, ReqZeny, ReqPts, { ReqItem, ReqAmt, ... }
    	setarray .@q[0],@bought_nameid[0],((@bought_quantity[0] > .MaxStack)?.MaxStack:@bought_quantity[0]);
    	copyarray .@q[3],getd(".q_"+@shop_index+"_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+@shop_index+"_"+.@q[0]));
    	set .@q[2],.@q[1]*.@q[3];
    	if (!.@q[2] || .@q[2] > 30000) {
    		message strcharinfo(0),"You can't purchase that many "+getitemname(.@q[0])+".";
    		end;
    	}
    	mes "[Quest Shop]";
    	mes "Reward: ^0055FF"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";
    	mes "Requirements:";
    	disable_items;
    	if (.@q[4]) mes " > "+Chk(Zeny,.@q[4]*.@q[1])+(.@q[4]*.@q[1])+" Zeny^000000";
    	if (.@q[5]) mes " > "+Chk(getd(.Points$[0]),.@q[5]*.@q[1])+(.@q[5]*.@q[1])+" "+.Points$[1]+" ("+getd(.Points$[0])+"/"+(.@q[5]*.@q[1])+")^000000";
    	if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    		mes " > "+Chk(countitem(.@q[.@i]),.@q[.@i+1]*.@q[1])+((.ShowID)?"{"+.@q[.@i]+"} ":"")+Slot(.@q[.@i])+" ("+countitem(.@q[.@i])+"/"+(.@q[.@i+1]*.@q[1])+")^000000";
    	next;
    	setarray @qe[1], getiteminfo(.@q[0],5), getiteminfo(.@q[0],11);
    	if (@qe[2] > 0 && ((@qe[1] & EQP_HEAD_LOW) || (@qe[1] & EQP_HEAD_TOP) || (@qe[1] & EQP_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_TOP) || (@qe[1] & EQP_COSTUME_HEAD_MID) || (@qe[1] & EQP_COSTUME_HEAD_LOW) || (@qe[1] & EQP_GARMENT) || (@qe[1] & EQP_COSTUME_GARMENT)))
    		set .@preview,1;
    	addtimer 1000, strnpcinfo(0)+"::OnEnd";
    	while(1) {
    		switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Preview...":"")+": ~ ^777777Cancel^000000")) {
    		case 1:
    			if (@qe[0]) { 
    				mes "[Quest Shop]";
    				mes "You're missing one or more quest requirements.";
    				close;
    			}
    			if (!checkweight(.@q[0],.@q[2])) {
    				mes "[Quest Shop]";
    				mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" additional weight capacity to complete this trade.^000000";
    				close;
    			}
    			if (.@q[4]) set Zeny, Zeny-(.@q[4]*.@q[1]);
    			if (.@q[5]) setd .Points$[0], getd(.Points$[0])-(.@q[5]*.@q[1]);
    			if (.@q[6]) for(set .@i,6; .@i<getarraysize(.@q); set .@i,.@i+2)
    				delitem .@q[.@i],.@q[.@i+1]*.@q[1];
    			getitem .@q[0],.@q[2];
    			if (.Announce) announce strcharinfo(0)+" has created "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):callfunc("F_InsertArticle",getitemname(.@q[0])))+"!",0;
    			specialeffect2 EF_FLOWERLEAF;
    			close;
    		case 2:
    			setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), getlook(LOOK_ROBE), 1;
    			if ((@qe[1] & 1) || (@qe[1] & 4096)) changelook LOOK_HEAD_BOTTOM, @qe[2];
    			else if ((@qe[1] & 256) || (@qe[1] & 1024)) changelook LOOK_HEAD_TOP, @qe[2];
    			else if ((@qe[1] & 512) || (@qe[1] & 2048)) changelook LOOK_HEAD_MID, @qe[2];
    			else if ((@qe[1] & 4) || (@qe[1] & 8192)) changelook LOOK_ROBE, @qe[2];
    			break;
    		case 3:
    			close;
    		}
    	}
    
    OnEnd:
    	if (@qe[7]) {
    		changelook LOOK_HEAD_BOTTOM, @qe[3];
    		changelook LOOK_HEAD_TOP, @qe[4];
    		changelook LOOK_HEAD_MID, @qe[5];
    		changelook LOOK_ROBE, @qe[6];
    	}
    	deletearray @qe[0],8;
    	end;
    
    function Add {
    	if (getitemname(getarg(1)) == "null") {
    		debugmes "Quest reward #"+getarg(1)+" invalid (skipped).";
    		return;
    	}
    	setarray .@j[0],getarg(2),getarg(3),getarg(4);
    	for(set .@i,5; .@i<getargcount(); set .@i,.@i+2) {
    		if (getitemname(getarg(.@i)) == "null") {
    			debugmes "Quest requirement #"+getarg(.@i)+" invalid (skipped).";
    			return;
    		} else
    			setarray .@j[.@i-2],getarg(.@i),getarg(.@i+1);
    	}
    	copyarray getd(".q_"+getarg(0)+"_"+getarg(1)+"[0]"),.@j[0],getarraysize(.@j);
    	npcshopadditem "qshop"+getarg(0),getarg(1),((.ShowZeny)?getarg(3):0);
    	return;
    }
    
    function Chk {
    	if (getarg(0) < getarg(1)) {
    		set @qe[0],1;
    		return "^FF0000";
    	} else
    		return "^00FF00";
    }
    
    function Slot {
    	set .@s$,getitemname(getarg(0));
    	switch(.ShowSlot) {
    		case 1: if (!getitemslots(getarg(0))) return .@s$;
    		case 2: if (getiteminfo(getarg(0),2) == 4 || getiteminfo(getarg(0),2) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]";
    		default: return .@s$;
    	}
    }
    }
    
    function	script	qshop	{
    	deletearray @i[0],getarraysize(@i);
    	for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
    		set @i[.@i],getarg(.@i);
    	doevent "quest_shop::OnMenu";
    	end;
    }
    
    function	script	myquest	{
    	if(BaseLevel == 90){
    	callfunc "qshop";
    	}else{
    	mes "you must be level 90 to use the quest shop";
    	close;
    	}
    	end;
    }
    
    
    // Dummy shop data -- copy as needed.
    //============================================================
    -	shop	qshop1	-1,909:-1
    -	shop	qshop2	-1,909:-1
    -	shop	qshop3	-1,909:-1
    -	shop	qshop4	-1,909:-1
    -	shop	qshop5	-1,909:-1

    in this script you need to be level 90 to see the shop

    you can see myquest fuction at line 220

    you can see at result of level 90 it call the qshop function

    and at the like 28 the npc call myquest function insted of qshop function

    if you have error put here and i or someone else can fix it

    • Upvote 1
  12. so you want the npc don't let them see the shop ,only if they have one of the items needed for item inside the shop ?

    or you want to make the npc wont let you see the shop ,only if you have item that allow you the see the shop(like [quest shop card]) ?

    or you wanna the npc only display the item that the player had farm the items for it ?

    what the player see if 

    >they don't have anything

    >they have items for a hat inside the shop

    else if item what they see when

    >they have the item that needed to see the shop

    >they don't have the item that alow them to see the shop

×
×
  • Create New...