-
Posts
491 -
Joined
-
Last visited
-
Days Won
4
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Akbare
-
thx for your reply but it didn't work till now
-
//===== 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 "qsLegendShop"{,<shop ID>{,<shop ID>{,...}}}; // ADD YOUR NPC HERE //============================================================ prontera,139,225,6 script Quest Exchange#1 851,{ callfunc "qsLegendShop"; } // prontera,165,203,6 script Quest Shop#2 998,{ callfunc "qsLegendShop",1,2; } // call the shop 1 and 2 defined below // etc.. Add your Shop NPCs 'Quest Shop#XXX' here //============================================================ // Script Core - DO NOT DUPLICATE THIS NPC !!!!!!!!!!!!! //============================================================ - 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,1; // 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"; //===================================================================================== // ------------------- ADD YOUR SHOPS NAME AND ITEMS SHOPS STARTING HERE -------------- //===================================================================================== // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1], "legendary Quest Exchange"; // Shop Named 1 // ----------------------------------------------------------- // 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>{,...}); // ----------------------------------------------------------- // Shop 1 Add(1,2319,1,20000000,0,2317,4 ); // ----------------------------------------------------------- //===================================================================================== // ------------------- YOUR SHOPS AND ITEMS SHOPS HAVE BEEN ADDED --------------------- //===================================================================================== freeloop(0); set .menu$,""; for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) { set .menu$, .menu$+.Shops$[.@i]+":"; npcshopdelitem "qsLegendShop"+.@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 "qsLegendShop"+@shop_index,1; npcshopattach "qsLegendShop"+@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], ITEMINFO_LOCATIONS), getiteminfo(.@q[0], ITEMINFO_VIEW); 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], ITEMINFO_WEIGHT))+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 "qsLegendShop"+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), ITEMINFO_TYPE) == 4 || getiteminfo(getarg(0), ITEMINFO_TYPE) == 5) return .@s$+" ["+getitemslots(getarg(0))+"]"; default: return .@s$; } } } function script qsLegendShop { 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; } // Dummy shop data -- copy as needed. //============================================================ - shop qsLegendShop1 -1,909:-1 My problem is the requirements Slot item not showing set .ShowSlot,1; // Show item slots? (2: all equipment / 1: if slots > 0 / 0: never) change to 1 or 2 not effect in script maybe someone can help me thx to advance SOLVED i'm use OLD version script THX ALL
-
merger with ur data folder bro
-
How can we install rathena for ro classic server.
Akbare replied to halfman's question in Installation Support
https://github.com/rathena/rathena#2-installation -
wow like it to bard and dancer job btw your UI look greats
-
Failed to connect / Rejected on client 2010
Akbare replied to Eross's question in Client-side Support
Open port in your linux firewall -
Act editor remove all frames script
Akbare replied to BugMeNot2014's question in Third Party Support
you ask for spriting item or script ? please more info not everyone can understand what you are saying -
try edit in : db/mob_item_ratio.txt
-
maybe use relate msgstringtable.txt
-
wow it looks good
-
why want to delete it? to change message maybe in data/msgstringtable.txt line 3251
-
Help flux error Message: Failed to import/replace rows from table
Akbare replied to dantoki's question in Web Support
login in phpmyadmin, remove item_db2 table and import new item_db2 again -
i want to ask how to change this VIP message msgstringtable.txt line 3033 %.1f%% (VIP %.1f%% + Server %.1f%%)# i found this code but i'dont know how to change /** * Transmit personal information to player. (rates) * 0x08cb <packet len>.W <exp>.W <death>.W <drop>.W <DETAIL_EXP_INFO>7B (ZC_PERSONAL_INFOMATION) * <InfoType>.B <Exp>.W <Death>.W <Drop>.W (DETAIL_EXP_INFO 0x08cb) * 0x097b <packet len>.W <exp>.L <death>.L <drop>.L <DETAIL_EXP_INFO>13B (ZC_PERSONAL_INFOMATION2) * 0x0981 <packet len>.W <exp>.W <death>.W <drop>.W <activity rate>.W <DETAIL_EXP_INFO>13B (ZC_PERSONAL_INFOMATION_CHN) * <InfoType>.B <Exp>.L <Death>.L <Drop>.L (DETAIL_EXP_INFO 0x97b|0981) * FIXME! * - Find/decide for details of EXP, Drop, and Death penalty rates * - For now, we're assuming values for DETAIL_EXP_INFO are: * 0 - map adjustment (bexp mapflag), 1 - Premium/VIP adjustment, 2 - Server rate adjustment, 3 - None */ #ifdef VIP_ENABLE void clif_display_pinfo(struct map_session_data *sd, int cmdtype) { if (sd) { struct s_packet_db* info; int16 len, szdetails = 13, maxinfotype = PINFO_MAX; int cmd = 0, fd, i = 0; int tot_baseexp = 100, tot_penalty = 100, tot_drop = 100, factor = 1000; int details_bexp[PINFO_MAX]; int details_drop[PINFO_MAX]; int details_penalty[PINFO_MAX]; /** * Set for EXP */ //0:PCRoom details_bexp[0] = map_getmapflag(sd->bl.m, MF_BEXP); if (details_bexp[0] == 100 || !details_bexp[0]) details_bexp[0] = 0; else { if (details_bexp[0] < 100) { details_bexp[0] = 100 - details_bexp[0]; details_bexp[0] = 0 - details_bexp[0]; } else details_bexp[0] = details_bexp[0] - 100; } //1:Premium if (pc_isvip(sd)) { details_bexp[1] = battle_config.vip_base_exp_increase * 10; if (details_bexp[1] < 0) details_bexp[1] = 0 - details_bexp[1]; } else details_bexp[1] = 0; //2:Server details_bexp[2] = battle_config.base_exp_rate; if (details_bexp[2] == 100) details_bexp[2] = 0; else { if (details_bexp[2] < 100) { details_bexp[2] = 100 - details_bexp[2]; details_bexp[2] = 0 - details_bexp[2]; } else details_bexp[2] = details_bexp[2] - 100; } //3:TPLUS details_bexp[3] = 0; /* End - EXP set*/ /** * Set for Drop rate */ //0:PCRoom details_drop[0] = 0; //1:Premium details_drop[1] = (battle_config.vip_drop_increase * battle_config.item_rate_common) / 100; if (pc_isvip(sd)) { if (details_drop[1] < 0) details_drop[1] = 0 - details_drop[1]; } else details_drop[1] = 0; //2:Server details_drop[2] = battle_config.item_rate_common; if (details_drop[2] == 100) details_drop[2] = 0; else { if (details_drop[2] < 100) { details_drop[2] = 100 - details_drop[2]; details_drop[2] = 0 - details_drop[2]; } else details_drop[2] = details_drop[2] - 100; } //3:TPLUS details_drop[3] = 0; /* End - Drop set*/ /** * Set for Penalty rate */ //! FIXME: Current penalty system makes this announcement unable to give info on + or - rate //0:PCRoom details_penalty[0] = 0; //1:Premium if (pc_isvip(sd)) { details_penalty[1] = battle_config.vip_exp_penalty_base; if (details_penalty[1] == 100) details_penalty[1] = 0; else { if (details_penalty[1] < 100) { details_penalty[1] = 100 - details_penalty[1]; details_penalty[1] = 0 - details_penalty[1]; } else details_penalty[1] = details_penalty[1] - 100; } } else details_penalty[1] = 0; //2:Server details_penalty[2] = battle_config.death_penalty_base; if (details_penalty[2] == 100) details_penalty[2] = 0; else { if (details_penalty[2] < 100) { details_penalty[2] = 100 - details_penalty[2]; details_penalty[2] = 0 - details_penalty[2]; } else details_penalty[2] = details_penalty[2] - 100; } //3:TPLUS details_penalty[3] = 0; /* End - Penalty set*/ cmd = packet_db_ack[cmdtype]; info = &packet_db[cmd]; len = info->len; //this is the base len without details if(!len) return; //version as packet disable if (cmdtype == ZC_PERSONAL_INFOMATION && cmd == 0x08cb) { //0x08cb version szdetails = 7; factor = 1; } else if (cmd == 0x097b) { tot_baseexp *= factor; tot_drop *= factor; tot_penalty *= factor; } fd = sd->fd; WFIFOHEAD(fd,len+maxinfotype*szdetails); WFIFOW(fd,0) = cmd; for (i = 0; i < maxinfotype; i++) { WFIFOB(fd,info->pos[4]+(i*szdetails)) = i; //infotype //0 PCRoom, 1 Premium, 2 Server, 3 TPlus WFIFOL(fd,info->pos[5]+(i*szdetails)) = details_bexp[i]*factor; WFIFOL(fd,info->pos[6]+(i*szdetails)) = details_penalty[i]*factor; WFIFOL(fd,info->pos[7]+(i*szdetails)) = details_drop[i]*factor; tot_baseexp += details_bexp[i]*factor; tot_drop += details_penalty[i]*factor; tot_penalty += details_drop[i]*factor; len += szdetails; } WFIFOW(fd,info->pos[0]) = len; //packetlen if (cmd == 0x08cb) { //0x08cb version WFIFOW(fd,info->pos[1]) = tot_baseexp; WFIFOW(fd,info->pos[2]) = tot_drop; WFIFOW(fd,info->pos[3]) = tot_penalty; } else { //2013-08-07aRagexe uses 0x097b WFIFOL(fd,info->pos[1]) = tot_baseexp; WFIFOL(fd,info->pos[2]) = tot_drop; WFIFOL(fd,info->pos[3]) = tot_penalty; } if (cmdtype == ZC_PERSONAL_INFOMATION_CHN) WFIFOW(fd,info->pos[8]) = 0; //activity rate case of event ?? WFIFOSET(fd,len); } } #endif i thought it was arround this part for (i = 0; i < maxinfotype; i++) { WFIFOB(fd,info->pos[4]+(i*szdetails)) = i; //infotype //0 PCRoom, 1 Premium, 2 Server, 3 TPlus WFIFOL(fd,info->pos[5]+(i*szdetails)) = details_bexp[i]*factor; WFIFOL(fd,info->pos[6]+(i*szdetails)) = details_penalty[i]*factor; WFIFOL(fd,info->pos[7]+(i*szdetails)) = details_drop[i]*factor; tot_baseexp += details_bexp[i]*factor; tot_drop += details_penalty[i]*factor; tot_penalty += details_drop[i]*factor; len += szdetails; } i want to change like this one with VIP premium before VIP active When VIP thx for advance
-
can show video maybe?
-
Se ha ajustado la actualización de la función lapine en github
-
for 2018 just select recomended in nemo I'm sure it works
-
-
I'm sure import all the sql files, or maybe you can tell in which file SOLVED: i'm use old rAthena sql
-
wow nice, what a next?
-
try move to other drive to C
-
i use https://github.com/rathena/FluxCP my character menu have a error how to solve? thx for advanced
-
Crash when using the Flying Kick skill of the StarGladiador
Akbare replied to Mithrandir's question in General Support
maybe you can provide information on the emulator and the hexed used -
FluxCP Bug 'items.name_japanese'
Akbare replied to Sallycantdance's question in Installation Support
-
i like HP and SP bar amazing
-
thanks for release AMAZING ~~!!!