Jump to content

Lil Troll

Members
  • Posts

    276
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Lil Troll

  1. So basically you would like if any players drop 1 item(for example a player drop his rare card accidentaly then automatically it will disappear? I guess i think its not a good idea). I saw some post regarding shortening the length of floor on items disappears thats the most recommended for you to change. But atm idk and I forgot what topic i bumped into that accidentaly. If I see that topic again I will pm it to you asap.

  2. Hi Ms. Annie!

     

    First, I would like to say thank you so much for your cool event! This was my favorite event when I start to play the private server RO, year 2008? Haha XD Thank you so much!

     

    Hmm.. I would like to ask, how can I disable healing items like berry/seed in this event?

     

    Also suggestion, I think it's better if the devil square will be like this. (I just don't know how to edit :( )

     

    1. There will be 8 levels, or more.

    2. If the event start, (for example), the top portal will be the first level. I suggest, only the top portal will be open, if the first level monsters are all killed, the second portal will open, which will be at the top right portal, then when the second level (second portal) monsters are all killed, the third portal will be open. and so on and so fort.

    3. Once all the levels are finish, the prizes will be placed at the center of the map.

     

    I hope you can edit the script for this option. If you're not busy ~

     

    THANK YOU IN ADVANCE!

    If you like to disable items in the specific map you would be using find this at db and set restriction. "item_noequip"

    For your other suggestion:

    1. There will be 8 levels, or more.
    2. If the event start, (for example), the top portal will be the first level. I suggest, only the top portal will be open, if the first level monsters are all killed, the second portal will open, which will be at the top right portal, then when the second level (second portal) monsters are all killed, the third portal will be open. and so on and so fort.
    3. Once all the levels are finish, the prizes will be placed at the center of the map.
    

    Set condition after killing monsters to specific round new portal will be enabled(mobcount will definitely work).

  3. for best results change all reward item to non tradable so that they cant abuse this script. you can find better script in then forum, but then again better script is not so easy to understand in case of what you stated before that your new to scripting, i suggest start learning the basics im also new to this kind of stuffs i just kinda get used to it. :D

  4. If im not mistaken this can check IP and the same time set daily time tick but idk where should i put the script because it have builtin daily gettime (gettime(8)*24).

     

    set(@c,gettimetick(2));
    query_sql("SELECT REPLACE (`last_ip`,'.','_') FROM `login` WHERE `account_id` = "+getcharid(3),@ip$); if((getd("$G_LIP_"+@ip$)+(60*60*24)) <= @c) setd("$G_LIP_"+@ip$,@c);
    
  5. set .@n$,"[Daily Reward]";
    	mes .@n$;
    	mes "Hey! Have you taken your reward today?";
    	select("Yes");
    	if (#dr_time$ != gettimestr("%Y%m%d",9)) {
    		next;
    		mes .@n$;
    		mes "LIAR!!!";
    		mes "Telling lies are no good.";
    		mes "Please take your reward!";
    		next;
    		set #dr_time$, gettimestr("%Y%m%d",9);
    		switch (gettime(4)) {
    			Case 0: getitem 671,1; break;
    			Case 1: getitem 672,1; break;
    			Case 2: getitem 673,1; break;
    			Case 3: getitem 674,1; break;
    			Case 4: getitem 675,1; break;
    			Case 5: getitem 676,1; break;
    			Case 6: getitem 677,1; break;
    		}
    		next;
    		mes .@n$;
    		mes "Don't tell lies next time...";
    		mes "Have a nice day!";
    		close;
    	}
    	next;
    	mes .@n$;
    	mes "Then don't talk to me!";
    	close;
    }
    

    This is a account based daily from these post:

    http://rathena.org/board/topic/68819-request-daily-rewards-npc/

    You can change the reward prize by just changing the getitem 671 "item id". 671 = Gold Coin change that to other Item(ID ONLY).

     

  6. I really cant understand what would you like to do. Anyways seems like am getting your point.

     

    Just set the condition like this:

    If Quest#1 done, set quest,1; If quest,1; goto Quest #2.

    If Quest#2 done, set quest,2; If quest,2; goto Quest #3.

    If Quest#3 done, set quest,3; If quest,3; goto Quest #4.

    If Quest#4 done, set quest,4; If quest,4; goto Quest #5.

  7. Is there opposite of escape_sql? Like for example retrieve_sql so that i can minimize the use of variables like permanent ones. I cant figure out myself. (pity me noob) :(

    Escape sql
    Syntax:
    
    escape_sql(<value>)
    Description:
    
    Converts the value to a string and escapes special characters so that it is safe to use in query_sql().
    
    Returns the escaped form of the given value.
    
    Examples:
    
    set .@str$, "John's Laptop";
    set .@esc_str$, escape_sql(.@str$);	// Escaped string: John\'s Laptop
    

    Or should i be sticking in variables because sometimes sql ingame is often slow.

  8. @TTest: I mean, if he/she wears Wand theres a bonus from wearing it.

     

    @Nanakiwurtz: basically I wanted to make this script to work , technically its only part of the script but this is the part am really confused. Idk what will I put in the Item_Db.txt. :(

    function	script	Katar	{
    	if ( WeaponSelect1$ == "Katar" ) {
    		set EffectLevel1, Wea_Katar;
    		set Wea_Equip, 1;
    		callfunc "EffectMain";
    	}
    	else if ( WeaponSelect2$ == "Katar" ) {
    		set EffectLevel2, Wea_Katar;
    		set Wea_Equip, 2;
    		callfunc "EffectMain";
    	}
    	else end;
    }
    
    function	script	Music	{
    	if ( WeaponSelect1$ == "Instruments" ) {
    		set EffectLevel1, Wea_Music;
    		set Wea_Equip, 1;
    		callfunc "EffectMain";
    	}
    	else if ( WeaponSelect2$ == "Instruments" ) {
    		set EffectLevel2, Wea_Music;
    		set Wea_Equip, 2;
    		callfunc "EffectMain";
    	}
    	else end;
    }
    	
    if ( Wea_Equip == 1 ) {
    	set EffectLevel, EffectLevel1;
    	if ( Special1_1$ == "Atk" || Special1_2$ == "Atk" || Special1_3$ == "Atk" ) bonus bAtk, ( 50 * EffectLevel ) / 100;
    	if ( Special1_1$ == "Matk" || Special1_2$ == "Matk" || Special1_3$ == "Matk" ) bonus bMatk, ( 50 * EffectLevel ) / 100;
    	if ( Special1_1$ == "Hit" || Special1_2$ == "Hit" || Special1_3$ == "Hit" ) bonus bHit, ( 50 * EffectLevel ) / 100;
    	if ( Special1_1$ == "AspdRate" || Special1_2$ == "AspdRate" || Special1_3$ == "AspdRate" ) bonus bAspdRate, ( 10 * EffectLevel ) / 100;
    	if ( Special1_1$ == "Aspd" || Special1_2$ == "Aspd" || Special1_3$ == "Aspd" ) bonus bAspd, ( 2 * EffectLevel ) / 100;
    	if ( Special1_1$ == "HP" || Special1_2$ == "HP" || Special1_3$ == "HP" ) bonus bMaxHPrate, ( 5 * EffectLevel ) / 100;
    	if ( Special1_1$ == "SP" || Special1_2$ == "SP" || Special1_3$ == "SP" ) bonus bMaxSPrate, ( 5 * EffectLevel ) / 100;
    	if ( Special1_1$ == "HP_Recover" || Special1_2$ == "HP_Recover" || Special1_3$ == "HP_Recover" ) bonus bHPrecovRate, ( 10 * EffectLevel ) / 100;
    	if ( Special1_1$ == "SP_Recover" || Special1_2$ == "SP_Recover" || Special1_3$ == "SP_Recover" ) bonus bSPrecovRate, ( 10 * EffectLevel ) / 100;
    	if ( Special1_1$ == "FloatingCast" || Special1_2$ == "FloatingCast" || Special1_3$ == "FloatingCast" ) bonus bCastRate, ( 10 * EffectLevel ) / 100;
    	if ( Special1_1$ == "FixedCast" || Special1_2$ == "FixedCast" || Special1_3$ == "FixedCast" ) bonus bFixCastRate, ( 10 * EffectLevel ) / 100;
    	if ( Special1_1$ == "HpDrain" || Special1_2$ == "HpDrain" || Special1_3$ == "HpDrain" ) bonus2 bHpDrainRate, ( 5 * EffectLevel ), 15; // (100.00%),(100%)
    	if ( Special1_1$ == "CoolDown" || Special1_2$ == "CoolDown" || Special1_3$ == "CoolDown" ) bonus bDelayRate, -( 10 * EffectLevel ) / 100;
    	if ( Special1_1$ == "Heal" || Special1_2$ == "Heal" || Special1_3$ == "Heal" ) bonus bHealPower, ( 15 * EffectLevel ) / 100;
    
  9. Hi guys/gals, anyone knows the correct usage of callfunc or autobonus item db script using this one:

    function	script	Wand	{
    	if ( Weapon$ == "Wand" ) {
    		set WeapEquip, 1;
    		callfunc "Effect";
    	}
    }
    function	script	Effect	{
    	if ( WeapEquip == 1 ) {
    	bonus bMatk,5;
    	}
    return;
    }
    

    and the db:

    15000,Wand_,Wand Wand Wand,4,20,,1500,75,,1,4,0xFFFFFFFF,7,2,2,3,3,1,6,{ callfunc "Wand"; },{},{}
    
  10. @sir Liohardt: Yes sir, thanks for reminding me of that. Am really aware of it, I was scared of using too much of it, I saw some topic at eathena using wrong small script coded can cost too much resources. I did remove some for statements  that shorten the script unnecessarily and took the long way around, LOL as you can see in the script you can found redundancy of functions and commands, but then again if you have a extra time you can look and read the whole script to correct some of my mistakes if I have any. Thanks! :)

  11. Ok no problem, Im now making an

     

    Bump, updated the whole script to v.1.5. Check this out. :)



     

    Let me try this one, it would be nice if you could provide a VIDEO in your OWN version of that Fishing System (- :)
    Thanks for the script anyways (-:

    Welcome! :) Yes I would love to! Anyways am planning to make that script more diverse, going to add skills and new features to it, but first am finding ways how to minimize the length of the script using callfunc, or getarg or whatever I can use to shorten the lines. I need to discover and learn new things first. :)

  12. Actually the recorded name will be overlapped by new rankers.

    About Top 10 Rank, find this and change DESC LIMIT 5 to 10. If you want to use sir Emistry or Aniruru script.

    ORDER BY `Count` DESC LIMIT 5
    

    or refer to sir Brian post. :)

  13. Insert this to Sql Query.
     

    DROP TABLE IF EXISTS `guild_rank_mem`;
    CREATE TABLE `guild_rank_mem` (
      `char_id` int(10) unsigned NOT NULL,
      `guild_id` smallint(5) unsigned NOT NULL,
      `rank` smallint(5) unsigned DEFAULT '0',
      `woe` smallint(5) unsigned DEFAULT '0',
      `donate` int(11) unsigned DEFAULT '0',
      `donate_am` int(11) unsigned DEFAULT '0',
      `holiday` smallint(5) unsigned DEFAULT '0',
      PRIMARY KEY (`char_id`)
    ) ENGINE=MyISAM;
    
    DROP TABLE IF EXISTS `guild_rank_guild`;
    CREATE TABLE  `guild_rank_guild` (
      `guild_id` smallint(5) unsigned NOT NULL,
      `type` smallint(5) unsigned DEFAULT '1',
      `rank` smallint(5) unsigned DEFAULT '0',
      `woe` smallint(5) unsigned DEFAULT '0',
      `donate` int(11) unsigned DEFAULT '0',
      `donate_min` int(11) unsigned DEFAULT '0',
      `donate_max` int(11) unsigned DEFAULT '0',
      PRIMARY KEY (`guild_id`)
    ) ENGINE=MyISAM;
    

    Then place the NPC wherever you wanted.

  14. I remove the link of old scripts. I don`t want anyone to use it while im finishing the new one, because of too much perma-global vars althou it work fine. I will post the new one after I finished the whole script, meantime the new release will be my final release of it ATM. I don`t like players encounter bugs or any related errors. Because I do have vacation this coming week so am not here doing any updates to bugs or errors. 

    • Upvote 1
  15. WOw thanks for the reply Sir Capuche, I actually make the script working my self before i look at your post, but i will apply what you had teach me, thank so much, here is my working script.
     
    When fishing level reach to 50, no mo exp will be given the the player. :)

    if( FishingLevel >= 50)set FishingNowExp,FishingNowExp + 0;// + 0 ?? what's the point?

    I just made some corrections, Yes sir used first equip computation to set how many bonuses are given if multiple equip are equipped.
    Script: 
    I only post the fishing points, but i manage to make all vars to work and read on query. :)

    function	script	Fishing_Points	{if($@Toggle == 1 || $@Toggle == 2 || $@Toggle == 3 || $@Toggle == 4) { // Fishing Points! Can be toggled to on/off.		for (.@i = 0; .@i < getarraysize($@FishingEquips); .@i++) if(isequipped($@FishingEquips[.@i])) {  			set #FishingPoints,#FishingPoints+$@FishingEquipsPts[.@i];		}												set #FishingPoints,#FishingPoints+$@FishingPoints[FishingLevel]; 	        			if(query_sql("SELECT `fpts` FROM `fishing_system` WHERE `name` = '"+strcharinfo(0)+"'",.@fpts)){ 			set .@fpts,#FishingPoints;			query_sql("UPDATE `fishing_system` SET `fpts` = '"+.@fpts+"' WHERE `name` = '"+strcharinfo(0)+"'");		}		else {			query_sql("INSERT INTO `fishing_system` (`account_id`,`char_id`,`name`,`fpts` ) VALUES ('"+getcharid(3)+"','"+getcharid(0)+"','"+strcharinfo(0)+"','"+escape_sql(.@fpts)+"')");		} 	}				return; }

    Querry: 

    DROP TABLE IF EXISTS `fishing_box`;DROP TABLE IF EXISTS `fishingbox`;DROP TABLE IF EXISTS `fishing_system`;CREATE TABLE IF NOT EXISTS `fishing_system` (`account_id` int(11) unsigned NOT NULL default '0',`char_id` int(11) unsigned NOT NULL default '0',`name` varchar(30) NOT NULL DEFAULT '',`flvl` INT( 11 ) NOT NULL DEFAULT '0',`fexp` INT( 11 ) NOT NULL DEFAULT '0',`fpts` INT( 11 ) NOT NULL DEFAULT '0',`fcot` INT( 11 ) NOT NULL DEFAULT '0',`fsuc` INT( 11 ) NOT NULL DEFAULT '0',`ffail` INT( 11 ) NOT NULL DEFAULT '0',`fenc` INT( 11 ) NOT NULL DEFAULT '0',`fmom` INT( 11 ) NOT NULL DEFAULT '0',`item_id` INT( 11 ) NOT NULL DEFAULT '0',`item_count` INT( 11 ) NOT NULL DEFAULT '0') ENGINE = MYISAM COMMENT = 'Lil Troll World of Fishing';
    FRank: 			set .@frank,query_sql("SELECT `name`, `flvl`, `fexp`, `fpts`, `fcot` FROM `fishing_system` ORDER BY flvl DESC LIMIT 5",.@n$,.@fl,.@fe,.@fp,.@fc);			mes "Hall Of Fame: Fishing Ladder"; 			mes "^ff0000Name^000000:^ff5500[ FL ]^000000:^005500[ FE ]^000000:^55007f[ FP ]^000000:^55ffff[ FC ]^000000";			for(set .@i,1; .@i <= .@frank; set .@i,.@i++) {			mes .@i+". ["+.@n$[0]+"] ("+.@fl[0]+") ("+.@fe[0]+") ("+.@fp[0]+") ("+.@fc[0]+")"; 			//cutin $FishingLadderRank$,3; 			}			next;			menu "^005500[ Return ]^000000",mainmenu; 			close;

    The ladder above: ^ ^ ^

    :D
     
    Im going to use this one you made: 
     

    for(set .@i,0; .@i < .@frank; set .@i,.@i++) {mes (.@i+1) +". ["+ .@n$[.@i] +"] ("+.@fl[.@i]+") ("+.@fe[.@i]+") ("+.@fp[.@i]+") ("+.@fc[.@i]+")";//cutin $FishingLadderRank$,3; }

    Again sir Capuche, thanks so much i ate so much information today! :)

    Sorry I misread the name.

  16. Hi guys, i just need to clarify something, is OnInit: works like this case below even no global vars used?

    - script blahblah -1,{
    OnInit:
    setarray .blahblah,501,502,503,504,505;
    setarray .blah,1,2,3,4,5;
    end;
    }
    function script blah1 {
     for(.@i=0; .@i < getarraysize(.blahblah) .@i++){
      if(isequipped(.blahblah[.@i]) mes .@i+". "+getitemname(.blahblah[.@i)+" "+blah[.@i]+" ";
     }
    return;
    }
    function script blah2 {
     for(.@i=0; .@i < getarraysize(.blahblah) .@i++){
      if(isequipped(.blahblah[.@i]) mes .@i+". "+getitemname(.blahblah[.@i)+" "+blah[.@i]+" ";
     }
    return;
    }
    function script blah3 {
     for(.@i=0; .@i < getarraysize(.blahblah) .@i++){
      if(isequipped(.blahblah[.@i]) mes .@i+". "+getitemname(.blahblah[.@i)+" "+blah[.@i]+" ";
     }
    return;
    }
    function script blah4 {
     for(.@i=0; .@i < getarraysize(.blahblah) .@i++){
      if(isequipped(.blahblah[.@i]) mes .@i+". "+getitemname(.blahblah[.@i)+" "+blah[.@i]+" ";
     }
    return;
    }
    function script blah5 {
     for(.@i=0; .@i < getarraysize(.blahblah) .@i++){
      if(isequipped(.blahblah[.@i]) mes .@i+". "+getitemname(.blahblah[.@i)+" "+blah[.@i]+" ";
     }
    return;
    }
    function script blah6 {
     for(.@i=0; .@i < getarraysize(.blahblah) .@i++){
      if(isequipped(.blahblah[.@i]) mes .@i+". "+getitemname(.blahblah[.@i)+" "+blah[.@i]+" ";
     }
    return;
    }
    function script blah7 {
     for(.@i=0; .@i < getarraysize(.blahblah) .@i++){
      if(isequipped(.blahblah[.@i]) mes .@i+". "+getitemname(.blahblah[.@i)+" "+blah[.@i]+" ";
     }
    return;
    }
    function script blah8 {
     for(.@i=0; .@i < getarraysize(.blahblah) .@i++){
      if(isequipped(.blahblah[.@i]) mes .@i+". "+getitemname(.blahblah[.@i)+" "+blah[.@i]+" ";
     }
    return;
    }
    function script blah9 {
     for(.@i=0; .@i < getarraysize(.blahblah) .@i++){
      if(isequipped(.blahblah[.@i]) mes .@i+". "+getitemname(.blahblah[.@i)+" "+blah[.@i]+" ";
     }
    return;
    }
    

     

×
×
  • Create New...