Jump to content

Yoh Asakura

Members
  • Content Count

    261
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Yoh Asakura


  1. 2 hours ago, Mumbles said:

    People get busy; we all have lives outside of these boards (believe it or not), and it should be expected that our real-world responsibilities and obligations take precedence over our business online.

    You obviously had your own priorities (in this case, your health), and were unable to contact Daifuku in a timely manner to redeem your prize. Fortunately, she was still willing to work with you instead of choosing a runner-up. Considering that she had been willing to be flexible with you a month after the fact, you should have been similarly acquiescent when she had contacted you a few days after the date she said she'd respond by — but instead, you harassed her to the point that she ultimately rescinded her giveaway.

    I haven't posted here in years, but seeing this post was triggering. To say that Hercules deserves better is ridiculous and insulting. Hercules holds a high standard for staff members; Daifuku wouldn't have earned her position if she wasn't of good moral character, untalented, or undeserving. If anything, Daifuku deserves better than to be treated like some sort of servant.

    Did you lose anything of value by entering her giveaway? Did you lose sleep while you were waiting for a response? I'd hope not. Maybe evaluate how you communicate with people when they are doing something out of their own free will and generosity — especially when it's at no cost to you.

    Did she go crying to you to post in here?

    I am the one who actually wasted my time trying to talk with her to get the prize and in the end got nothing.

    I have nothing more to say, I did not disrespect her, just take a look at the pics.


  2. Hello community,

    I'm here to say that I'm really disappointed with Daifuku.

    Between all the users that participated I was the one who won it, but I never got the prize

    Now here are the facts: Daifuku posted on May 2 the winner (me), but I got sick in May (yes, literally the whole month sick) and I only saw I won around day 24 of May. I then contacted him through Discord to claim the prize, he replied me he was on vacation and would be back around 22 of June. I waited till now and did not get the prize. I understand we all have personal issues, but I at least expected you to be kind and say that you'd give the prize anyways, which you did not.

    Now I'm really impressed to see that he actually DELETED the topic "Graphics Giveaway" of which he created. and by the way, on his last post on that topic he said that he would hold ANOTHER "Graphics giveaway" this month. Unbelievable...You do not deserve to be in this position of Graphic Moderator. Hercules deserves better than you, Daifuku.

     

    Screenshots:

    photo1.thumb.jpg.92d4eff29dd0abdc7a2e633cf08e9d3f.jpg

     

    photo2.thumb.jpg.1645be86248cb03bcb7241cf89ccdb90.jpg

     

    photo3.thumb.jpg.e2c6f93d0b6fad5dd563563fa83d0c74.jpg

     

    photo4.jpg.f279646014457ff1387ce0f11d6ae026.jpg

     

    photo5.thumb.jpg.77cbbd2edeab3d25e316905d77739a9e.jpg

     

    photo6.thumb.jpg.db4030d3b06eb1780476c789d05dfdb5.jpg

    Kind Regards,
    Yoh.


     


  3. Hello community,

    I'm currently using Feeftys VoteForPoints addon for fluxcp and it came with a NPC script but it's not working properly. The thing is that I would like to use quest_shop (npc/custom/quests/quest_shop.txt) as my NPC to Exchange Vote Points for Items.  I like this script because you can separate items by category and you can also Equip the item to see how it looks like on the character. Moreover, I have found a third script here in hercules very similar to quest_shop, but with a few changes. I would like to adapt these changes into my current quest_shop script as well, but I could not figure out how.

    All I need is to:

    1)

    Add the SQL commands from the voteforpoints.txt script to the quest_shop.txt

    Tables:  

     
    
    CREATE TABLE IF NOT EXISTS `cp_vfp_sites` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `votename` varchar(25) NOT NULL,
      `voteurl` varchar(255) NOT NULL,
      `voteinterval` int(11) NOT NULL,
      `votepoints` int(11) NOT NULL,
      `imgname` varchar(255) DEFAULT NULL,
      `imgurl` varchar(255) DEFAULT NULL,
      `datetime_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
    
    ALTER TABLE `cp_createlog` ADD `votepoints` int(11) NOT NULL DEFAULT '0';
    
    
    CREATE TABLE IF NOT EXISTS `cp_vfp_logs` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `sites_id` int(11) NOT NULL,
      `timestamp_expire` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      `timestamp_voted` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      `ipaddress` varchar(155) NOT NULL,
      `account_id` int(11) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;

    Quest_Shop Script:

     
    //===== Hercules Script ====================================== //= Euphy's Quest Shop //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.6a //===== 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. //============================================================ // Shop NPCs -- supplying no argument displays entire menu. // callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}}; //============================================================ prontera,150,150,4 script Quests#1 4_M_GENIE,{ 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],"#votepoints","Vote Points"; // ----------------------------------------------------------- // Shop IDs -- to add shops, copy dummy data at bottom of file. // setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...}; // ----------------------------------------------------------- setarray .Shops$[1],"Head","Wings1","Wings"; // ----------------------------------------------------------- // 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>{,...}); // ----------------------------------------------------------- //Head Add(1,19015,1,350000000,50,7027,200,7265,200,932,350,7038,400); Add(1,15004,1,350000000,0,7027,200,7265,200,932,350,7038,400); Add(1,15001,1,350000000,0,7027,200,7265,200,932,350,7038,400); //Wings1 Add(2,15021,1,300000000,0,7440,100,602,250,1055,400,7168,450); Add(2,15031,1,300000000,0,7440,100,602,250,1055,400,7168,450); //Wings Add(2,15022,1,400000000,0,1058,250,7168,300,7064,350,1059,520,7511,600); // ----------------------------------------------------------- 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 ocurred."; end; } dispbottom "Select one item per 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 cannot do this 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[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192))) set .@preview,1; addtimer 1000, strnpcinfo(0)+"::OnEnd"; while(1) { switch(select(" ~ Do Quest ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Equip Item...":"")+": ~ ^777777Cancel^000000")) { case 1: if (@qe[0]) { mes "[Quest Shop]"; mes "One or more items are missing."; close; } if (!checkweight(.@q[0],.@q[2])) { mes "[Quest Shop]"; mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" weight capacity to complete this transaction.^000000"; close; } if (.@q[4]) 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 completed the quest "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(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(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,19015:-1,8100:-1,8104:-1 - shop qshop2 -1,15021:-1,15039:-1 - shop qshop3 -1,8226:-1
    //===== Hercules Script ======================================
    //= Euphy's Quest Shop
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.6a
    //===== 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.
    //============================================================
    
    // Shop NPCs -- supplying no argument displays entire menu.
    //	callfunc "qshop"{,<shop ID>{,<shop ID>{,...}}};
    //============================================================
    prontera,150,150,4	script	Quests#1	4_M_GENIE,{ 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],"#votepoints","Vote Points";
    
    // -----------------------------------------------------------
    //  Shop IDs -- to add shops, copy dummy data at bottom of file.
    //	setarray .Shops$[1],"<Shop 1>","<Shop 2>"{,...};
    // -----------------------------------------------------------
    
    	setarray .Shops$[1],"Head","Wings1","Wings";
    
    // -----------------------------------------------------------
    //  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>{,...});
    // -----------------------------------------------------------
    //Head
    	Add(1,19015,1,350000000,50,7027,200,7265,200,932,350,7038,400);
    	Add(1,15004,1,350000000,0,7027,200,7265,200,932,350,7038,400);
    	Add(1,15001,1,350000000,0,7027,200,7265,200,932,350,7038,400);
    
    
    	
    //Wings1
    	Add(2,15021,1,300000000,0,7440,100,602,250,1055,400,7168,450);
    	Add(2,15031,1,300000000,0,7440,100,602,250,1055,400,7168,450);
    
    //Wings
    	Add(2,15022,1,400000000,0,1058,250,7168,300,7064,350,1059,520,7511,600);
    
    
    
    // -----------------------------------------------------------
    
    	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 ocurred.";
    		end;
    	}
    	dispbottom "Select one item per 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 cannot do this 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[2] > 0 && ((@qe[1] & 1) || (@qe[1] & 256) || (@qe[1] & 512) || (@qe[1] & 1024) || (@qe[1] & 2048) || (@qe[1] & 4096) || (@qe[1] & 4) || (@qe[1] & 8192)))
    		set .@preview,1;
    	addtimer 1000, strnpcinfo(0)+"::OnEnd";
    	while(1) {
    		switch(select(" ~ Do Quest ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?" ~ Equip Item...":"")+": ~ ^777777Cancel^000000")) {
    		case 1:
    			if (@qe[0]) {
    				mes "[Quest Shop]";
    				mes "One or more items are missing.";
    				close;
    			}
    			if (!checkweight(.@q[0],.@q[2])) {
    				mes "[Quest Shop]";
    				mes "^FF0000You need "+(((.@q[2]*getiteminfo(.@q[0],6))+Weight-MaxWeight)/10)+" weight capacity to complete this transaction.^000000";
    				close;
    			}
    			if (.@q[4]) 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 completed the quest "+((.@q[2] > 1)?.@q[2]+"x "+getitemname(.@q[0]):A_An(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(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,19015:-1,8100:-1,8104:-1
    -	shop	qshop2	-1,15021:-1,15039:-1
    -	shop	qshop3	-1,8226:-1
    

    2)

    NPC Vote4Points (only need the SQL commands cause I won't be using this script):

     
    prontera,150,150,4 script VFP Manager 62,{ function getPoints; set .@n$, "[VFP Manager]"; set .@settings, 1; // 0 = item, 1 = shop set .@itemReward, 501; // if settings is set to item set .@convertRate, 2; // 2 Vote Points for 1 Red Potion set .vp, getPoints(getcharid(3)); switch (.@settings) { case 0: mes .@n$; mes "Would you like to convert your "+ .vp +" Vote Points?"; mes "^ff0000The current convert rate is "+ .@convertRate +" Vote Points for 1 "+ getitemname(.@itemReward) +"."; next; menu "Yes", L_Convert, "No", -; mes .@n$; mes "Bye, then."; break; case 1: mes .@n$; mes "You have ^ff0000"+ .vp +"^000000 Vote Points."; mes "Would you like to go shopping?"; next; menu "Yes", -, "No", L_Goodbye; mes .@n$; mes "Have fun shopping!"; callshop "votepoints_shop",1; npcshopattach "votepoints_shop"; end; } L_Goodbye: mes .@n$; mes "Goodbye, then."; close; L_Convert: if (.vp < .@convertRate) goto L_VotePointsTooLow; mes .@n$; mes "How much Vote Points would you like to convert?"; next; menu "All", L_ConvertAll, "Input Amount", L_ConvertAmount; L_ConvertAmount: input .@convert; if (.@convert > .vp) goto L_VotePointsTooLow; set .vp, ((.vp - .@convert) + (.@convert % .@convertRate)); set .@convert, (.@convert / .@convertRate); getitem .@itemReward, .@convert; query_sql("UPDATE cp_createlog SET votepoints = "+ .vp +" WHERE account_id = "+ getcharid(3)); mes .@n$; mes "You have received "+ .@convert +"x "+ getitemname(.@itemReward) +"."; mes "Your current Vote Points is "+ .vp; close; L_ConvertAll: set .@convert, (.vp / .@convertRate); set .vp, (.vp % .@convertRate); getitem .@itemReward, .@convert; query_sql("UPDATE cp_createlog SET votepoints = "+ .vp +" WHERE account_id = "+ getcharid(3)); mes .@n$; mes "You have received "+ .@convert +"x "+ getitemname(.@itemReward) +"."; mes "Your current Vote Points is "+ .vp; close; L_VotePointsTooLow: mes .@n$; mes "Your Vote Points is too low. Come back when you have the minimum amount of Vote Points."; close; function getPoints { set .@account_id, getarg(0); set .@count, query_sql("SELECT votepoints FROM cp_createlog WHERE account_id = "+ .@account_id, .@votepoints); return .@count ? .@votepoints : 0; } OnBuyItem: set .@cost,0; for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) for(set .@j,0; .@j<getarraysize(.itemShop); set .@j,.@j+2) if (@bought_nameid[.@i] == .itemShop[.@j]) { set .@cost, .@cost+(.itemShop[.@j+1]*@bought_quantity[.@i]); break; } mes .@n$; if (.@cost > .vp) mes "You don't have enough Vote Points."; else { for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) { getitem @bought_nameid[.@i], @bought_quantity[.@i]; dispbottom "Purchased "+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+"."; } set .vp, .vp - .@cost; query_sql("UPDATE cp_createlog SET votepoints = votepoints - "+ .@cost +" WHERE account_id = "+ getcharid(3)); mes .@n$; mes "Deal completed."; mes "You now have ^ff0000"+ .vp +"^000000 Vote Points."; emotion e_cash; } set .@cost,0; deletearray @bought_nameid[0], getarraysize(@bought_nameid); deletearray @bought_quantity[0], getarraysize(@bought_quantity); close; OnInit: setarray .itemShop[0], 501,2,607,5; // <ITEM_ID>,<PRICE>,... npcshopdelitem "votepoints_shop",512; for(set .@i, 0; .@i < getarraysize(.itemShop); set .@i, .@i+2) npcshopadditem "votepoints_shop", .itemShop[.@i], .itemShop[.@i+1]; end; } - shop votepoints_shop -1,512:-1
    prontera,150,150,4	script	VFP Manager	62,{
    	function getPoints;
    
    	set .@n$, 			"[VFP Manager]";
    	set .@settings, 	1;		// 0 = item, 1 = shop
    	set .@itemReward, 	501;	// if settings is set to item
    	set .@convertRate, 	2;		// 2 Vote Points for 1 Red Potion
    	set .vp, 			getPoints(getcharid(3));
    	
    	switch (.@settings) {
    		case 0:
    			mes .@n$;
    			mes "Would you like to convert your "+ .vp +" Vote Points?";
    			mes "^ff0000The current convert rate is "+ .@convertRate +" Vote Points for 1 "+ getitemname(.@itemReward) +".";
    			next;
    			menu "Yes", L_Convert, "No", -;
    			mes .@n$;
    			mes "Bye, then.";
    			break;
    		case 1:
    			mes .@n$;
    			mes "You have ^ff0000"+ .vp +"^000000 Vote Points.";
    			mes "Would you like to go shopping?";
    			next;
    			menu "Yes", -, "No", L_Goodbye;
    			mes .@n$;
    			mes "Have fun shopping!";
    			callshop "votepoints_shop",1;
    			npcshopattach "votepoints_shop";
    			end;
    	}
    	
    	L_Goodbye:
    		mes .@n$;
    		mes "Goodbye, then.";
    		close;
    	
    	L_Convert:
    		if (.vp < .@convertRate)
    			goto L_VotePointsTooLow;
    		mes .@n$;
    		mes "How much Vote Points would you like to convert?";
    		next;
    		menu "All", L_ConvertAll, "Input Amount", L_ConvertAmount;
    	
    	L_ConvertAmount:
    		input .@convert;
    		
    		if (.@convert > .vp)
    			goto L_VotePointsTooLow;
    		
    		set .vp, ((.vp - .@convert) + (.@convert % .@convertRate));
    		set .@convert, (.@convert / .@convertRate);
    		getitem .@itemReward, .@convert;
    		query_sql("UPDATE cp_createlog SET votepoints = "+ .vp +" WHERE account_id = "+ getcharid(3));
    		
    		mes .@n$;
    		mes "You have received "+ .@convert +"x "+ getitemname(.@itemReward) +".";
    		mes "Your current Vote Points is "+ .vp;
    		close;
    		
    	L_ConvertAll:
    		set .@convert, (.vp / .@convertRate);
    		set .vp, (.vp % .@convertRate);
    		getitem .@itemReward, .@convert;
    		query_sql("UPDATE cp_createlog SET votepoints = "+ .vp +" WHERE account_id = "+ getcharid(3));
    		
    		mes .@n$;
    		mes "You have received "+ .@convert +"x "+ getitemname(.@itemReward) +".";
    		mes "Your current Vote Points is "+ .vp;
    		close;
    	
    	L_VotePointsTooLow:
    		mes .@n$;
    		mes "Your Vote Points is too low. Come back when you have the minimum amount of Vote Points.";
    		close;
    	
    	function getPoints {
    		set .@account_id, getarg(0);
    		
    		set .@count, query_sql("SELECT votepoints FROM cp_createlog WHERE account_id = "+ .@account_id, .@votepoints);
    		
    		return .@count ? .@votepoints : 0;
    	}
    	
    	OnBuyItem:
    		set .@cost,0;
    		for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1)
    			for(set .@j,0; .@j<getarraysize(.itemShop); set .@j,.@j+2)
    				if (@bought_nameid[.@i] == .itemShop[.@j]) {
    					set .@cost, .@cost+(.itemShop[.@j+1]*@bought_quantity[.@i]);
    					break;
    				}
    		mes .@n$;
    		if (.@cost > .vp) mes "You don't have enough Vote Points.";
    		else {
    			for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) {
    				getitem @bought_nameid[.@i], @bought_quantity[.@i];
    				dispbottom "Purchased "+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+".";
    			}
    			set .vp, .vp - .@cost;
    			query_sql("UPDATE cp_createlog SET votepoints = votepoints - "+ .@cost +" WHERE account_id = "+ getcharid(3));
    			mes .@n$;
    			mes "Deal completed.";
    			mes "You now have ^ff0000"+ .vp +"^000000 Vote Points.";
    			emotion e_cash;
    		}
    		set .@cost,0;
    		deletearray @bought_nameid[0], getarraysize(@bought_nameid);
    		deletearray @bought_quantity[0], getarraysize(@bought_quantity);
    		close;
    	
    	OnInit:
    		setarray .itemShop[0],	501,2,607,5; // <ITEM_ID>,<PRICE>,...
    		
    		npcshopdelitem "votepoints_shop",512;
    		for(set .@i, 0; .@i < getarraysize(.itemShop); set .@i, .@i+2)
    			npcshopadditem "votepoints_shop", .itemShop[.@i], .itemShop[.@i+1];
    	end;
    }
    
    -	shop	votepoints_shop	-1,512:-1

    3)

    set currency as "votepoints"and display user current vote points, (since all the items will be purchased by votepoints only)

    * in here we would have to remove the current quest_shop box where it shows the requirements and substitute for this one, but keeping the "Equip" item option.

     

    Third Script: 

     
    // Leave this alone... - shop PvPPoint_Shop -1,512:100 prontera,153,150,5 script PvP Shop 623,{ function ShopSettings; function ValidateCost; function CurrencyInfo; function ClearData; function ValueConvert; function ErrorNotice; mes "[PvP Shop]"; //next; // Menu Selection select("PvP Shop"); ClearData(); ShopSettings( @menu ); npcshopitem "PvPPoint_Shop",512,100; npcshopdelitem "PvPPoint_Shop",512; for(set .@i,0; .@i < getarraysize( @ItemLists ); set .@i,.@i+1) npcshopadditem "PvPPoint_Shop",@ItemLists[.@i],@ItemCost[.@i]; mes "Okay...wait awhile"; mes "^00FF00____________________________^000000"; CurrencyInfo( @Currency$ ); mes "^00FF00____________________________^000000"; callshop "PvPPoint_Shop",1; npcshopattach "PvPPoint_Shop"; end; function ShopSettings { switch( getarg(0) ){ case 1: // Currency [ Item ID / Variable Name ] set @Currency$,"votepoints"; // Item ID Lists // PUT YOUR CUSTOM ITEM ID's setarray @ItemLists[0],501,502,503,504,505; // Item Price // PUT YOUR CUSTOM ITEM Price setarray @ItemCost[0],1,2,3,4,5; break; // Case 4,5,6.....etc... default: ErrorNotice( "Invalid Menu Selection for Menu "+@menu+"." ); close; } if( @Currency$ == "" ) ErrorNotice( "Invalid Currency Setting in Menu "+@menu+" ." ); if( getarraysize( @ItemCost ) != getarraysize( @ItemLists ) || getarraysize( @ItemLists ) != getarraysize( @ItemCost ) ) ErrorNotice( "Missing or Extra Value of Item or Cost Settings in Menu "+@menu+" ." ); return; } function ErrorNotice { mes "^FF0000ERROR^000000 - "+getarg(0); mes "^00FF00____________________________^000000"; mes "Inform this Message to ^0000FFGame Staffs^000000 immediately !"; close; } function CurrencyInfo { if( getitemname( atoi( getarg(0) ) ) != "null" ){ mes "Item Currency : ^FF0000"+getitemname( atoi( getarg(0) ) )+"^000000"; mes "Available Amount : ^0000FF"+ValueConvert( countitem( atoi( getarg(0) ) ) )+"^000000"; }else if( getitemname( atoi( getarg(0) ) ) == "null" ){ mes "Variable Currency : ^FF0000"+getarg(0)+"^000000"; mes "Available Amount : ^0000FF"+ValueConvert( getd( getarg(0) ) )+"^000000"; } return; } function ValidateCost { if( getitemname( atoi( getarg(0) ) ) != "null" ){ if( countitem( atoi( getarg(0) ) ) < getarg(1) ) return 1; }else{ if( getd( getarg(0) ) < getarg(1) ) return 1; } return 0; } function ClearData { set @Currency$,""; set @TotalCost,0; deletearray @bought_nameid[0],getarraysize( @bought_nameid ); deletearray @bought_quantity[0],getarraysize( @bought_quantity ); deletearray @ItemLists[0],getarraysize( @ItemLists ); deletearray @ItemCost[0],getarraysize( @ItemCost ); return; } function ValueConvert { set .@num, atoi(""+getarg(0)); if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0); set .@l, getstrlen(""+.@num); for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) { set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$; if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$; } return .@num$; } OnBuyItem: ShopSettings( @menu ); for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1) for(set @j,0; @j < getarraysize( @ItemLists ); set @j,@j+1) if( @ItemLists[@j] == @bought_nameid[@i] ) set @TotalCost,@TotalCost + ( @ItemCost[@j] * @bought_quantity[@i] ); mes "^FF0000 BILLING LIST^000000"; mes "^00FF00____________________________^000000"; for( set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1 ) mes "^FF0000"+@bought_quantity[@i]+" x ^0000FF"+getitemname( @bought_nameid[@i] )+"^000000"; mes "^00FF00____________________________^000000"; if( getitemname( atoi( @Currency$ ) ) != "null" ) mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" x "+getitemname( atoi( @Currency$ ) )+"^000000"; else if( getitemname( atoi( @Currency$ ) ) == "null" ){ mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" "+@Currency$+"^000000"; } mes "^00FF00____________________________^000000"; if( ValidateCost( @Currency$,@TotalCost ) ){ if( getitemname( atoi( @Currency$ ) ) != "null" ) mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+getitemname( atoi( @Currency$ ) )+"^000000"; else{ mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+@Currency$+"^000000"; } }else{ if( select( "^0000FFPurchase^000000:Cancel" ) == 1 ){ if( getitemname( atoi( @Currency$ ) ) != "null" ) delitem atoi( @Currency$ ),@TotalCost; else{ set getd( @Currency$ ),getd( @Currency$ ) - @TotalCost; } for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1) getitem @bought_nameid[@i],@bought_quantity[@i]; message strcharinfo(0),"Purchased "+getarraysize( @bought_nameid )+" Items."; // announce "["+strcharinfo(0)+"] has purchase a ["+ getitemname(@bought_nameid) +"] from the Event Shop!", 0; mes "Thank you for shopping."; } } ClearData(); close; OnInit: do { delwaitingroom; waitingroom "Check Me~!!",0; sleep 3000; // Evites super infinity loop } while(1); // End Loop end; } }
    // Leave this alone...
    -	shop	PvPPoint_Shop	-1,512:100
    
    
    prontera,153,150,5	script	PvP Shop	623,{
    function ShopSettings;
    function ValidateCost;
    function CurrencyInfo;
    function ClearData;
    function ValueConvert;
    function ErrorNotice;
    
    
    		mes "[PvP Shop]";
    //next;
    // Menu Selection
    select("PvP Shop");
    
    ClearData();
    ShopSettings( @menu );
    npcshopitem "PvPPoint_Shop",512,100;
    npcshopdelitem "PvPPoint_Shop",512;
    for(set .@i,0; .@i < getarraysize( @ItemLists ); set .@i,.@i+1)
    	npcshopadditem "PvPPoint_Shop",@ItemLists[.@i],@ItemCost[.@i];
    mes "Okay...wait awhile";
    mes "^00FF00____________________________^000000";
    CurrencyInfo( @Currency$ );
    mes "^00FF00____________________________^000000";
    callshop "PvPPoint_Shop",1;
    npcshopattach "PvPPoint_Shop";
    end;
    
    
    function	ShopSettings	{
    	switch( getarg(0) ){
    		case 1:
    			// Currency [ Item ID / Variable Name ]
    			set @Currency$,"votepoints";
    			// Item ID Lists			// PUT YOUR CUSTOM ITEM ID's
    			setarray @ItemLists[0],501,502,503,504,505;
    			// Item Price			// PUT YOUR CUSTOM ITEM Price
    			setarray @ItemCost[0],1,2,3,4,5;
    			break;
    		// Case 4,5,6.....etc...
    		default:
    			ErrorNotice( "Invalid Menu Selection for Menu "+@menu+"." );
    			close;
    	}
    
    if( @Currency$ == "" )
    	ErrorNotice( "Invalid Currency Setting in Menu "+@menu+" ." );
    if( getarraysize( @ItemCost ) != getarraysize( @ItemLists ) || getarraysize( @ItemLists ) != getarraysize( @ItemCost ) )
    	ErrorNotice( "Missing or Extra Value of Item or Cost Settings in Menu "+@menu+" ." );
    return;
    }
    
    function	ErrorNotice	{
    	mes "^FF0000ERROR^000000 - "+getarg(0);
    	mes "^00FF00____________________________^000000";
    	mes "Inform this Message to ^0000FFGame Staffs^000000 immediately !";
    	close;
    }
    
    function	CurrencyInfo	{
    	if( getitemname( atoi( getarg(0) ) ) != "null" ){
    		mes "Item Currency : ^FF0000"+getitemname( atoi( getarg(0) ) )+"^000000";
    		mes "Available Amount : ^0000FF"+ValueConvert( countitem( atoi( getarg(0) ) ) )+"^000000";
    	}else if( getitemname( atoi( getarg(0) ) ) == "null" ){
    		mes "Variable Currency : ^FF0000"+getarg(0)+"^000000";
    		mes "Available Amount : ^0000FF"+ValueConvert( getd( getarg(0) ) )+"^000000";
    	}
    return;
    }
    
    function	ValidateCost	{
    	if( getitemname( atoi( getarg(0) ) ) != "null" ){
    		if( countitem( atoi( getarg(0) ) ) < getarg(1) ) return 1;
    	}else{
    		if( getd( getarg(0) ) < getarg(1) ) return 1;
    	}
    return 0;
    }
    
    function ClearData	{
    	set @Currency$,"";
    	set @TotalCost,0;
    	deletearray @bought_nameid[0],getarraysize( @bought_nameid );
    	deletearray @bought_quantity[0],getarraysize( @bought_quantity );
    	deletearray @ItemLists[0],getarraysize( @ItemLists );
    	deletearray @ItemCost[0],getarraysize( @ItemCost );
    return;
    }
    
    function	ValueConvert	{
    	set .@num, atoi(""+getarg(0));
    	if ( .@num == 0 || .@num >= 2147483647 ) return getarg(0);
    	set .@l, getstrlen(""+.@num);
    	for ( set .@i,0; .@i < .@l; set .@i, .@i + 1 ) {
    		set .@num$, .@num % pow(10,.@i+1) / pow(10,.@i) + .@num$;
    			if ( (.@i+1) % 3 == 0 && .@i+1 != .@l ) set .@num$, ","+ .@num$;
    	}
    	return .@num$;
    }
    
    OnBuyItem:
    	ShopSettings( @menu );
    	for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1)
    		for(set @j,0; @j < getarraysize( @ItemLists ); set @j,@j+1)
    			if( @ItemLists[@j] == @bought_nameid[@i] )
    			set @TotalCost,@TotalCost + ( @ItemCost[@j] * @bought_quantity[@i] );
    	mes "^FF0000       BILLING LIST^000000";
    	mes "^00FF00____________________________^000000";
    	for( set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1 )
    			mes "^FF0000"+@bought_quantity[@i]+" x ^0000FF"+getitemname( @bought_nameid[@i] )+"^000000";
    	mes "^00FF00____________________________^000000";
    
    	if( getitemname( atoi( @Currency$ ) ) != "null" )
    		mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" x "+getitemname( atoi( @Currency$ ) )+"^000000";
    	else if( getitemname( atoi( @Currency$ ) ) == "null" ){
    		mes "Total Cost : ^0000FF"+ValueConvert( @TotalCost )+" "+@Currency$+"^000000";
    	}
    	
    	mes "^00FF00____________________________^000000";
    	if( ValidateCost( @Currency$,@TotalCost ) ){
    		if( getitemname( atoi( @Currency$ ) ) != "null" )
    			mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+getitemname( atoi( @Currency$ ) )+"^000000";
    		else{
    			mes "[ ^FF0000X^000000 ] Insufficient ^0000FF"+@Currency$+"^000000";
    		}
    	}else{
    		if( select( "^0000FFPurchase^000000:Cancel" ) == 1 ){
    			if( getitemname( atoi( @Currency$ ) ) != "null" )
    				delitem atoi( @Currency$ ),@TotalCost;
    			else{
    				set getd( @Currency$ ),getd( @Currency$ ) - @TotalCost;
    			}
    			for(set @i,0; @i < getarraysize( @bought_nameid ); set @i,@i+1)
    				getitem @bought_nameid[@i],@bought_quantity[@i];
    			message strcharinfo(0),"Purchased "+getarraysize( @bought_nameid )+" Items.";
    		//	announce "["+strcharinfo(0)+"] has purchase a ["+ getitemname(@bought_nameid) +"] from the Event Shop!", 0;
    			mes "Thank you for shopping.";
    		}
    	}
    ClearData();
    close;
    OnInit:
    	do {
    		delwaitingroom;
    		waitingroom "Check Me~!!",0;
    	sleep 3000; // Evites super infinity loop
    	} while(1); // End Loop
    end;
    	}
    }

    Images: 

     

    tab2.jpg.f3c20daaa16dda892ad8300fd6de3865.jpg

     Add the box where it shows the user current Vote Points (add it when choosing the item to purchase).

    1667454503_tabmessage.jpg.f85d64fde737e15b95af0a283d4dddbb.jpg

     

     

    Sorry if it's confusing. I hope you guys can understand. And if anyone has a better way to do it please post bellow. I've been trying for so many days but my script knowledge is too low.

    Thank you in advance!


  4. On 6/5/2019 at 9:36 AM, Luciar said:

    Please refrain from posting in languages other than English outside of the International Communities section as per the forum guidelines.

    This forum is English only.

    The Portuguese section can be found here: https://herc.ws/board/forum/79-portuguese-community/

    My mistake. Sorry.

    18 hours ago, Dastgir said:

    New clients don't let player customise initial stats

    I'm using old client version.
    And why is that new clients don't let players choose initial stats?


  5. 12 hours ago, Mihael said:

    Antes de condenarmos o emulador por ser antigo, tente algumas coisas por padrão:

    • Verificar se a sua data.grf está atualizada.
    • Verificar a versão da packetver do seu emulador antigo, as vezes ele não suporta o client que está utilizando, ou possui alguma atualização que foi desenvolvida para sanar o seu problema nas versões atuais do emulador e você nem sabe.
    • Verificar se o seu cliente de jogo possui todos os arquivos da character_create dentro da pasta.

    Chuto que possa ser o seu cliente do jogo,

    Se tudo isso acima não der em nada tente baixar um novo, com outra packetver para testar. Por que se você testar e ver que acontece o mesmo problema já irá saber que é seu emulador, ai no caso eu recomendaria você baixar a última versão do Herc no git.

    data.grf atualizada

    versão do packetver é antigo porém antigamente funcionava normalmente. 

    character_create?

    Não posso utilizar a ultima versão do hercules pois eu fiz muitas alterações na SRC e não me recordo de todas elas, rs.


  6. #Update

    Nevermind, I just changed the ServerAddress in application.php file (localhost to my domain name) and it's working now. But I still can't figure out where I can change the Reset Password Link message, I'd like to add somethings to it. Does anyone know ?

    Hello there
    I don't know why but my password reset link is coming like "http://localhost?" instead of my domain name.
    Does anyone know how can I fix this? I tried searching for it but could not find where to change.

     

    Thanks in advance.


  7. On 4/10/2019 at 0:35 AM, Dastgir said:

    Hi all,

    To all those who want to avail my services, I would not be available for paid services.

    For all those who have availed my services but is pending, Refunds are initiated and I apologize for not completing it. (If you haven't received it yet, please do leave a message)

    I would not be able to take any paid services due to some unforeseen circumstances.

     

    Regards,

    Dastgir

    You've helped many of us, including me. I understand we all have personal issues, family matters to solve and etc, but I believe that once you've taken a job, you should finish it. I myself gave you all my server files, including purchased website and patcher, and you simply say you can't do it anymore? I hope everything is alright, and I hope you can find some time so you can finish what you've started.

    Kind Regards.


  8. On 3/21/2019 at 11:08 PM, 4144 said:

    With packet error, look like encryption disabled in client. By default server enable encryption always.

    Patch client without changing encryption or disable encryption in server configuration

    Thanks for the help. That solved the problem, but I also figured out a way to download VisualStudio 2013 and use it to compile my old emulator, it worked normally on W10.


  9. 9 minutes ago, lllaaazzz said:

    like 4144 said:

    I had the same problem when trying to update my old emulator

     

    I can only see the 2 images of your console which mention your database , the rest looks like a blank long cat

    so from that i can also suggest you figure out how to update your sql :P

     

     

    hers my client though, i never bother updating my emulator for 1.5 years now so ill happily give you mine if you want it

    https://megaupload.nz/Idjec1T5m2/2015-10-29aRagexeRE_patched_exe

     

     

     

    I appreciate the help, but I actually did not want to update any of my old server (2014 data client), my emulator is only til Hercules-12.sln, which means I can only compile using Visual Studio 2013 version, which I cannot find anymore and I think it's not even compatible with Windows 10. That's why I am using the latest emulator now, compiled with Visual Studio 2017.
    I don't know why the latest hercules emulator does not support 20140205 packet version. I could not even find the packet keys on packets.h, I believe everything's changed...


  10. 17 hours ago, 4144 said:

    look like you using new server code and old database

    see sql updates what server suggest to apply

    @update
    Tried using a new client (2014) with a PACKETVER 20140305, but still getting the same error of "unsupported packet". And yes I edited mmo.h and recompiled. Then I searched here on hercules forum about this error and found this from you:

    "in conf/map/battle/client.conf
    change packet_obfuscation to 0."


    it worked only with the new packetver 20140305, did not work for my 20140205 ...I believe it is because I have enabled packet encryption for my 20140205 hexed, so I tried to edit the src/map/packets.h but I've realized the latest hercules emulator does not have 20140205 packet version anymore...T_T

    Spoiler

    packet.thumb.png.a349b6023230e66cf102e95e672f2c58.png

     


  11. Hello,

    It has been a long time I since I had my last server, and recently I would like to set up an offline server.
    Short story, I followed AnnieRuru tutorial. I am being able to login with an account but not allowed to created characters, and I am also getting some errors.
    Please check the attached photos.

    Thanks in advance.

     
     
     
    Spoiler
     
     
     
    Spoiler
     
     
     
    Spoiler
     
     
     
     
    Spoiler

    char-server.jpgchar-server2.jpglogin-server.jpg

     

    birthdate.thumb.jpg.f37409d7ff0865f0119c2df38b676e9b.jpg

    columns.thumb.jpg.9533af94a80069cb4a7eb33ce5689c4e.jpg

     

     


  12. Hi,

     

    I know there`s a way to let all the accounts blocked (state = 5 on table login). State = 0 means that the account is ok to login, state = 5 means blocked permanently. How can I set all the accounts to state = 5?

     

    Could anyone do a sript sql so I can load on my database? or a npc would be fine also.

    I believe it`s more using doing it on SSH...I have MySQL version 5.6.

     

    Regards。

     

     

    Solved by @@Dastgir

     

     UPDATE `login` SET `state` =5 WHERE account_id>1; 


  13. @@mrlongshen

    Read all the comments in this topic that you`ll find an answer.

    There`s always a chance that you`ll get hacked. There`s no 100% safe when we talk about internet. If you`re using internet you`re not safe.

     

    If you do the installations by your own always remember to get the lastest versions of MySQL, php and phpmyadmin and never forget to SECURE them. And never use root access. Remove root user/change the name.


  14. Thank you everyone in this topic that tried to help. I believe with all these informations everyone can protect more their servers.

     

    I'm going to change to another company. I'm still deciding between GoDaddy and OVH. Besides the fact that GoDaddy is much more expensive than other companies but their Managed VPS comes with DDoS protection and also SiteLock Firewall protection, daily backups and cPanel. OVH just comes with the DDoS Protection and we have to pay for the daily backups, but it would still be more cheap than GoDaddy.


  15. I've been looking for a very good web application firewall but I still didin't try any.

    I've already used Hostgator and GoDaddy's company and both of them are partners with SiteLock (which has the Web Application Firewall) and I know SiteLock has many partners.

    I've been searching and I've found some Firewalls, paid and free. What do you guys know about WAF? Since I'm receiving many DDOs Attacks and also SQL Injection and Cross Site Scripting I believe a good firewall may help a lot.

     

    Paids:

    SiteLock

    CloudFlare

    Sucuri

     

    Free:

    Smoothwall

    ModSecurity

     

    @edit

    SiteLock won prizes for being the best company to offer a web security, but I saw many users saying that they prefer Sucuri because SiteLock only wants your money (it's what users says).

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.