Jump to content

Lord Ganja

Members
  • Content Count

    161
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Lord Ganja


  1. @@Angelmelody - Works like a charm!!!! :no1:  Thank you so much.

     

    Anyway what about if it will only show the online char and disregard the offline one? when no character is online on that account id. it will just show

    e.g

    Top 1 - Points: 1300> [Offline] // None of the character is online so it will only put one offline but won't put any character nameTop 2 - Points: 1000> Lord Ganja // This is the online character on the account_id. It won't put the offline character namesTop 3 - Points: 800> [Offline]..........

  2. I've tried job level 100, but it doesn't fit on what i'm looking for.

     

     

    Like if the job is Sinx

    If the sinx chose to be a dual dagger usage it will max the right hand master, but the katar mastery, sonic blow, grimtooth won't have it's max level

     

    For champion, if they chose asura strike type, the asura strike skill will be the max level, but for the other skills like Finger Offensive, Palm Push Strike, Heal won't have its max level.

     

    For LK, if they wish to be a bowling bash type, only bowling bash will have the max skill level..

     

    Maybe I should just try and test the skill redistribution manually xD


  3. Server Info:

    Max Base Level: 254

    Max Job Level : 70

    Max Stats: 255

    Pre-renewal

    Transcendent class only

     

    Now I need help/suggestions on how much skill points should I give the character so they can only set 1 skill to it's max level?

     

    Like if the job is Sinx

    If the sinx chose to be a dual dagger usage it will max the right hand master, but the katar mastery, sonic blow, grimtooth won't have it's max level

     

    For champion, if they chose asura strike type, the asura strike skill will be the max level, but for the other skills like Finger Offensive, Palm Push Strike, Heal won't have its max level.

     

    For LK, if they wish to be a bowling bash type, only bowling bash will have the max skill level..

     

    Same goes for other jobs..

     

    I have played a server like this around 2007.. But i don't have idea how much skill points they gave each job..

     

    Any suggestions/advice/help please? thanks in advance!

     

     


  4. easy to make this script but that i told you, but more query :v with # account_base

     

    secondly, select query in account_reg_number is not real time update

    It's okay. xD

     

    Can you make the script for me? please?

     

    EDIT: I tried and make it on my own but it's not working well ( I already expected that xD)

    It only shows the top 1. not the others.

     

    The error I received:

    [Debug]: Function: mes (1 parameter):[Error]: script_rid2sd: fatal error ! player not attached![Debug]: Data: string value="Top 1 - Points: 1458"[Debug]: Source (NPC): test at prontera (141,177)

     

    The script:

    	.@nb = query_sql("SELECT `account_id`, `value` FROM `acc_reg_num_db` WHERE `key`='#PK_Points' ORDER BY `value` DESC LIMIT 10", .@aid, .@value);	.@nb2 = query_sql("SELECT `name`, `online` FROM `char` WHERE `account_id` ='"+.@aid+"' ORDER BY `char_num`", .@name$, .@online );		for( .@a = 0; .@a < 10; .@a++ ) {			mes "Top "+(.@a + 1)+" - Points: "+.@value[.@a];			for( .@i = 0; .@i < .@nb2; .@i++ ) {				mes " > "+ .@name$[.@i] +" "+( ( .@online[.@i] )? "^00FF00[Online]" : "^FF0000[Offline]" )+"^000000";			}			sleep 10;		}

  5. becuz if you use account base, '#' sometimes may not produce correct character names since rid means  account id :v

    Maybe it might work like selecting the '#PK_Points' variable first to set the account_id with the highest #PK_points,

     

    Then when the account id is already set, there goes the character lists..

    If you check this POST by annieruru, it list down the char names of the searched player. Maybe this can help creating the script?

    I just don't know how to do query_sql. can't try anything with this :/

    prontera,157,178,5    script    Sample    757,{    if ( getgmlevel() < 80 ) end;    mes "Input Player Name";    if ( input( .@input$, 4, 23 ) ) {        mes "invalid name length";        close;    }    if ( set( .@nb, query_sql( "select name, online from `char` where account_id = ( select account_id from `char` where name = '"+ escape_sql(.@input$) +"' ) order by char_num", .@name$, .@online ) ) )        for ( set .@i, 0; .@i < .@nb; set .@i, .@i +1 )            mes " > "+ .@name$[.@i] +" "+( ( .@online[.@i] )? "^00FF00[Online]" : "^FF0000[Offline]" )+"^000000";    else        mes "No character found";    close;}

  6. Can anyone create an npc script for me that shows the top 10 pk killers. I just don't know how to script using query_sql.

     

    The variable of the point is #PK_Points(account based) and the npc will also show the character names of the account

     

    This is the explanation of the picture below

    [ Top 10 PK Killers ]1. (How much point does this account id has)// here the list of the character names of the account id and if the character is online or offline - character name [online/offline] - character name 2 [online/offline]and so on.. .

    post-1008-0-59297800-1441304185_thumb.png

     

     

    Thanks in advance!  :thx:


  7. I don't have any of my RO files anymore, since I recently wiped my work station. Unlucky me got hit with a currupt drive :/

     

    @inventorylist_bound will tell you exactly which bound type it is.

     

    It will return the values:

    0 - (Not bound)

    1 - (Account Bound)

    2 - (Guild Bound)

    3 - (Party Bound)

    4 - (Character Bound)

     

    The same goes for *getcartinventorylist and @cartinventorylist_bound

    Alright. Thanks man. :)


  8. @@Lord Ganja not test yet, test yourself :v, if work + rep to me!

     

    attachicon.gifmapzone_increase_max_mobhp_rate.diff

    Wow! Sure man. I'll let you know once I test this. Thank you so much!

     

    EDIT:

    I applied the patch and it only increase the MaxHP of the monsters, not their current hp..

     

    Example:

    a Poring has 50 hp.. When a poring is spawned inside the zone with increase_max_mobhp, the porings hp will become 50/150 wherein 50 is the current hp and 150 is the MaxHP. So it was like the same, it won't reach the MaxHP when the mobs don't heal. But maybe just a little tweak in the patch will do the work xD  :D

     

     

    Anyway Can I still ask for another request?  :meow:

    Can you also make the final patch compatible with rAthena? If it's only okay. I'm just trying both emulator right now :)

    Again, thank you so much. :thx:


  9. Why would you need that when you can just attachrid and get variable? Or if this bindcmd is just for checking points you can use @set.

    LOL. I thought this was the only way. :hmm:

    How to get the variable from the attached player?

    Please enlighten me @@Garr.

     

    I need it to function like:

    Player1 will use '@checkpkpoints Player2' to check the #pk_points of Player2.


  10. How to check permanent account variable using query?

     

    I wanted to check how much #PK_Points does a player have using bindatcmd but i don't know how to use query_sql

     

    command: @checkpkpoints <player name> // Tried to create this script but I got errors xD

    if ( set( .@nb, query_sql("SELECT account_id, value FROM acc_reg_num_db WHERE account_id="+getcharid(3,.@atcmd_parameters$[0])+" AND key='#PK_Points', .@aid, .@points) ) ) {		if( !.@nb ) {			message strcharinfo(0),"This only works on players who have PK Points";			end;		}                dispbottom .@points;	}

     

    Is it also possible to check if the attached <player name> is online/offline?

    Like if the player is offline it will say 

     message strcharinfo(0),.@atcmd_parameter$[0]+" is offline";

     

    Help me please. Thanks in advance!

     


  11. Ended up doing this on my own. Can anyone check if it has some glitches? LOL I'm not actually into source. but this script command is working fine with me.ani_pat.gif

    BUILDIN(getequipbound){	int i, num, type;	TBL_PC *sd;	num=script_getnum(st,2);	sd=script->rid2sd(st);	if( sd == NULL )		return false;	if (num > 0 && num <= ARRAYLENGTH(script->equip))		i=pc->checkequip(sd,script->equip[num-1]);	type = sd->status.inventory[i].bound;	if( i > 0 && type )		script_pushint(st,type);	else		script_pushint(st,0);	return true;}

  12. @@thor1009

    Hmm, idea is good, but after few points it'll always will be close to 100% chance, as e^(-5) is already damn close to 0. Hell, even at e^(-3) it's damn close to 50, making the chance real close to 100%.

     

    @@Lord Ganja

    Hmm, I don't know, it depends on how people earn the points, in what amount, what's the current max on server, are you limiting the points and so on. If you're limiting them I'd say make it ~125% of max, that way you'll have a nice 80% win chance at max amount.

    i'll be limiting the points to 1500 points.. all points above 1500 will be converted to 1500.

     

     

    So let's say i have max amount of #CASHPOINTS which is 1500.. if I set the rand to 2000, i'll have 75% chance to get the item right?

    if( rand(2000) < #CASHPOINTS )     getitem 607,1;

  13. I'd do

    if( rand(x) < #CASHPOINTS) { // Yay! Winrar!!}

    Where x is some amount you want #CASHPOINTS to have 100% chance at.

    Here it takes random amount from 0 to (x-1), and closer $CASHPOINTS to x is higher is the chance scripts succeeds.

    Thanks @@Garr. Anyway can you give me and idea on what should I put on X? lol I'm really confused.

    Or is there any other workaround with this?


  14. What i meant is it will stop player to go to the character select screen after clicking character select so OnPCLogoutEvent won't do this.

     

    - What I will do here is like a confirmation message before a player logged out or go to the char select screen.

     

    Idk if it might really be possible, but I think it is. It might work like this

     

    putting this under the source triggered right after clicking the char select button

    nd = npc->name2id("custom_ncp_script");if (nd && nd->subtype == SCRIPT)	script->run(nd->u.scr.script, 0, sd->bl.id, nd->bl.id);// ---- Maybe we need to put return or an end so the script won't continue//----- This part is where the character goes on to the char select screen

     

    npc script

    -     script     custom_npc_script    -1,{// The script that is triggered after clicking char select buton}

     

    But what I don't know is how will the character go to the char select screen after loading the npc script XD but somehow maybe I can figure that out


  15. I'm actually working on a script almost similar to this LOL but i haven't finished it yet.

     

    I can share you my script but Take Note: This will also drop bounded, rental, and restricted items.. Restricted = non tradable, non dropable, etc.....

     

    if you want to check rental items, you need to apply getequipexpiretick

    if you want to check restricted items, you may check THIS out.

    If you want to check bounded items, you can use 'countbound'.. im still waiting for my request to check bounded items here

     

     

    here's the script: Take note -> bounded and rental items will turn into normal item since I haven't put the checks yet. But i'll update you as soon as i fnished the script.

    -	script	dropitems	-1,{OnPCDieEvent:	if( getgmlevel() != 0 )end;	if( killerrid > 3000000 )end; // The script will end if a monster killed the player	if( strcharinfo(3) == "izlude" ) {		getmapxy(.@mapname$,.@mapx,.@mapy,0);		for(.@i=0; .@i < 10; .@i++)		{			if( getequipisequiped(.@i) ) {				.@itemid = getequipid(.@i);				.@refine = getequiprefinerycnt(.@i);				.@card1 = getequipcardid(.@i,0);				.@card2 = getequipcardid(.@i,1);				.@card3 = getequipcardid(.@i,2);				.@card4 = getequipcardid(.@i,3);				if( rand(1,100) <= 50 ) { //50% chance to drop the item					delequip .@i;					makeitem2 .@itemid,1,.@mapname$,.@mapx,.@mapy,1,.@refine,0,.@card1,.@card2,.@card3,.@card4;				}			}		}	}	end;}
×
×
  • Create New...

Important Information

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