Script Name : Information Center
- Script Created By : ManiacSociety
- Helper : Emistry & Kenpachi
MYSQL FUNCTION :
Edit Lines :
Functions :
- MySQL
- In Game Donation
Game Master :
- Only administrator are allowed to add,delete,edit and view codes.
- Code Generate (No need to enter code automatic)
Normal Player :
- Enter Code
Process :
- GM will add the generated code and will automatically added to the database.
- If theres a donator and you wanted to give the codes you have to give the verification code and they have to activate it, once the VC is verified and correct the npc will automatically give the generated or promotion code.
- If the player receive the code already they have to enter the code and direct to the shop.
(WARNING)
- Edit shop 1 code = 1 items chosen (Much better to use box instead of items.)
If you have problem with that kindly post here.
And also please wait for mysql commands im fixing what you have to add.
http://pastebin.com/QBYjjrjj
- Note this is not mine
- and i don't know if this is going to work
- copyright goes to the maker
- this is already been answered
here's the step
open ra/db/item_db2.txt
make a new item -
25500,Custom_Box,Custom Box,2,10000,,200,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem groupranditem(IG_whatever),1; },{},{}
next step is
open ra/db/const.txt
Find IG_Advanced_Weapons_Box 61
below add this
IG_whatever 63 //IG_whatever must be same in the item_db2.txt script command
next step
open ra/db/item_group_db.txt
import: db/item_whatever.txt - put this
next step
make a new script named
item_whatever.txt - place this in ra/db/
next step
open item_whatever.txt - in ra/db/item_whatever.txt
//Explanation 63 - is the number you input in const.txt
// - 1111 - this is the itemID
// - 9 - this is the rate
63,1111,9
63,<Item ID>,<Rate>
next step
open ra/src/map/itemdb.h
find this part
#define MAX_ITEMGROUP #62
the number is 62 where in const.txt the max group number is 62 - but you add another item group..
- just add + 1 in 62 so make it
#define MAX_ITEMGROUP #63
Viola you are done~
//Made by Lunar
//Version 1.6
//6.1.09
- shop quest_shop -1,501:50
prontera,147,173,5, script Dynamic Shop NPC 899,{
set @i,0;
mes "[shop Quest NPC]";
mes "Which item do you wish to obtain?";
mes "Select only one.";
callshop "quest_shop",1;
npcshopattach "quest_shop";
end;
OnBuyItem:
if(.BuildQuest) {
for(set .e,0; !compare(getarg(.e+1),"Zeny"); set .e,.e+2) {}
npcshopadditem "quest_shop",getarg(.e+2),getarg(.e)*compare(getarg(.e+1),"SZeny");
setarray .Shop[.i],getarg(.e+2);
set .i,.i+1;
goto Quest_Setup;
}
if(.Shop[@i]!=@bought_nameid) for(set @i,1; 1; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set .i,@i; callsub Quest_Setup; }
for(set @i,1; !@e; set @i,@i+1) if(.Shop[@i]==@bought_nameid) { set @e,1; set .i,@i; callsub Quest_Setup; }
mes "[shop Quest NPC]";
mes "I require the following:";
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) mes "^FF0000" + ((countitem(getarg(@i))>=getarg(@i+1))? "^00FF00":"") + "" + getarg(@i+1) + " " + getitemname(getarg(@i)) + " [" + countitem(getarg(@i)) + "/" + getarg(@i+1) + "]";
if(getarg(@i)) mes "^FF0000" + ((Zeny>=getarg(@i))? "^00FF00":"") + "" + getarg(@i) + " Zeny";
mes "^000000In exchange, I will give you:^0000FF";
for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) mes getarg(@i+1) + " " + getitemname(getarg(@i));
switch(select("Exchange:" + (((((getiteminfo(@bought_nameid,5) & 1) || (getiteminfo(@bought_nameid,5) & 256) || (getiteminfo(@bought_nameid,5) & 512)) && @equip==0))? "Preview Item":"") + ":No thanks")) {
case 1:
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) if(countitem(getarg(@i)) < getarg(@i+1)) {
next;
mes "You have " + countitem(getarg(@i)) + " " + getitemname(getarg(@i)) + ", while I require " + getarg(@i+1) + ".";
mes "Please obtain ^FF0000" + (getarg(@i+1)-countitem(getarg(@i))) + " more " + getitemname(getarg(@i)) + "^000000.";
close;
}
if(Zeny < getarg(@i)) {
next;
mes "You do not have enough Zeny.";
mes "Please obtain ^FF0000" + (getarg(@i)-Zeny) + " more Zeny^000000.";
close;
}
for(set @i,0; !compare(getarg(@i+1),"Zeny"); set @i,@i+2) delitem getarg(@i),getarg(@i+1);
set Zeny,Zeny-getarg(@i);
for(set @i,@i+2; getarg(@i+1,0); set @i,@i+2) getitem getarg(@i),getarg(@i+1);
if (compare(getarg(@i,0),"announce")) announce strcharinfo(0) + " has just obtained " + getitemname(@bought_nameid) + "!",bc_all;
close;
case 2:
set @bottomview, getlook(3);
set @topview, getlook(4);
set @midview, getlook(5);
addtimer 1000, strnpcinfo(3)+"::On_Leave";
set @equip,getiteminfo(@bought_nameid, 5);
set @view, getiteminfo(@bought_nameid, 11);
if(@equip != -1 && @view > 0) {
if(@equip & 1) atcommand "@changelook 3 " + @view;
if(@equip & 256) atcommand "@changelook 1 " + @view;
if(@equip & 512) atcommand "@changelook 2 " + @view;
}
next;
goto OnBuyItem;
case 3:
close;
}
On_Leave:
atcommand "@changelook 1 " + @topview;
atcommand "@changelook 2 " + @midview;
atcommand "@changelook 3 " + @bottomview;
set @equip,0;
set @view,0;
set @topview,0;
set @midview,0;
set @bottomview,0;
end;
OnInit:
npcshopitem "quest_shop",0,0;
set .BuildQuest,1;
set .i,1;
Quest_Setup:
switch(.i) {
default: set .BuildQuest,0; set .e,0; set .i,0; end;
case 1: callsub OnBuyItem,50,"SZeny",501,1,"announce";
case 2: callsub OnBuyItem,502,1,0,"SZeny",502,1;
case 3: callsub OnBuyItem,502,1,1000,"Zeny",504,1,501,1;
case 4: callsub OnBuyItem,923,20,1000,"SZeny",2284,1,501,1,"announce";
}
}
Walking through a setup:
Requirements:
4 Pencil Cases [iD: 738]
2 Slick Paper [iD: 7111]
10000 Zeny
Reward:
1 The Paper Card [iD: 4172]
So, let's pretend this is your 5th quest, you'd start off as such:
CODE
case 5: callsub OnBuyItem,
Next, you would add in the first requirement: 4 Pencil Cases [iD: 738]:
CODE
case 5: callsub OnBuyItem,738,4,
Next, you would add in the second requirement: 2 Slick Papers [iD: 7111]:
CODE
case 5: callsub OnBuyItem,738,4,7111,2,
That is the last of your item requirements, so lets add the Zeny Requirement now: 10000 Zeny:
CODE
case 5: callsub OnBuyItem,738,4,7111,2,10000,"Zeny",
Now, you add the prize: 1 The Paper Card [iD: 4172]:
CODE
case 5: callsub OnBuyItem,738,4,7111,2,10000,"Zeny",4172,1
Now to make sure the server reads this is a line, you need to end the line with a semi-colon (";"):
CODE
case 5: callsub OnBuyItem,738,4,7111,2,10000,"Zeny",4172,1;
We have just created a custom quest.