Jump to content

Kido

Members
  • Posts

    1445
  • Joined

  • Last visited

  • Days Won

    10

Posts posted by Kido

  1. thanks for the suggestion, but i would just add a different no_item so the npc may say something different if the player tryied to claim more zeny by giving more than 10,000 coins, like this:

    quiz_02,49,386,4	script	Coin Buyer	790,{
    
    set @sPrice,10000;
    set @coins,countitem(675);
    
    mes "Hello, i can trade your silver coins for 10k of zeny. Wanna deal?";
    next;
    menu "Sure, lets get rich",Cfz,"No thanks.",nothx;  
      
    Cfz:
    if(@coins)<1)goto no_item;
    input @amount;
    
    if(@amount > @coins)goto over_item;
    
    delitem 675,@amount;
    set Zeny,Zeny+(@amount*@sPrice);
    close;
    
    //added this when trying to give more than the maxium amount you want to trade
    no_item:
    mes "You dont have enough coins.";
    close;
    
    over_item:
    mes "You have too many coins, im not rich to give you that great amount of zeny..."
    close;
    
    nothx:
    mes "You are welcome anyway";
    close;
    
    }
    

    Thanks again :)

  2. Well based on some scripts tha i found on google i made my own coin excanger and goues like this

    quiz_02,49,386,4	script	Coin Buyer	790,{
    
    set @sPrice,10000;
    mes "Hello, i can trade your silver coins for 10k of zeny. Wanna deal?";
    next;
    menu "Sure, lets get rich",Cfz,"No thanks.",nothx;    
    Cfz:
    if(countitem(675)<1)goto no_item;
    input @amount;
    delitem 675,1*@amount;
    set Zeny,Zeny+(@amount*@sPrice);
    close;
    no_item:
    mes "You dont have enough coins.";
    close;
    nothx:
    mes "You are welcome anyway";
    close;
    
    }
    

    everything works fine, or it looks like it, BUT when a player types 100,000 the coiner gives 1B of zeny DDD:!

    so may i ask

    how to make the max value to input be 10,000 and no more D:?!

    thanks in advance

     

    edit:

    i tryied with input_max_value: 10000

    but it did not work ):

     

    second edit:

    i fixed, the script ended like this, i just added the min and max value to the input instead, i got it from scripts_eathena.ttx

    quiz_02,49,386,4	script	Coin Buyer	790,{
    
    set @sPrice,10000;
    mes "Hello, i can trade your silver coins for 10k of zeny. Wanna deal?";
    next;
    menu "Sure, lets get rich",Cfz,"No thanks.",nothx;    
    Cfz:
    if(countitem(675)<1)goto no_item;
    input @amount,0,10000;
    delitem 675,1*@amount;
    set Zeny,Zeny+(@amount*@sPrice);
    close;
    no_item:
    mes "You dont have enough coins.";
    close;
    nothx:
    mes "You are welcome anyway";
    close;
    
    }
    

    Now this is how it will work

    iIf player deals:

    1 Silver = 10,000z

    10 Silver = 100,000z

    100 Silver = 1,000,000z

    1,000 Silver = 10,000,000z

    10,000 Silver = 100,000,000z

    >10,000 Will take only 10,000 coins and give the proper amount (100,000,000z) of zeny.

     

    Even no one readed/see this before i fix it, i will say thanks anyways :D!

  3. // Eypheria RO
    // Manipulado por LinoBH
    // Este NPC esta siendo usado en Eypheria RO Server
    // Web del Server: http://forostotalro.awardspace.com
    
    
    prontera,164,161,4	script	WoE-King	108,{  doevent "WOE_CONTROL::OnMenu"; end; OnAgitStart: while(agitcheck()) { misceffect 990; sleep 425; } end; }
    
    -	script	WOE_CONTROL	-1,{
    function Disp_Owner; function Add_Zero;
    
    OnInit:
    // --------------------------------------------------------------------------------------------------------------------------
    
    	set .CastleWarp,0;		// 1: Always enable all castle warps. | 0: Warp only to active castles.
    	set .AutoKick,1;		// Automatically kick players from inactive castles during WOE? (1:yes / 0:no)
    	set .ExitWarp,1;		// Warp all players from castles when WOE ends? (1:yes / 0:no)
    	set .GMAccess,99;		// GM level required to access Session Manager (cannot be 0)
    	setarray .Reward[1],675,1000;	// Reward for all members of conquering guilds, per castle: <ID>,<Count>{,...} (0 to disable)
    	
    // --------------------------------------------------------------------------------------------------------------------------
    	set .Size, getarraysize($WOE_CONTROL);
    	setarray .Castles$[0],
    		"prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05",
    		"payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05",
    		"gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05",
    		"aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05",
    		"arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05",
    		"schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05";
    	setarray .EndLabel$[0],"aru01","aru02","aru03","aru04","aru05","sch01","sch02","sch03","sch04","sch05";
    	setarray .Days$[0],"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday";
    	setarray .Regions$[0],"Prontera","Payon","Geffen","Aldebaran","Arunafeltz","Schwaltzvalt";
    	setarray .Map$[0],"prt_gld","pay_gld","gef_fild13","alde_gld","aru_gld","sch_gld";
    	setarray .MapX[0],134,240,153,111,208,121,295,317,140,204,214,308,143,193,305,48, 95,142,239,264,158,83, 68,299,292,293,288, 97,137, 71;
    	setarray .MapY[0], 65,128,137,240,240,233,116,293,160,266, 75,240,240,278, 87,83,249, 85,242, 90,272,47,155,345,107,100,252,196, 90,315;
    	if (!agitcheck() && !agitcheck2()) sleep 4000;
    	set .Init,1;
    OnMinute00:
    	if (agitcheck() || agitcheck2()) {
    		for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    			if (gettime(4)==$WOE_CONTROL[.@i] && gettime(3)==$WOE_CONTROL[.@i+2]) {
    			OnWOEEnd:
    				announce "The War Of Emperium is over!",bc_all|bc_woe;
    				AgitEnd; AgitEnd2;
    				sleep 1000;
    				for(set .@j,0; .@j<30; set .@j,.@j+1) {
    					if (.Active[0]&(1<<.@j)) Disp_Owner(.Castles$[.@j],1);
    					else if (.AutoKick) removemapflag .Castles$[.@j], mf_loadevent;
    					if (.ExitWarp) maprespawnguildid .Castles$[.@j],0,3; }
    				if (.Reward[0] && .Active[0] && .ForceEnd != 2) callsub OnReward, .Active[0];
    				deletearray .Active[0],2;
    				if (.ForceEnd) { set .ForceEnd,0; end; }
    				break; } }
    	sleep 5;
    	if ((!agitcheck() && !agitcheck2()) || .Init) {
    		if (!agitcheck() && !agitcheck2()) set .Init,0;
    		for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    			if (gettime(4)==$WOE_CONTROL[.@i] && gettime(3)>=$WOE_CONTROL[.@i+1] && gettime(3)<$WOE_CONTROL[.@i+2]) {
    				deletearray .Active[0],2;
    				set .Active[0], $WOE_CONTROL[.@i+3];
    				if (.Init) { AgitEnd; AgitEnd2; }
    				else announce "The War Of Emperium has begun!",bc_all|bc_woe;
    				sleep 1000;
    				AgitStart; AgitStart2;
    				for(set .@j,0; .@j<30; set .@j,.@j+1) {
    					if (.Active[0]&(1<<.@j)) {
    						if (!.Init) Disp_Owner(.Castles$[.@j],0);
    						set .Active[1], .Active[1] | (1<<((.@j/5)+1));
    					} else {
    						if (.AutoKick) setmapflag .Castles$[.@j], mf_loadevent;
    						if (.@j<20) {
    							donpcevent "Agit#"+.Castles$[.@j]+"::OnAgitEnd";
    							killmonster .Castles$[.@j], "Agit#"+.Castles$[.@j]+"::OnAgitBreak";
    						} else {
    							donpcevent "Manager#"+.Castles$[.@j]+"_02::OnAgitEnd2";
    							killmonster .Castles$[.@j], "Steward#"+.EndLabel$[.@j-20]+"::OnStartArena"; } } }
    				break; } }
    	set .Init,0;
    	end;
    
    function Disp_Owner {
    	set .@o, getcastledata(getarg(0),1);
    	if (.@o) announce "The ["+getcastlename(getarg(0))+"] castle "+((getarg(1))?"has been conquered":"is currently held")+" by the ["+getguildname(.@o)+"] guild.",bc_all|bc_woe;
    	else announce "The ["+getcastlename(getarg(0))+"] castle is currently unoccupied.",bc_all|bc_woe;
    	return; }
    
    function Add_Zero {
    	return ((getarg(0)<10)?"0":"")+getarg(0)+(getarg(1,0)?".":":")+"00"; }
    
    OnReward:
    	for(set .@i,0; .@i<30; set .@i,.@i+1)
    		if (getarg(0)&(1<<.@i)) {
    			set .@guild, getcastledata(.Castles$[.@i],1);
    			if (.@guild) {
    				deletearray .@acc[0], getarraysize(.@acc); deletearray .@char[0], getarraysize(.@char);
    				query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@guild+"'", .@acc, .@char);
    				for(set .@j,0; .@j<getarraysize(.@acc); set .@j,.@j+1)
    					if (isloggedin(.@acc[.@j],.@char[.@j])) { 
    						for(set .@k,0; .@k<getarraysize(.Reward); set .@k,.@k+2)
    							getitem .Reward[.@k], .Reward[.@k+1], .@acc[.@j];
    						message rid2name(.@acc[.@j]),"You have been rewarded for conquering "+getcastlename(.Castles$[.@i])+"."; } 
    				sleep 1; } }
    	return;
    
    OnPCLoadMapEvent:
    	if (!compare(strcharinfo(3),"g_cas")) end;
    	sleep2 1000;
    	message strcharinfo(0), getcastlename(strcharinfo(3))+" is inactive during this WOE session.";
    	sleep2 5000;
    	if (compare(strcharinfo(3),"g_cas")) warp "SavePoint",0,0;
    	end;
    
    OnMenu:
    while(1) {
    	mes "[WOE Information]";
    	if (agitcheck() || agitcheck2()) {
    		if (!.Size) mes "The War of Emperium is ^0055FFactive^000000.";
    		else {
    			for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    				if (gettime(4)==$WOE_CONTROL[.@i] && gettime(3)>=$WOE_CONTROL[.@i+1] && gettime(3)<$WOE_CONTROL[.@i+2]) {
    					set .@i, $WOE_CONTROL[.@i+2]; break; }
    			mes "The War of Emperium is ^0055FFactive^000000 until ^FF0000"+Add_Zero(.@i)+"^000000 in the following regions:";
    			mes " ";
    			for(set .@i,0; .@i<6; set .@i,.@i+1)
    				if (.Active[1]&(1<<(.@i+1))) mes " > ^777777"+.Regions$[.@i]+"^000000"; }
    	} else {
    		set .@j,0; set .@k,0;
    		for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    			if ((gettime(4)==$WOE_CONTROL[.@i] && gettime(3)<=$WOE_CONTROL[.@i+1]) || gettime(4)<$WOE_CONTROL[.@i]) {
    				set .@j, $WOE_CONTROL[.@i]; set .@k, $WOE_CONTROL[.@i+1]; break; }
    		if (!.@j && !.@k) {
    			set .@j, $WOE_CONTROL[0]; set .@k, $WOE_CONTROL[1]; }
    		mes "The War of Emperium is ^777777inactive^000000.";
    		if (.Size) {
    			mes " ";
    			mes "The next session will begin";
    			mes "on ^0055FF"+.Days$[.@j]+"^000000 at "+Add_Zero(.@k)+"^000000."; } }
    	next;
    	switch(select(""+((.CastleWarp || .Active[1])?" ~ Warp to castles...":"")+": ~ Check schedule...: ~ View castle owners...:"+((getgmlevel()<.GMAccess || !getgmlevel())?"":" ~ Manage sessions...")+": ~ ^777777Cancel^000000")) {
    		case 1:
    			set .@menu$,"";
    			for(set .@i,0; .@i<6; set .@i,.@i+1) {
    				if (.CastleWarp || .Active[1]&(1<<(.@i+1))) set .@menu$, .@menu$+" ~ "+((.Active[1]&(1<<(.@i+1)))?"^0055FF":"^777777")+.Regions$[.@i]+" Castles^000000";
    				set .@menu$, .@menu$+":"; }
    			set .@i, select(.@menu$)-1;
    			set .@menu$,"";
    			for(set .@j,.@i*5; .@j<(.@i*5)+5; set .@j,.@j+1) {
    				if (.CastleWarp || .Active[0]&(1<<.@j)) set .@menu$, .@menu$+" ~ "+((.Active[0]&(1<<.@j))?"^0055FF":"^777777")+getcastlename(.Castles$[.@j])+"^000000";
    				set .@menu$, .@menu$+":"; }
    			set .@j, select(.@menu$)-1;
    			warp .Map$[.@i],.MapX[(.@i*5)+.@j],.MapY[(.@i*5)+.@j];
    			close;
    		case 2:
    			mes "[Schedule]";
    			if (.Size) {
    				for(set .@i,0; .@i<.Size; set .@i,.@i+4) {
    					mes "> ^FF0000"+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1])+"-"+Add_Zero($WOE_CONTROL[.@i+2])+")^000000";
    					for(set .@j,0; .@j<30; set .@j,.@j+1)
    						if ($WOE_CONTROL[.@i+3]&(1<<.@j)) mes "  ~ "+getcastlename(.Castles$[.@j])+" ^777777("+.Castles$[.@j]+")^000000";
    					if (.@i+4<.Size) mes " ";
    					sleep2 1; }
    			} else mes "No times are configured.";
    			next;
    			break;
    		case 3:
    			mes "[Castle Ownership]";
    			for(set .@i,0; .@i<6; set .@i,.@i+1) {
    				set .@k, .@i*5;
    				mes "> ^FF0000"+.Regions$[.@i]+"^000000";
    				for(set .@j,.@k; .@j<(.@k+5); set .@j,.@j+1) { 
    					set .@t, getcastledata(.Castles$[.@j],1);
    					mes "  ~ "+getcastlename(.Castles$[.@j])+": "+((.@t)?"^0055FF"+getguildname(.@t):"^777777unoccupied")+"^000000"; }
    				if (.@i<5) mes " "; }
    			next;
    			break;
    		case 4:
    		while(1) {
    			mes "[Session Manager]";
    			mes "There are ^0055FF"+(.Size/4)+" session(s)^000000 configured.";
    			mes "What would you like to do?";
    			next;
    			switch(select(" ~ Add a session...: ~ Delete a session...: ~ Reload settings...:"+((agitcheck() || agitcheck2())?" ~ End WOE session...":"")+": ~ ^777777Go back^000000")) {
    				case 1:
    					mes "[New Session]";
    					if (.Size > 127) {
    						mes "You have already reached the maximum of 32 sessions."; next; break; }
    					mes "Select a day.";
    					next;
    					set .@menu$,"";
    					for(set .@i,0; .@i<7; set .@i,.@i+1)
    						set .@menu$, .@menu$+" ~ "+.Days$[.@i]+":";
    					set .@Day, select(.@menu$)-1;
    					mes "[New Session]";
    					mes "Select a start time for ^0055FF"+.Days$[.@Day]+"^000000.";
    					next;
    					set .@menu$,"";
    					for(set .@i,0; .@i<23; set .@i,.@i+1)
    						set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":";
    					set .@Start, select(.@menu$)-1;
    					mes "[New Session]";
    					mes "Select an end time for ^0055FF"+.Days$[.@Day]+"^000000.";
    					next;
    					set .@menu$,"";
    					for(set .@i,.@Start+1; .@i<24; set.@i,.@i+1)
    						set .@menu$, .@menu$+" ~ "+Add_Zero(.@i,1)+":";
    					set .@End, select(.@menu$)+.@Start;
    					for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    						if (.@Day==$WOE_CONTROL[.@i] &&
    						   ((.@Start >= $WOE_CONTROL[.@i+1] && .@Start < $WOE_CONTROL[.@i+2]) ||
    						    (.@End > $WOE_CONTROL[.@i+1] && .@End <= $WOE_CONTROL[.@i+2]) ||
    						    (.@Start <= $WOE_CONTROL[.@i+1] && .@End >= $WOE_CONTROL[.@i+2]))) {
    							mes "[New Session]";
    							mes "The chosen times overlap with an existing session.";
    							next;
    							set .@d,1; break; }
    					if (.@d) { set .@d,0; break; }
    					set .@Castle,0;
    					while(1) {
    						mes "[New Session]";
    						mes "^0055FF"+.Days$[.@Day]+" ("+Add_Zero(.@Start)+"-"+Add_Zero(.@End)+")^000000";
    						mes " > Castles:";
    						if (!.@Castle) mes "   ~ ^777777(none selected)^000000";
    						else for(set .@i,0; .@i<30; set .@i,.@i+1)
    							if (.@Castle&(1<<.@i)) mes "   ~ "+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")";
    						next;
    						set .@menu$,((.@Castle)?" ~ ^FF0000Finished...^000000":"")+":";
    						for(set .@i,0; .@i<30; set .@i,.@i+1)
    							set .@menu$, .@menu$+" ~ "+((.@Castle&(1<<.@i))?"^0055FF":"")+getcastlename(.Castles$[.@i])+" ("+.Castles$[.@i]+")^000000:";
    						set .@i, select(.@menu$)-1;
    						if (.@i) set .@Castle, .@Castle^(1<<(.@i-1));
    						else {
    							mes "[New Session]";
    							mes "Are you sure?";
    							next;
    							switch(select(" ~ ^0055FFAdd session...^000000: ~ Continue selecting castles...: ~ ^777777Cancel^000000")) {
    								case 1:
    									for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    										if ((.@Day==$WOE_CONTROL[.@i] && .@End<=$WOE_CONTROL[.@i+1]) || .@Day<$WOE_CONTROL[.@i]) {
    											set .@d,1; break; }
    									if (!.@d) { set .@d,1; set .@i,.Size; }
    									copyarray $WOE_CONTROL[.@i+4], $WOE_CONTROL[.@i], .Size-.@i;
    									setarray $WOE_CONTROL[.@i], .@Day, .@Start, .@End, .@Castle;
    									set .Size, getarraysize($WOE_CONTROL);
    								case 3:
    									mes "[New Session]";
    									mes ((.@d)?"Session added.":"Cancelled.");
    									next;
    									set .@d,1;
    								case 2:
    									break;
    							} if (.@d) { set .@d,0; break; } }
    					} break;
    				case 2:
    					mes "[Remove Session]";
    					if (!.Size) {
    						mes "There are no sessions configured."; next; break; }
    					mes "Select a session to remove.";
    					next;
    					set .@menu$,"";
    					for(set .@i,0; .@i<.Size; set .@i,.@i+4)
    						set .@menu$, .@menu$+" ~ "+.Days$[$WOE_CONTROL[.@i]]+" ("+Add_Zero($WOE_CONTROL[.@i+1],1)+"-"+Add_Zero($WOE_CONTROL[.@i+2],1)+"):";
    					set .@menu$, .@menu$+" ~ ^777777Cancel^000000";
    					set .@i, select(.@menu$)-1;
    					if (.@i==(.Size/4)) break;
    					mes "[Remove Session]";
    					mes "Delete ^0055FF"+.Days$[$WOE_CONTROL[.@i*4]]+"'s^000000 session?";
    					mes "This action cannot be undone.";
    					next;
    					set .@j, select(" ~ ^FF0000Delete session...^000000: ~ ^777777Cancel^000000");
    					mes "[Remove Session]";
    					if (.@j==2) mes "Cancelled.";
    					else {
    						deletearray $WOE_CONTROL[.@i*4],4;
    						set .Size, getarraysize($WOE_CONTROL);
    						mes "Session deleted."; }
    					next;
    					break;
    				case 3:
    					mes "[Reload Settings]";
    					mes "This will trigger all events related to new session configurations, if any.";
    					if (agitcheck() || agitcheck2()) { mes " "; mes "Be aware that this will disrupt the current WOE session."; }
    					next;
    					set .@i, select(" ~ ^0055FFReload settings...^000000: ~ ^777777Cancel^000000");
    					mes "[Reload Settings]";
    					if (.@i==2) mes "Cancelled.";
    					else {
    						set .Init,1;
    						donpcevent "WOE_CONTROL::OnMinute00";
    						mes "Variables have been re-initialized."; }
    					next;
    					break;
    				case 4:
    					mes "[Force Agit End]";
    					if (!agitcheck() && !agitcheck2())  {
    						mes "WOE has already ended."; next; break; }
    					mes "This command will safely execute all AgitEnd events.";
    					mes " ";
    					mes "Kill the current WOE session?";
    					next;
    					set .@i, select(" ~ ^FF0000End session...^000000:"+((.Reward[0])?" ~ ^FF0000End session without rewards...^000000":"")+": ~ ^777777Cancel^000000");
    					mes "[Force Agit End]";
    					if (.@i==3) mes "Cancelled.";
    					else {
    						set .ForceEnd, .@i;
    						donpcevent "WOE_CONTROL::OnWOEEnd";
    						mes "WOE session terminated."; }
    					next;
    					break;
    				case 5:
    					set .@d,1; break;
    			} if (.@d) { set .@d,0; break; } }
    			break;
    		case 5:
    			close; }
    }
    }
    
    payon.gat,162,221,4	duplicate(WoE-King)	WoE-King#payon1	108
    niflheim,186,187,4	duplicate(WoE-King)	WoE-King#payon1	108
    

    i found that woe controller on google and it is suposed to give a prize for every player on guild at the end of woe but it is not giving any prize. Is something wrong with the script? i can not see it ):

  4. maybe the host block certain IP from certain country ?? 

     

    i think that will be, i just came to think, my friends that can't see the page are from mexico and i'm too from mexico, maybe that will be why D:! because other players and friend whore from other countries can see the page, thanks emistry i will ask them to unblick us :D

  5. i just bought a hosting service for 3 years thanks to may donators but, some of my friends can see the page and others can not, i can not see the page, i don't know if it's forbbiden or not, but i will say that it was a web page from ipage and my web is http://tairyu-ro.net/

    does anyone one why that happens? it's abouy 3 days that i bough the thing and i jsut can't see it ):

    5338hVs.png

    ):?

  6. Well, Sou Destroyer is bypassing Pneuma but i want it to make it not bypass Pneuma because at the end Soul Destroyer is a ranged attack and should not bypass pneuma, also my players and i want need it, because it is dealing a lot of damage and there is no way to totally protect agains it.

     

    i know the modification should be around db, maybe skill_db.txt but im not like to touching it because i have the hability to bug everything i touch x_x 

     

    help please to change soul destroyer bac to normal ):

  7. Well your script is a function. If you will not use callfunc then it will not work. If you want it to work once a player login. Use this :

    -    script    loginjob    -1,{
    OnPCLoginEvent:
        if ( BaseClass == Job_X ) { skill "TF_HIDING",1; }
        else if ( BaseClass == Job_Y ) { skill "AL_HEAL",1; }
        else { skill "MG_SIGHT",1; }
        end;
    }
    

     

    ow nope it is still not working, do i have to reboot my server sir?

  8. You will receive syntax error on your code. The proper way to do it is : 

    function    script    loginjob    {
    OnPCLoginEvent:
        if ( BaseClass == Job_X ) { skill "TF_HIDING",1; }
        else if ( BaseClass == Job_Y ) { skill "AL_HEAL",1; }
        else { skill "MG_SIGHT",1; }
        end;
    }

    This means that when Job_X log in he will receive skill hiding while Job_Y will receive heal. Any other job that is not Job_X and Job_Y will receive sight skill

     

    sorry to bother again, but it did not work sir ):

  9. aw thanks for the repply :3

    so the script would go like this?

     

    function    script    loginjob    {
    OnPCLoginEvent:
    if ( BaseClass == Job_X ) { skill "TF_HIDING"",1; }
    end:
    }
    else
    if ( BaseClass == Job_Y ) { skill "AL_HEAL",1; }
    end;
    }
    else
    if ( BaseClass == Job_Z ) { skill "MG_SIGHT",1; }
    end;
    }
    }
    

    o:!

  10. huh no one? just asking, if not i will stop multi post ):

     

    maybe the script can go like this?

     

    function	script	bonus_parametr1	{
       OnPCLoginEvent:
    if(BaseJob==Job_X) {
    		skill "TF_HIDING",1;
    		end;
    	}
    else if(BaseJob==Job_Y) {
    skill "MG_SIGHT",1;
    end;
    }
    else if(BaseJob==Job_Z) {
    skill "AL_HEAL",1;
    end;
    }
    }
    
    

    ¿? help there please

  11. I woul like to request a script that triggers an effect when a job logs on the server, the effect will be that that job will have a new skill, like when equiped with a smokie card, and when the job logs out then the skills vanish.

    I would like to make this for 3 jobs, thanks in adnvanced!

  12. Yea, I don't know why that works. Because I've tried giving all classes the ability to learn 10 additional skills but only through my NPC. Unfortunately it just wouldn't keep them, they'd disappear if I relogged or I used Status Points or Skill Points.

     

    But an item that gives all those skills would work.

     

    what about to create a function that gives those skills to the job?

     

    function	script	jobXYZskillsIDs	{
    
    //here goes the script that makes the job learns skill when the novice jobchange to that job
    
    if(BaseJob==Job_Job_X_Example||BaseJob==Job_Y_Example) {
    	skill "TF_HIDING",1;
    		end;
    	}
    	if(BaseClass==Job_Z_Example||BaseClass==Job_A_Example) {
    	skill "SM_BASH",10;
    		end;
    	}
    }
    
    

    Yea, I don't know why that works. Because I've tried giving all classes the ability to learn 10 additional skills but only through my NPC. Unfortunately it just wouldn't keep them, they'd disappear if I relogged or I used Status Points or Skill Points.

     

    But an item that gives all those skills would work.

     

    I got a better idea, i was waiting to be able to @bump

     

    why not create a script that will trigger when X job logs on the server and then the script just adds the skills to the job, and when the job logs out the skills added by this script wearsoff?

  13. im not sure, but for logic i think that first you will need 2 copies, of your grf, 1 encrypted and one NOT encrypted

    edit the non encrypted one, when you finish, save it, create a copy, and then encrypt it leaving the safe copy alone

    then make the actualization with your patcher to use the encrypted one

     

    hope i helped a bit :3

  14. The issue here is that, unless the Novice's can actually learn those skills through normal means (using skill points) than they won't be able to keep them forever. This is an on-going issue that has yet to be resolved without using some form of continuous loop.

     

    I'm sorry, but what your asking for just currently isn't 100% possible. We can make a script that will give those skills (permanently) however, they won't stay forever even if we tried :/

     

    No need to apologize so no worries :3

    huh but what about platinum skills? hm may i add the desired skills to the skill_three.txt for the jobs that i want to make them old and the  use that npc so they will keep the skills? 

    i don't get it at all, i tought that something like this can be used to learn skills for a job that can not normally learn it

    https://code.google.com/p/eathena/source/browse/trunk/npc/other/gympass.txt?r=14063

    ):

     

    so what about a special item? an item like a smokie card that will give a skill and while equiped the skill will remain only if that class keeps the item equiped?

  15. Well, i would love to have a npc like the Ripped Cabus, the one that teach players to learn enlarge weight limitd

     

    the npc go like this o:

     

    -It only works when you are a novice

    -The novice will have 3 selectable jobs to jobchange (i want to choose that jobs by just adding the ID on the script)

    -When the novice selects a job, the novice will change to that job and will get 30 skills (i want to choose those skills and at wich level they will get them on the script) those skills will be learned forever like the enlarge weight limit of the gym pass :3 (or like platinum skills too, or when you learn a skill while equiped a Smokie Card for example)

     

    Well that's basiclly all what i want to make the npc do.

    Im not too good at scripting but i can imagine that npc would look like this:

     

    gonryun,159,116,6    script    TEST    935,50,50,{
    
    mes "hello i can change you to a old job but with new skills, you can only choose 3";
    menu "X job",x_job,"Y job",y_job,"Z job",z_job;
    x_job
    atcommand jobchange XjobID
    getskill 
    SkillID,LevelThatThePlayerWillLearn
    SkillID,LevelThatThePlayerWillLearn
    SkillID,LevelThatThePlayerWillLearn
    SkillID,LevelThatThePlayerWillLearn
    //etc...
    y_job
    atcommand jobchange XjobID
    getskill 
    SkillID,LevelThatThePlayerWillLearn
    SkillID,LevelThatThePlayerWillLearn
    SkillID,LevelThatThePlayerWillLearn
    SkillID,LevelThatThePlayerWillLearn
    //etc
    z_job
    atcommand jobchange XjobID
    getskill 
    SkillID,LevelThatThePlayerWillLearn
    SkillID,LevelThatThePlayerWillLearn
    SkillID,LevelThatThePlayerWillLearn
    SkillID,LevelThatThePlayerWillLearn
    //etc...
    
    mes "there you go adventurer, good luck with those monsters! take care pal";
    close;
    

    thanks in advance, i really want this npc, my players will love it :3!

  16. yeah it uses Sage's lol. Was not sure on that part xD

    no that wont do, you have to edit server side so they can learn skills not just show they have those skills.

     

    oh i see, i thinked that by just adding them to the skill_three.txt was enought, what else shoild i add D:?

    also how to change their names/sprite D:!

     

    well im not sure about the sprite but i found that the swordsman, sage and acolyte sprites are repeated on the grf o:!

     

    DFfXDMi.png

    there are two of them

    ±â»ç_³².act and ±â»ç_³².spr

     

    and then

    ±â»ç_h_³².act ±â»ç_h_³².spr

     

    o: same goes for acolyte and sage

  17. To change the names and give them skills you have to know src edit, as for the sprites, I believe they do not have their own and just use existing sprites, like for the Dark Knight it uses the regular Knight spright, Gangsi uses Acolyte's, and Dark Collector uses Soul Linker's.

     

    Dark Collector uses Sage on my case hehe

     

    question

    can i just add them to the skill three.txt so they will learns/have skills?

  18. Since i started my server i always wondered what does this jobs do:

    tv7j.png

    Gangsi, Dark Collector and Death Knight

     

    when i jobchange a normal acc. all of them does not have any skills

    cDHt7UO.png

    so that makes me ask to myself some questions

    may you help me please?

     

    How to change the name of these jobs?

    How to make them learn skills?

    Where can i find its sprites?

     

    thanks to all in advance :3!

  19. I was just testing if i can make a novice (just for test purpose) learn the skill Bash

     

    acording to this topic

    http://www.eathena.ws/board/index.php?showtopic=121735

     

    What user-offline.pngLighter said was that i have to open "\db\skill_tree.txt" and then edit there the skills that i want to make the job learn

    so, i made it, but it did not work

    the novie is having the same skills

    this is how i just aded

     

    //Novice
    0,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
    0,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
    0,143,1,0,0,0,0,0,0,0,0,0,0 //NV_TRICKDEAD#Act Dead#
    0,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
    0,5,10,0,0,0,0,0,0,0,0,0,0 //SM_BASH#Bash# <<<<<<<This is the novice one
    //Swordman
    1,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
    1,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
    1,2,10,0,0,0,0,0,0,0,0,0,0 //SM_SWORD#Sword Mastery#
    1,3,10,2,1,0,0,0,0,0,0,0,0 //SM_TWOHAND#Two-Handed Sword Mastery#
    1,4,10,0,0,0,0,0,0,0,0,0,0 //SM_RECOVERY#Increase HP Recovery#
    1,5,10,0,0,0,0,0,0,0,0,0,0 //SM_BASH#Bash#
    1,6,10,0,0,0,0,0,0,0,0,0,0 //SM_PROVOKE#Provoke#
    1,7,10,5,5,0,0,0,0,0,0,0,0 //SM_MAGNUM#Magnum Break#
    1,8,10,6,5,0,0,0,0,0,0,0,0 //SM_ENDURE#Endure#
    1,144,1,0,0,0,0,0,0,0,0,0,0 //SM_MOVINGRECOVERY#Moving HP-Recovery#
    1,145,1,0,0,0,0,0,0,0,0,0,0 //SM_FATALBLOW#Attack Weak Point#
    1,146,1,0,0,0,0,0,0,0,0,0,0 //SM_AUTOBERSERK#Auto Berserk#
    1,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
    

    so, how to make X job able to learn a Y skill?

     

    thanks in advance!

×
×
  • Create New...