Jump to content

Shio Devs

Members
  • Posts

    135
  • Joined

  • Last visited

Posts posted by Shio Devs

  1. If you show points as a Zeny amount, even if the transaction type is overwritten (as it is by the script), players with less Zeny than the cost, in Zeny (no matter if Zeny is actually used or not), will automatically be blocked from the purchase. That's why I didn't code it that way.

    It's easy to modify by looking for the 'npcshopadditem' line in the 'Add' function.

    So would it be possible to change it to a point value? i think it would require recoding?

  2.  

    Please learn to read the comments.

    // -----------------------------------------------------------
    //  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>{,...});
    // -----------------------------------------------------------
    

    Well actually i can read the comments just fine, its this im talkng about,

     

    	set .ShowZeny,0;	// Show Zeny cost, if any? (1: yes / 0: no)
    

    But instead of zeny Showing how many Vote points it would cost :P

  3. So its not and error or anything and do forgive if this counts as a request. But anyway, Alot of my players are requesting that the shop display the Point cost instead of zeny. Im using it as a vote point, and event currency shop, aka Poring Coins.

     

    Any way i could get some help on this? :3

    //===== 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 "vshop"{,<shop ID>{,<shop ID>{,...}}};
    //============================================================
    prontera,142,227,5	script	Vote For Points#1	115,{ callfunc "vshop"; }
    
    // Script Core
    //============================================================
    -	script	vote_shop	-1,{ 
    function Add; function Chk; function Slot;
    OnInit:
    	freeloop(1);
    
    // -----------------------------------------------------------
    //  Basic shop settings.
    // -----------------------------------------------------------
    
    	set .Announce,0;	// 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],"Items","Upper Headgears","Middle Headgears","Lower Headgears";
    
    // -----------------------------------------------------------
    //  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,12208,1,0,1);
    	Add(1,14545,1,0,3);
    	Add(1,12210,1,0,5);
    	Add(1,13989,1,0,1);
    	Add(1,14005,1,0,1);
    	Add(1,12103,1,0,3);
    
    	Add(2,28033,1,0,50);
    	Add(2,28034,1,0,50);
    	Add(2,28035,1,0,50);
    	Add(2,28036,1,0,50);
    	Add(2,28037,1,0,50);
    	Add(2,28038,1,0,50);
    	Add(2,28039,1,0,50);
    
    	Add(3,531,1,0,5);
    	Add(3,532,1,0,5);
    	Add(3,533,1,0,5);
    	Add(3,534,1,0,5);
    
    	Add(4,534,1,0,5);
    	Add(4,534,1,0,5);
    	Add(4,534,1,0,5);
    	Add(4,534,1,0,5);
    // -----------------------------------------------------------
    
    	freeloop(0);
    	set .menu$,"";
    	for(set .@i,1; .@i<=getarraysize(.Shops$); set .@i,.@i+1) {
    		set .menu$, .menu$+.Shops$[.@i]+":";
    		npcshopdelitem "vshop"+.@i,909;
    	}
    	end;
    
    OnMenu:
    	mes "[ ^ffaa7fVote Point Shop^000000 ]";
    	mes "Hello "+ strcharinfo(0) +", Please select a shop.";
    	next;
    
    	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 "vshop"+.@i,1;
    	npcshopattach "vshop"+.@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 of these. "+getitemname(.@q[0])+".";
    		end;
    	}
    		mes "[ ^ffaa7fVote Point Shop^000000 ]";
    	mes "^0055FF it costs"+((.@q[2] > 1)?.@q[2]+"x ":"")+Slot(.@q[0])+"^000000";
    	disable_items;
    	if (.@q[4]) mes "i "+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("Purchase ^0055FF"+getitemname(.@q[0])+"^000000:"+((.@preview && !@qe[7])?"Preview...":"")+":^777777Cancel^000000")) {
    		case 1:
    			if (@qe[0]) { 
    				mes "[Quest Shop]";
    				mes "You don't have enough Vote Points.";
    				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(1)+"[0]"),.@j[0],getarraysize(.@j);
    	npcshopadditem "vshop"+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	vshop	{
    	deletearray @i[0],getarraysize(@i);
    	for(set .@i,0; .@i<getargcount(); set .@i,.@i+1)
    		set @i[.@i],getarg(.@i);
    	doevent "vote_shop::OnMenu";
    	end;
    }
    
    
    // Dummy shop data -- copy as needed.
    //============================================================
    -	shop	vshop1	-1,909:-1
    -	shop	vshop2	-1,909:-1
    -	shop	vshop3	-1,909:-1
    -	shop	vshop4	-1,909:-1
    -	shop	vshop5	-1,909:-1
    

    Thanks very much,  - Shio.

  4. So I've found this poring Invasion, i was wondering if there we're a way, to make a count-able point shop for it? Where they could use the points. For example: Each poring killed = 1 Point. Shop : Headgear = 10 points. etc.

     

    Script:

    //===== rAthena Script =======================================
    //= Poring Summoner
    //===== By: ==================================================
    //= Bahmut (Made it automated)
    //= MoonlightRO (Original)
    //===== Current Version: =====================================
    //= 1.4
    //===== Compatible With: =====================================
    //= TXT & SQL
    //===== Link to orginal: =====================================
    //= [url="http://www.eathena.ws/board/index.php?showtopic=236779"]http://www.eathena.w...howtopic=236779[/url]
    //============================================================
    -	script	Poring Summoner	-1,{
    OnInit:
    	//---- NPC Config -----
    	set .SpecialPorings,100;
    	set .NormalPorings,0;
    	//---------------------
    	initnpctimer;
    	end;
     
    OnSpecialKill:
    	set .SpecialPorings[1],.SpecialPorings[1]-1;
    	announce strcharinfo(0) + " got a " + getitemname(.ItemID) + "!",bc_map;
    //	getitem .ItemID,1;
    	set PoringPoint,PoringPoint+1;
    	dispbottom "You got 1 Poring Point";
    	dispbottom "Total Poring Points:"+PoringPoint;
    	goto PoringCount;
     
    OnNormalKill:
    	set .NormalPorings[1],.NormalPorings[1]-1;
    	goto PoringCount;
     
    PoringCount:
    	announce "Special Poring: " + .SpecialPorings[1] + " || Normal Poring: " + .NormalPorings[1],bc_map;
    	if(!.SpecialPorings[1]) goto EndEvent;
    	end;
     
    OnClock1200:
    OnClock1600:
    OnClock2000:
    OnClock0000:
    OnClock0400:
    OnClock0800:
    
    RestartEvent:
    	set .Event,0;
    	set .SpecialPorings[1],0;
    	set .NormalPorings[1],0;
    	
    	removemapflag .Map$,mf_noskill;
    	set $@ran, rand(1,9);
    	if ($@ran == 9) set .Map$,"lighthalzen";
    	if ($@ran == 8) set .Map$,"louyang";
    	if ($@ran == 7) set .Map$,"comodo";
    	if ($@ran == 6) set .Map$,"xmas";
    	if ($@ran == 5) set .Map$,"aldebaran";
    	if ($@ran == 4) set .Map$,"payon";
    	if ($@ran == 3) set .Map$,"geffen";
    	if ($@ran == 2) set .Map$,"morocc";
    	if ($@ran == 1) set .Map$,"prontera";
    	killmonster .Map$,"All";
    	setmapflag .Map$,mf_noskill;
    	monster .Map$,0,0,"Poring",1002,.SpecialPorings,"Poring Summoner::OnSpecialKill";
    	monster .Map$,0,0,"Poring",1002,.NormalPorings,"Poring Summoner::OnNormalKill";
    	set .SpecialPorings[1],.SpecialPorings;
    	set .NormalPorings[1],.NormalPorings;
    	announce "The Poring Event has begun!",bc_all;
    	announce "Location: " + .Map$,bc_all;
    	announce "Special Poring: " + .SpecialPorings,bc_all;
    	announce "Normal Poring: " + .NormalPorings,bc_all;
     
    	setnpctimer 0;
    	close;
    
    EndEvent:
    	if(.Event) announce "The Poring Summon Event is now over!",bc_all;
    	killmonster .Map$,"All";
    	set .Event,0;
    	set .SpecialPorings[1],0;
    	set .NormalPorings[1],0;
    	end;
    }
    

    Thanks for checking this out, Shio.

  5. If you were using 2012 clients to latest, make sure you provided the lub files as well to avoid such errors as this.

     

    If you find this useful please press the green UP button. Thanks.

    Lol Yuka made it clear its a 2010 Client though.

     

    Hi,

     

    I'm using a 2010-12-28 client and sometimes on loading a map (especially in BG) I get Gravity Errors.

  6. Hi,

     

    I have mailed them twice already in the past 3 weeks, under https://harmonize.it/contact, but they won't answer me..

    Is Harmony still purchasable and do I got the right homepage?

     

    I just need it for my Server asap.. :/

     

    Other than that, is there any other/ better stuff to use?

    From what i hear, Harmony is on and off a lot,  I do believe there is authorized re-sellers of it. Imo I would not use anything other than :/

  7. hi im using eathena and i would like to fix the stances when your in the top 10 ranked you should use 4 continuously skill but rathena script is not working r15560 in eathena anyone can fix some parse line in this revision please thanks a lot!

    What is it exactly your asking for, the Top 4 Ranking Taekwon buffs for eAthena, but you want to use rAthenas code?

  8.  

    i remember you, looks like you didnt get me D: what i was trying to say is that i recoomend you to start latest rAthena from 0 then do your custom parts, it would be mor easy, since herculess made a lot of mods.

     

    you can brutely try to run rathena with herculess sql and there we can start to figure out how to solve your bugs, but believe me, that will be a lot of hard, it's better to just start a clean rAthena

     

    regards o:

     

    and sorry i dont have nor i kno any db convertor

    Personally from what i've discovered about Hercules or have been told about...I feel scared for it lol. The way they structure the item_db is just horrible and seriously, Scripting release regulations!? The only good things I have heard about Hercules is cleaner source and the plugin system.

    And apparently with the latest rev of Hercules, the PM system crashes people. o/ First hand experience

     

    As much as we all love taking swings on another emulator, There is no need to do so. @BlackBerie, Hopefully your SQL files are not to big yet, But you most likely would have to do this manually :/

  9. okay heres the thing. i tried reading some of the threads here and i couldnt find specifically my issue.

     

    i opened a server in AsuraHosting and switched my emulator to rAthena.

    i got the server up with LOTS of problem in the database which was later on resolved.

     

    but the problem is i finally found out that my server is not compatible with the client.

     

    i already have a server on my computer and i wish to upload it to my Server in asura hosting.

    tbh i tried updating the svn version of my server but the only message i get is Skipped '.'

     

    can anyone help me out setting up my server? or rather get my preconfigured server to asura hosting?

     

    Well, rAthena uses GitHub Now, So please do install that, Also if your simply looking to upload your server to Asurahosting, It can be done very easily. There is a Multi Purpose Tool called WinSCP. Which can help you with this. As far as the client, may i ask your client date?

     

    Link : http://winscp.net/download/winscp553setup.exe

    • Upvote 1
×
×
  • Create New...