Jump to content

teknical

Members
  • Posts

    34
  • Joined

  • Last visited

Posts posted by teknical

  1. Hi can someone help me with this.  Instead of giving an item for reward I want it to give experience. Can someone help me with this one. Thanks

    
    // NPC Name must have a Number behind it.  ex Name#1 , Name#2,...
    
    prontera,155,181,5	script	Chained Quest#1	757,{
    function	ChainedQuest;
    mes "I am a Chained Quest NPC, you can only redo the previous Quest after you have finished all of my Quests.";
    next;
    
    // Quest Setup : 
    // ChainedQuest( Reward,Amount , Required Zeny, {Item1,Amount1,Item2,Amount2,...} );
    switch( getd( "Quest"+strnpcinfo(2) ) ){
    	Case 0: ChainedQuest( 5001,1, 10000, 607,10 );
    	Case 1: ChainedQuest( 5002,1, 15000, 607,20, 608,20 );
    	Case 2: ChainedQuest( 5003,1, 20000, 607,30, 608,30, 7539,30 );
    //	Case 3: ChainedQuest( 5004,1, 25000, 607,40, 608,30, 7539,40 ,501,10 );
    //	Case 4: ChainedQuest( 5005,1, 30000, 607,50, 608,30, 7539,50 ,501,10 ,502,10 );
    //	Case 5: ChainedQuest(....);
    //	Case 6: ChainedQuest(....);
    default:
    	mes "Congratulation ,You have finished all the Quest i gave you, you may Re-Do if you want.";
    	set getd( "Quest"+strnpcinfo(2) ),0;
    	close;
    }
    
    OnPCLoadMapEvent:
    	showevent 1,0;
    	end;
    
    function	ChainedQuest	{
    	for( set .@i,3; getarg( .@i,0 ) != 0 ; set .@i,.@i + 2 ){
    		if( countitem( getarg( .@i ) ) < ( getarg( .@i + 1 )) ){
    			mes "[ ^FF0000Part "+( getd( "Quest"+strnpcinfo(2) ) + 1 )+"^000000 ]";
    			mes "^00FF00_______________________________^000000";
    			mes "^FF0000Reward^000000 : "+getarg(1)+" x ^0000FF"+getitemname( getarg(0) )+"^000000";
    			mes "^00FF00_______________________________^000000";
    			mes "then bring me those items :";
    			mes "^00FF00_______________________________^000000";
    			mes ( Zeny < getarg(2) ? "^FF0000":"^0000FF" )+getarg(2)+" Zeny^000000";
    			for( set .@a,3; getarg( .@a,0 ) != 0 ; set .@a,.@a + 2 ){
    				mes (( countitem(getarg( .@a )) < ( getarg(.@a + 1 )) )? "^FF0000[ "+countitem(getarg(.@a))+" / "+(getarg(.@a+1)):"^0000FF[ "+getd( "Quest"+strnpcinfo(2) ) )+" ] "+getitemname(getarg(.@a))+"^000000 ";
    				}
    			close;
    			}
    		}
    	if( Zeny < getarg( 2 ) ){
    		mes "You required "+getarg( 2 )+" Zeny.";
    		close;
    		}
    	mes "[ ^FF0000Part "+( getd( "Quest"+strnpcinfo(2) ) + 1 )+"^000000 ]";
    	mes "Look's like you have collected all";
    	mes "^FF0000_______________________________^000000";
    	mes ( Zeny < getarg(2) ? "^FF0000":"^0000FF" )+getarg(2)+" Zeny^000000";
    	for( set .@i,3; getarg( .@i,0 ) != 0 ; set .@i,.@i + 2 ){
    		mes "^FF0000"+getarg( .@i+1 )+" x ^0000FF "+getitemname( getarg( .@i ) )+"^000000";
    		}
    	next;
    	if( select("^0000FFContinue^000000:Cancel") == 2 ){
    		mes "Okay..as you wish ~ come back again when you do continue it.";
    		close;
    		}
    	for( set .@i,3; getarg( .@i,0 ) != 0 ; set .@i,.@i + 2 ){
    		delitem getarg( .@i ),getarg( .@i + 1 );
    		}
    	set Zeny,Zeny - getarg( 2 );
    	set getd( "Quest"+strnpcinfo(2) ),getd( "Quest"+strnpcinfo(2) ) + 1;
    	mes "You will be rewarded with ";
    	mes "^0000FF_______________________________^000000";
    	mes "^FF0000"+getarg(1)+"^000000 x ^0000FF"+getitemname( getarg(0) )+"^000000";
    	mes "^0000FF_______________________________^000000";
    	getitem getarg(0),getarg(1);
    	close;
    	}
    }
    
    prontera	mapflag	loadevent

     

  2. Hi guys,

    I'm using Stolaos daily reward script and I'm having problem with the #CASHPOINT edit I made to the file.  

    The error I get is this:

    [Warning]: Unexpected type for argument 1. Expected string.
    [Debug]: Data: variable name='#CASHPOINTS' index=0
    [Debug]: Function: setd

     

    Also players only get the set zeny and cashpoints but nothing else. They don't get the items set in the script.

    Spoiler

    //===== EinherjarRO Scripts ================================== 
    //= Daily Rewards
    //===== By: ================================================== 
    //= Stolao
    //===== Current Version: ===================================== 
    //= 1.8C
    //===== Compatible With: ===================================== 
    //= rAthena SVN
    //===== Description: ========================================= 
    //= A reward system for players who play more frequently
    //===== Todo: ================================================
    //= Maybe make .MinWait an array mins,days,weeks,months,years;
    //= Make Logging out then it continue count
    //= Seperate Timer from script for optional go collect reward
    //= Remove use of sleep2
    //= Suggestions?
    //===== Additional Comments: =================================
    //= For Older See Old Versions
    //= 1.7C Added custom item binding mode [Secretdataz]
    //= 1.7D Added cutin for next day option + command
    //= 1.7E Added IP Check
    //= 1.7F Moved .Rest Message to after .MinWait Check
    //= 1.80 Added MacAddress check for those using Gepard Shield (disabled by default)
    //= 1.81 Fixed Typo in .MacCheck
    //= 1.82 Moved .Rest Check before rewards check to prevent bug
    //= 1.83 Added strnpcinfo(3) for bindatcomands
    //= 1.84 Rephrased some conf settings
    //= 1.85 Fixed Capilazation
    //= 1.86 Small Tabulation Tweaks
    //= 1.87 Noted Changes to Reward Farmatting
    //= 1.88 Added 'fixreward' Command for those who get negative wait times ( not sure of issues still)
    //= 1.89 Changed soeme Messaging Formatting
    //= 1.8A Made Fix Command GM 99 Only, to use on others do '#fixreward'
    //= 1.8B Added Overwieght Collection
    //= 1.8C Added 'collectreward', 'collectdaily' and 'dailyreward' commands
    //===== Contact Info: ========================================
    //= [Stolao] 
    //= Email: [email protected]
    //============================================================
    -    script    LOGIN    -1,{
    OnWhisperGlobal:
    OnLoginCmnd:
    OnPCLoginEvent:
        .@i = (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2);
        if(.@i >= (#LastDailyReward + .MinWait) && .Rest){
            message strcharinfo(0),"[Daily Rewards]: To collect reward you must remain logged in for "+ .Rest +" minutes";
            sleep2 1000 + .Rest * 60000;
        }
        if(.@i >= (#LastDailyReward + .MinWait)){
            if(checkvending() & 2 && .Mode & 64){
                message strcharinfo(0),"[Daily Rewards]: Venders cannot recive rewards.";
                end;
            }
            if(.@i < #LastDailyReward + .MaxWait)
                #DRewardCon += 1;
            else    #DRewardCon = 1;
            .@size = getarraysize(.Rewards$);
            if(#DRewardCon >= .@size){
                if(.Reset)
                    #DRewardCon = 1;
                else    #DRewardCon = .@size-1;
            }
            explode(.@XT$,.Rewards$[#DRewardCon],",");
            .@size = getarraysize(.@XT$);
            for(.@x = 0; .@x < .@size; .@x++)
                .@TT[.@x] = atoi(.@XT$[.@x]);
            if(.Mode & 1 && .@TT[4] > 0){
                .@size = getarraysize(.@TT);
                for(.@x = 4; .@x <= .@size - 1 ; .@x += 2){
                    .@itms[.@y] = .@TT[.@x];
                    .@qnts[.@y] = .@TT[.@x + 1];
                    .@y++;
                }
            }
            if(.Mode & 16)
                cutin .Cutins$[#DRewardCon],4;
            if(.Mode & 2){
                if(.@TT[0]){
                    zeny += .@TT[0];
                    message strcharinfo(0),"[Daily Rewards]: Recieved "+ .@TT[0] +"z";
                }
                if(.@TT[1]){
                    setd getd(.Points$[0]),getd(.Points$[0]) + .@TT[1];
                    message strcharinfo(0),"[Daily Rewards]: Recieved "+ .@TT[1] +" "+.Points$[1];
                }
            }
            if(.Mode & 4 && (.@TT[3] || .@TT[4]))
                getexp .@TT[3], .@TT[4];
            if(.Mode & 8){
                .@size = getarraysize(.BuffInfo);
                for(.@x = 0; .@x < .@size; .@x += 4){
                    if(#DRewardCon % .BuffInfo[.@x + 1] == 0)
                        sc_start .BuffInfo[.@x], .BuffInfo[.@x + 2] * 60000, .BuffInfo[.@x + 3];
                }
            }
            message strcharinfo(0),"[Daily Rewards]: You have collected your daily reward, for "+callfunc("F_InsertPlural",#DRewardCon,"day")+" now.";
            #LastDailyReward = (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2) - .Rest;
            end;
        }
    OnNextCmnd:
        if(!.@i) .@i = (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2) - .Rest;
        if(#LastDailyReward + .MinWait - .@i < 0){
            message strcharinfo(0),"[Daily Rewards]: Your rewards should be available.";
        } else {
            .@days = (#LastDailyReward + .MinWait - .@i) / 60 / 24;
            .@hours = ((#LastDailyReward + .MinWait - .@i) / 60) % 24;
            .@mins = (#LastDailyReward + .MinWait - .@i) % 60;
            message strcharinfo(0),"[Daily Rewards]: You have "+ ((.@days) ? .@days +" Days " : "") + ((.@hours) ? .@hours +" Hours " : "") + ((.@mins) ? .@mins +" Minutes " : "") +"till your next reward.";
            if(.Mode & 128){
                set .@size,getarraysize(.Rewards$);
                if(#DRewardCon + 1 >= .@size){
                    if(.Reset) .@g = 1;
                    else       .@g = .@size-1;
                } else           .@g = #DRewardCon + 1;
                cutin .Cutins$[.@g],4;
            }
        }
        end;
    OnFixCmnd:
        #LastDailyReward = (gettime(7) * 365 * 24 * 60) + (gettime(8) * 24 * 60) + (gettime(3) * 60) + gettime(2);
        message strcharinfo(0),"[Daily Rewards]: Next reward has been forcively reset.";
        .@days = .MinWait / 60 / 24;
        .@hours = .MinWait / 60 % 24;
        .@mins = .MinWait % 60;
        message strcharinfo(0),"[Daily Rewards]: You have "+ ((.@days) ? .@days +" Days " : "") + ((.@hours) ? .@hours +" Hours " : "") + ((.@mins) ? .@mins +" Minutes " : "") +"till your next reward.";
        end;
    OnInit:
        // Basic Settings
        //   1: Item | 2: Points | 4: Exp  
        //   8: Gain Buffs Every X Consecutive Days logged in
        //   16: Show Cutins | 32: Bound Items
        //   64: No Rewards ffor Autotraders
        //   128: Show Next Day Cutin
        //     (a bit value, e.g. 3 = Items & Points from Multi)
        .Mode = 1|2|4|8|16|64;

        // Item Binding Mode
        //     Bound_Account : Account Bound item
        //     Bound_Guild   : Guild Bound item
        //     Bound_Party   : Party Bound item
        //     Bound_Char    : Character Bound item
        .Bound_Mode = Bound_Account;
        
        // To disable the command '@loginreward' comment the next lines
        // * Needs extra commands for typos
        bindatcmd("relog",strnpcinfo(3)+"::OnLoginCmnd",0,99);
        bindatcmd("collectreward",strnpcinfo(3)+"::OnLoginCmnd",0,99);
        bindatcmd("dailyreward",strnpcinfo(3)+"::OnLoginCmnd",0,99);
        bindatcmd("collectdaily",strnpcinfo(3)+"::OnLoginCmnd",0,99);
        bindatcmd("nextreward",strnpcinfo(3)+"::OnNextCmnd",0,99);

        // GM Command to fix the negative time till reward issue
        // #fixreward <playername>
        // * Needs extra commands for typos
        bindatcmd("fixreward",strnpcinfo(3)+"::OnFixCmnd",99,99);

        // Minimum minutes between collecting daily reward
        //   Day: 22*60 - 24*60
        //   Week: 10080
        .MinWait = 1320;

        // Minutes before losing the consecutive reward
        //   Day: 48*60 - 50*60
        //   Week: 20160
        .MaxWait = 3000;

        // What to do upon reaching last day defined
        //   [0] Repeat last day
        //   [1] Restart at 1
        .Reset = 1;

        // Number of mins after logging before collecting prize
        .Rest = 0;

        // Point Type
        //   [0] Points earned
        //   [1] Point name in mes
        setarray .Points$,"#CASHPOINTS","Cash Points";

        // Consecutive Days Buff
        // Each buff contains 4 variables (32 Total Max)
        // <Type>,<Days>,<Duration>,<Rate>, // Buff 1
        // <Type>,<Days>,<Duration>,<Rate>, // Buff 2
        //   ...;
        //
        //  Example: 188,7,45,3
        //    -Every 7th consecutive day logged in Player gains +3 Str for 45 mins
        //
        //  Type is 188, which references which SC_ to use, SC_INCSTR in this example
        //     -For a full list of SC_ visit the db/const.txt
        //  Days is days buff is applied, in this example 7, so every 7th day, 14,21,28....
        //  Duration is buff duration is Minuits, in this example 45 mins
        //  Rate is buff strength, in this example player gains 3 Str
        setarray .BuffInfo    ,260,2,360,1    // Life Insurance for 360 Mins Every 2nd Day
                    ,198,3,120,10    // +10% Hp for 120 Mins Every 3th Day
                    ,196,5,120,25    // +25 Flee for 120 Mins Every 5th Day
                    ,257,7,240,50;    // +50% Exp for 240 Mins Every 7th Day

        // Daily Prize items (max 128 days):
        //   "<Zeny>,<Points>,<BaseExp>,<JobExp>,<itemID-1>,<amount-1>,<itemID-2>,<amount-2>...etc", // Day 1
        //   "<Zeny>,<Points>,<BaseExp>,<JobExp>,<itemID-1>,<amount-1>,<itemID-2>,<amount-2>...etc"  // Day 2
        //   ...;
        // Total length of any days string must be 255 or shorter
        // * If players login longer than the last set
        //   day, they will keep getting the last prize.
        setarray .Rewards$[1],
            "10000,25,0,0,12210,1,14533,1,608,25",
            "10000,25,0,0,12210,1,14533,1,608,25",
            "10000,25,0,0,12210,1,14533,1,608,25",
            "10000,50,0,0,12210,2,14533,2,608,50";

        // Cutin Array
        //    Shows a cuting for each date
        //    
        setarray .Cutins$[1],
                "kafra_01",
                "kafra_02",
                "kafra_03",
                "kafra_04",
    end;
    }
     

     

  3. Hi, I've been trying to find a way to modify damage reflect.  I'm using the global mod found here https://rathena.org/board/topic/80110-global-damage-adjustment/. Our problem now is in pvp, damage reflect is really high compared to the damage being dealt.  if 2 sinx are dualing or pally with reflect damage all they have to do is stand there and the person attacking dies.  Visually the person attacking is hitting for 100-300dmg but the reflect damage seen is over 1k.  Valkyrie Manteau states it reflects 5% damage back but thats not the case here.  It's like its reflecting the actual damage it would have been if the global mod wasnt there.  How can i fix this?  I really need help here.

  4. hi zack,

    yes the classnum is crashing the client.  i tested it by replacing the weapon numbers to the corrisponding sprite id's in my item_db and they are working now.  but im wondering why the updated file is crashing my clients. 

  5. That's the correct view number for that weapon's sprite.

    Server can't use that number for database, so they use 8 instead.

     

    See:

    \data\luafiles514\lua files\datainfo\weapontable.lub

    so with that said, what do you think would be causing the client to crash with the updated Iteminfo.lub i downloaded from that site because my weapontable.lub is the same as the one on that same site. 

     

    also that same snippet i pasted up top, my original file had classnum = 8 while the new one has classnum = 62

  6. Could someone shed some light on this?

     

    I downloaded files from here : https://github.com/ROClientSide/Translation

     

    Now i was inspecting the classnum portion of the items and i noticed they were wrong for many of the weapons.  for instance this here:

    [1505] = {
            unidentifiedDisplayName = "Mace",
            unidentifiedResourceName = "클럽",
            unidentifiedDescriptionName = {
                "Unknown Item, can be identified by ^6A5ACDMagnifier^000000.",
            },
            identifiedDisplayName = "Mace",
            identifiedResourceName = "메이스",
            identifiedDescriptionName = {
                "A flanged, solid club that is effective for simple smashing.",
                "Class: ^777777Mace^000000",
                "Attack: ^77777737^000000",
                "Weight: ^77777780^000000",
                "Weapon Level: ^7777771^000000",
                "Required Level: ^7777772^000000",
                "Jobs: ^777777Novice, Swordman, Acolyte, and Merchant Classes^000000",
            },
            slotCount = 4,
            ClassNum = 62   <--------------should be 8 according to my itemdb.

    It's saying classnum = 62 when it should be 8. im glad i caught this fast and reverted to my original which is outdated because clients were crashing. 

     

    now its like this throughout the weapons so im just curious is there something im missing?

  7. hey there im using this src modification on my server and its working as intended. but now theres a new problem regarding damage reflect.  the damage reflected is more than the damage dealt to the player doing the damage.  Im using this mod to modify overall damage output in pvp.  so for instance 2 sinx are dueling both using valk manteau, the sinx hits for 500dmg but receives 2 times as much damage as reflect.  its as if the game is calculating what would have been the actual damage without your global damage mod. now, my question is, is there a way to make it calculate the damage after the global damage mod   is calculated and not before?

  8. Hi,

    I have used your advanced banker script before and it worked fine. But not any more.

    With the latest rathena revision your banker script has an exploit.

    When I first talked to the banker, he was saying that i already have an account. (When I didn't even create an account with him)

    He also doesn't tell you the amount of zeny I have in the bank. He just says "you have a balance of Zeny in your account".

    And now here's the exploit, you can withdraw any amount of zeny you want.

    I hope you have a fix for this >.

    I'm getting the same exact problem.  i can withdraw with an account that has 0 zeny. 

  9.  

    There is in your folders npc/custom/jobmaster.txt.

    At the end of it, just configure what you want:

    OnInit:
    	setarray .Rebirth[0],99,50;	// Minimum base level, job level to rebirth OR change to third class
    	setarray .JobReq[0],10,40;	// Minimum job level to turn into 1st class, 2nd class
    	.ThirdClass = 1;		// Enable third classes? (1: yes / 0: no)
    	.SecondExpanded = 1;		// Enable new expanded second classes: Ex. Super Novice, Kagerou/Oboro, Rebellion? (1: yes / 0: no)
    	.SNovice = 45;			// Minimum base level to turn into Super Novice
    	.LastJob = 1;			// Enforce linear class changes? (1: yes / 0: no)
    	.SkillPointCheck = 1;		// Force player to use up all skill points? (1: yes / 0: no)
    	.Platinum = 1;			// Get platinum skills automatically? (1: yes / 0: no)
    	end;
    

    got it thanks

  10.  

    weird... I just tried it and got no error. my groups.conf:

    groups: (
    {
        id: 0 /* group 0 is the default group for every new account */
        name: "Player"
        level: 99
        inherit: ( /*empty list*/ )
        commands: {
            /* no commands by default */
            commands: true
            charcommands: true
            help: true
            rates: true
            uptime: true
            showdelay: true
            exp: true
            mobinfo: true
        }
        permissions: {
            /* without this basic permissions regular players could not
            trade or party */
            can_trade: true
            can_party: true
            command_enable: true
        }
    },
    {
        id: 1
        name: "Super Player"
        inherit: ( "Player" ) /* can do everything Players can and more */
        level: 0
        commands: {
            /* informational commands */
            commands: true
            charcommands: true
            help: true
            rates: true
            uptime: true
            showdelay: true
            exp: true
            mobinfo: true
            iteminfo: true
            whodrops: true
            time: true
            jailtime: true
            hominfo: true
            homstats: true
            showexp: true
            showzeny: true
            whereis: true
            /* feature commands */
            refresh: true
            noask: true
            noks: true
            autoloot: true
            alootid: true
            autoloottype: true
            autotrade: true
            request: true
            go: true
            breakguild: true
            channel: true
            langtype: true
        }
        permissions: {
        }
    },
    

    ye just got it to work... my dumdum self put the commands under permisions

×
×
  • Create New...