thanna
Members-
Content Count
212 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by thanna
-
as Mysterious said before, the item bonus is not implemented on Hercules nor Rathena so tha'ts why the item script is empty, we have to wait for upcoming updates that will implement this feature, I hope you understand
-
correct me if I'm wrong but this item is not yet fully implemented by Hercules I think, maybe on the upcoming updates they will have this
-
@aura is a source mod that can change your aura, you can use this to use to give a 1st job, 2nd job and 3rd job with different aura, if you still have questions just post it here
-
this is a script made by sir Euphy, this supports variables and other currency as well, try to analyze it, if you still have problems just post it here //===== rAthena Script =======================================//= Euphy's Quest Shop//===== By: ==================================================//= Euphy//===== Current Version: =====================================//= 1.6//===== Compatible With: =====================================//= rAthena SVN r16862+//===== Description: =========================================//= A dynamic quest shop based on Lunar's, with easier config.//= Includes support for multiple shops & cashpoints.//= Item Preview script by ToastOfDoom.//============================================================// Shop NPCs -- supplying no argument displays entire menu.// callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};//============================================================prontera,164,203,6 script Quest Shop#1 998,{ callfunc "qshop"; }// Script Core//============================================================- script quest_shop -1,{ function Add; function Chk; function Slot; function A_An;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 .@i, select(.menu$); else if (.@size == 1) set .@i, @i[0]; else { for(set .@j,0; .@j<.@size; set .@j,.@j+1) set .@menu$, .@menu$+.Shops$[@i[.@j]]+":"; set .@i, @i[select(.@menu$)-1]; } deletearray @i[0],getarraysize(@i); if (.Shops$[.@i] == "") { message strcharinfo(0),"An error has occurred."; end; } dispbottom "Select one item at a time."; callshop "qshop"+.@i,1; npcshopattach "qshop"+.@i; 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_"+.@q[0]+"[0]"),getarraysize(getd(".q_"+.@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:"; 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[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512)) && @qe[2] > 0) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[6])?" ~ 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]):A_An(getitemname(.@q[0])))+"!",0; specialeffect2 699; close; case 2: setarray @qe[3], getlook(LOOK_HEAD_BOTTOM), getlook(LOOK_HEAD_TOP), getlook(LOOK_HEAD_MID), 1; if (@qe[1] & 1) changelook LOOK_HEAD_BOTTOM, @qe[2]; if (@qe[1] & 256) changelook LOOK_HEAD_TOP, @qe[2]; if (@qe[1] & 512) changelook LOOK_HEAD_MID, @qe[2]; break; case 3: close; } }OnEnd: if (@qe[6]) { changelook LOOK_HEAD_BOTTOM, @qe[3]; changelook LOOK_HEAD_TOP, @qe[4]; changelook LOOK_HEAD_MID, @qe[5]; } deletearray @qe[0],7; 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(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 A_An { setarray .@A$[0],"a","e","i","o","u"; set .@B$, "_"+getarg(0); for(set .@i,0; .@i<5; set .@i,.@i+1) if (compare(.@B$,"_"+.@A$[.@i])) return "an "+getarg(0); return "a "+getarg(0);}}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;}// 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
-
Some errors at compile my rAthena patch here in Hercules
thanna replied to Yum's question in Source Support
I can try to convert it to fit hercules, but seeing only part of the diff is hard -
have you edited source files or something?
-
e2 gamitin mo http://herc.ws/board/topic/38-latest-kro-installation-small-client-package/?p=137
-
siguro busy sila ngaun, nag mail narin ako sa kanila last week kaya lang wala parin reply, sure naman na nareceive nila un, kaya hintay hintay nalang
-
if you use a prontera map that have open space on the center then the only thing you have to do is rebuild your mapcache.dat
-
d po ako sure pero mas malakas po ata talga ang normal attack ng sin x mo kung naka EDP ka kaysa sa Meteor Assault, kung duda ka po talga update mo nalang po ung emulator po para makuha mo ung newest updates ng skills and damage formula
-
basta wala kang dinisable sa renewal.h, full renewal features ka parin
-
try this http://herc.ws/board/topic/38-latest-kro-installation-small-client-package/
-
i compiled it already. no errors while compiling. but i tried a item bonus script. but not working. maybe i missed editing a part? or the plug-in is not working? check your mapserver, if the plugin is not working or loaded properly there will be a warning on the mapserver Edit: I will try to apply it to my test server and I will post the result here later, btw thanks for converting this
-
this is just my suggestion, I don't want to argue I'm just suggesting 1. If there is a minimum players, lets say the max is 10 vs 10, the minimum is 6 vs 6 to start the BG, if the minimum player's are met the BG will start and while the BG is ongoing other players can still join to fill up the 8 more slot, and if the maximum players are met then the registration for the BG is close, and when a player got disconnected or quit while the BG is ongoing the registration will open and fill up the slot for the player that disconnected. Sorry if you don't agree with me, I just saw it on another server using eamod, I don't compare, its just that I want the battleground of Hercules to be flexible.
-
pls do so, T_T As you requested, I added step by step images on adding Plugins, hope that it can help you Here's the link http://herc.ws/wiki/Building_HPM_Plugin_for_MSVC#Notes
-
Hi! I converted this source mod to a plugin to avoid conflict with incoming updates, one of the most unique feature hercules have is HPM Note: The code of @dance isn't mine, credit goes to the owner , I just converted it to a plugin for Hercules Heres the code: #include <stdio.h>#include <string.h>#include "../common/HPMi.h"#include "../map/script.h"#include "../map/pc.h" HPExport struct hplugin_info pinfo ={ "@dance", // Plugin name SERVER_TYPE_MAP,// Which server types this plugin works with? "0.1a", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated)}; ACMD(dance){ if (!message || !*message) { clif->message(fd, "usage: @dance 1-9");return -1; } if ( atoi(message) == 1 ) {clif->specialeffect(&sd->bl, 413, ALL_CLIENT); } else if ( atoi(message) == 2 ) {clif->specialeffect(&sd->bl, 414, ALL_CLIENT); } else if ( atoi(message) == 3 ) {clif->specialeffect(&sd->bl, 415, ALL_CLIENT); } else if ( atoi(message) == 4 ) {clif->specialeffect(&sd->bl, 426, ALL_CLIENT); } else if ( atoi(message) == 5 ) {clif->specialeffect(&sd->bl, 458, ALL_CLIENT); } else if ( atoi(message) == 6 ) {clif->specialeffect(&sd->bl, 466, ALL_CLIENT); } else if ( atoi(message) == 7 ) {clif->specialeffect(&sd->bl, 501, ALL_CLIENT); } else if ( atoi(message) == 8 ) {clif->specialeffect(&sd->bl, 540, ALL_CLIENT); } else if ( atoi(message) == 9 ) {clif->specialeffect(&sd->bl, 550, ALL_CLIENT); } else { clif->message(fd, "usage: @dance 1-9"); } return true;} /* Server Startup */HPExport void plugin_init (void){ clif = GET_SYMBOL("clif"); script = GET_SYMBOL("script"); skill = GET_SYMBOL("skill"); HPMi->addCommand("dance",ACMD_A(dance));}If you don't know to make/add a plugin follow this link http://herc.ws/wiki/Building_HPM_Plugin_for_MSVC
-
no problem, thanks for the help
-
I paste it on my 1st post
-
Can I request for a plugin atcommand AFK with a function like this on a misc.conf file // Set this to the amount of minutes afk chars will be kicked from the server. 720 = 12 hours afk_timeout: 0 I have this on my old emulator before somehow as I read through the forums source code for hercules is different here's the code for it Index: atcommand.c===================================================================--- atcommand.c (revision 17321)+++ atcommand.c (working copy)@@ -8989,6 +8989,48 @@ return 0; } +/*==========================================+* @afk+*------------------------------------------*/+ACMD_FUNC(afk) {+ + nullpo_retr(-1, sd);+ + if(sd->bl.m == map_mapname2mapid("prontera")) {+ clif_displaymessage(fd, "@afk is not allowed on this map.");+ return 0;+ }+ + if( pc_isdead(sd) ) {+ clif_displaymessage(fd, "Cannot @afk if you are dead.");+ return -1;+ }++ if( map[sd->bl.m].flag.autotrade == battle_config.autotrade_mapflag )+ {++ if(map[sd->bl.m].flag.pvp || map[sd->bl.m].flag.gvg){+ clif_displaymessage(fd, "You may not use the @afk maps PVP or GVG.");+ return -1;}++ sd->state.autotrade = 1;+ sd->state.monster_ignore = 1;+ pc_setsit(sd);+ skill_sit(sd,1);+ clif_sitting(&sd->bl);+ clif_changelook(&sd->bl,LOOK_HEAD_TOP,471);+ clif_specialeffect(&sd->bl, 234,AREA); + if( battle_config.afk_timeout )+ {+ int timeout = atoi(message);+ status_change_start(NULL, &sd->bl, SC_AUTOTRADE, 10000,0,0,0,0, ((timeout > 0) ? min(timeout,battle_config.afk_timeout) : battle_config.afk_timeout)*60000,0);+ }+ clif_authfail_fd(fd, 15);+ } else+ clif_displaymessage(fd, "@afk is not allowed on this map.");+ return 0;+}+ /** * Fills the reference of available commands in atcommand DBMap **/@@ -9253,7 +9295,8 @@ ACMD_DEF(channel), ACMD_DEF(fontcolor), ACMD_DEF(langtype),- ACMD_DEF(reloadmsgconf)+ ACMD_DEF(reloadmsgconf),+ ACMD_DEF(afk) }; AtCommandInfo* atcommand; int i;Index: battle.c===================================================================--- battle.c (revision 17321)+++ battle.c (working copy)@@ -5892,6 +5892,7 @@ { "quest_exp_rate", &battle_config.quest_exp_rate, 100, 0, INT_MAX, }, { "at_mapflag", &battle_config.autotrade_mapflag, 0, 0, 1, }, { "at_timeout", &battle_config.at_timeout, 0, 0, INT_MAX, },+ { "afk_timeout", &battle_config.afk_timeout, 0, 0, INT_MAX, }, { "homunculus_autoloot", &battle_config.homunculus_autoloot, 0, 0, 1, }, { "idle_no_autoloot", &battle_config.idle_no_autoloot, 0, 0, INT_MAX, }, { "max_guild_alliance", &battle_config.max_guild_alliance, 3, 0, 3, },Index: battle.h===================================================================--- battle.h (revision 17321)+++ battle.h (working copy)@@ -433,6 +433,7 @@ int quest_exp_rate; int autotrade_mapflag; int at_timeout;+ int afk_timeout; int homunculus_autoloot; int idle_no_autoloot; int max_guild_alliance;Index: misc.conf===================================================================--- misc.conf (revision 17321)+++ misc.conf (working copy)@@ -124,3 +124,6 @@ // 1 = Yes // 2 = Yes, when there are unread mails mail_show_status: 0++// Set this to the amount of minutes afk chars will be kicked from the server.+afk_timeout: 0
-
sir is it possible to make atcommand as a plugin?
-
thanks sir I will try it out, and one more thing sir can you help me with this http://herc.ws/board/topic/952-can-someone-convert-this-and-make-it-as-a-plugin/?p=6775
-
SIr Shikazu Im using visual studio 2010
-
Can someone convert this and make it as a plugin
thanna replied to thanna's question in Plugin Requests
bump -
Sir Shikazu can I ask how to add plugin because I read the wiki but Im a little confuse about adding plugin, thanks in advance