Jump to content

rizsu0107

Members
  • Posts

    40
  • Joined

  • Last visited

Posts posted by rizsu0107

  1. Good day, in my script i encounter this error. I can't find a way to fix.

    image.png.89448c5521da12c1404339a87233600e.png

    -    script    Gold_Room_Max_Account    -1,{
    
        OnPCLoadMapEvent:
    
            if(getgmlevel() >= 99){
    
                end;
    
            }
    
            set .@charmap$, strcharinfo(3);
    
            if(!compare(.tmp$, .@charmap$)) end;
    
            set .@len, query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE `account_id` IN (SELECT `account_id` FROM `ragnarok_accounts`.`login` WHERE `last_ip` = (SELECT `last_ip` FROM `ragnarok_accounts`.`login` WHERE `account_id` = "+getcharid(3)+")) AND `online` <> 0;",.@a);
    
            for(set(.@d,0); .@d < .@len; set(.@d, .@d+1)) {
    
                if(!getmapxy(.@map$, .@x, .@y, BL_PC, rid2name(.@a[.@d])) && .@charmap$ == .@map$)
    
                    set .@c, .@c + 1;     
    
            }
    
            if(.@c > .limitacc ) {
    
                dispbottom "Maximum of 2 accounts are allowed in the Gold Room at a time!";
    
                warp "thana_town", 100, 100;
    
            }    
    
            end;
    
        OnInit:
    
            set .limitacc, 2;
    
            setarray .maps$, "rockrdg1";
    
            set .lens, getarraysize(.maps$);
    
            for(set(.a, 0); .a < .lens; set(.a, .a+1)) {
    
                setmapflag .maps$[.a], mf_loadevent;
    
                set .tmp$, .tmp$ + .maps$[.a] + ",";
    
            }
    
    }

     

  2.   - Id: 617
        AegisName: Old_Violet_Box
        Name: Old Purple Box
        Type: Usable
        Buy: 10000
        Weight: 200
        Flags:
          BuyingStore: true
    #      Container: true
        Script: |
          getrandgroupitem(IG_VioletBox,1);

  3. 5 hours ago, KazumaSatou said:
      - Id: 55073
        AegisName: _Cocodrilo_Charm
        Name: Cocodrilo Charm
        Type: Charm
        Buy: 948
        Weight: 10
        Trade:
          NoSell: true
          NoDrop: true
        Script: |
          if ( countitem( 55073 ) < 2){
          bonus bDef2,1;
          bonus bAllStats,5;
          bonus bAddMaxWeight,10000;
          bonus2 bAddClass,Class_All,10;
          bonus2 bMagicAddClass,Class_All,10;
          skill 257,5;
          skill 249,5;
          } else {
          message strcharinfo(0),"You can only use 1x "+getitemname(55073)+"! All same charm(s) has been disabled.";
          bonus bDef2,1;
          }

    Try this.

    The skill is still there.

    image.png.653ccfe2fb91409ac8e239199fe2d746.png

    image.png.5f55e14b419d0211c6ad4ad7df5ad6df.png

  4.   - Id: 55073
        AegisName: _Cocodrilo_Charm
        Name: Cocodrilo Charm
        Type: Charm
        Buy: 948
        Weight: 10
        Trade:
          NoSell: true
          NoDrop: true
        Script: |
          bonus bDef2,1;
          bonus bAllStats,5;
          bonus bAddMaxWeight,10000;
          bonus2 bAddClass,Class_All,10;
          bonus2 bMagicAddClass,Class_All,10;
          skill 257,5;
          skill 249,5;
          if ( countitem( 55073 ) >= 2){
          message strcharinfo(0),"You can only use 1x "+getitemname(55073)+"! All same charm(s) has been disabled.";
          bonus bAllStats,-5;
          bonus bAddMaxWeight,-10000;
          bonus2 bAddClass,Class_All,-10;
          bonus2 bMagicAddClass,Class_All,-10;
          }


    Hello in my item script, I want to disable the skill 249,5; and skill 257,5; when a player have the same item. I tried disabling it with this skill 249,-5; also tried with skill 249,0; but nothing works.

  5. 7 hours ago, hendra814 said:

    for disable dual client, try my script below

    you can change the map for disable dual client.

    -	script	dualclientkicker	-1,{
    OnPCLoadMapEvent:
    set .@charmap$, strcharinfo(3);
    if(!compare(.tmp$,.@charmap$)) end;
    set .@len, query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE`account_id` IN (SELECT `account_id` FROM `login` WHERE `last_ip` =(SELECT `last_ip` FROM `login` WHERE `account_id`="+getcharid(3)+")) AND`online` <> 0;",.@a);
    for(set(.@d,0);.@d<.@len;set(.@d,.@d+1)) {
    	if(!getmapxy(.@map$,.@x,.@y,0,rid2name(.@a[.@d])) && .@charmap$==.@map$)
    	set .@c,.@c+ 1;     
    	}
    if(.@c > .limitacc ) {
    dispbottom "Dual accounts not allowed in PVP.";
    	warp "prontera",0,0;
    	}    
    	end;
    OnInit:
    set .limitacc,1;
    setarray .maps$,"guild_vs1","guild_vs2","guild_vs3","guild_vs4","guild_vs5","turbo_e_4","turbo_e_8","turbo_e_16",
    "pvp_y_1-1","pvp_y_1-2","pvp_y_1-3","pvp_y_1-4","pvp_y_1-5","pvp_y_2-1","pvp_y_2-2","pvp_y_2-3","pvp_y_2-4","pvp_y_2-5",
    "pvp_y_3-1","pvp_y_3-2","pvp_y_3-3","pvp_y_3-4","pvp_y_3-5","pvp_y_4-1","pvp_y_4-2","pvp_y_4-3","pvp_y_4-4","pvp_y_4-5",
    "pvp_y_5-1","pvp_y_5-2","pvp_y_5-3","pvp_y_5-4","pvp_y_5-5","pvp_y_6-1","pvp_y_6-2","pvp_y_6-3","pvp_y_6-4","pvp_y_6-5",
    "pvp_y_7-1","pvp_y_7-2","pvp_y_7-3","pvp_y_7-4","pvp_y_7-5","pvp_y_8-1","pvp_y_8-2","pvp_y_8-3","pvp_y_8-4","pvp_y_8-5",
    "pvp_n_1-1","pvp_n_1-2","pvp_n_1-3","pvp_n_1-4","pvp_n_1-5","pvp_n_2-1","pvp_n_2-2","pvp_n_2-3","pvp_n_2-4","pvp_n_2-5",
    "pvp_n_3-1","pvp_n_3-2","pvp_n_3-3","pvp_n_3-4","pvp_n_3-5","pvp_n_4-1","pvp_n_4-2","pvp_n_4-3","pvp_n_4-4","pvp_n_4-5",
    "pvp_n_5-1","pvp_n_5-2","pvp_n_5-3","pvp_n_5-4","pvp_n_5-5","pvp_n_6-1","pvp_n_6-2","pvp_n_6-3","pvp_n_6-4","pvp_n_6-5",
    "pvp_n_7-1","pvp_n_7-2","pvp_n_7-3","pvp_n_7-4","pvp_n_7-5","pvp_n_8-1","pvp_n_8-2","pvp_n_8-3","pvp_n_8-4","pvp_n_8-5",
    "pvp_2vs2";
    set .lens ,    getarraysize(.maps$) ;
    for(set(.a,0);.a<.lens;set(.a,.a+1)) {
    	setmapflag .maps$[.a],    mf_loadevent ;
    	set .tmp$ ,.tmp$+.maps$[.a]+",";
    }
    }

     

    Thank you. I've been looking for something like this. thank you so much!

  6. 24 minutes ago, KazumaSatou said:
    query_sql("SELECT `last_ip` FROM `ragnarok_accounts`.`login` WHERE `account_id` = "+getcharid(3)+"",.@IP );
    query_sql("SELECT `account_id` FROM `ragnarok_accounts`.`login` WHERE `last_ip` = "+.@IP+"",.@Accountlist );

    Here. The database and table has been swapped. 

    I don't receive any errors now. Thank you so much. Also my Woe Controller is Fixed thank you so much for this.
    image.png.ec25f08c7ed55248d7185c8a1a72793f.png

    image.thumb.png.65a1549aa94e9f247c61e471a768eb09.png

    Also, can I ask about this. It is not detecting the same user IP, if you don't mind :).

    image.png.2bb6dc42f0d1766d39e0acedebe8e73b.png

    -    script    No_Multiple_Accounts    -1,{
    OnPCLoadMapEvent:
    if( strcharinfo(3) == .Map$ ){

    query_sql("SELECT `last_ip` FROM `ragnarok_accounts`.`login` WHERE `account_id` = "+getcharid(3)+"",.@IP );
    query_sql("SELECT `account_id` FROM `ragnarok_accounts`.`login` WHERE `last_ip` = "+.@IP+"",.@Accountlist );

    for( set .@i,0; .@i < getarraysize( .@Accountlist ); set .@i,.@i + 1 )
        if( isloggedin( .@Accountlist[.@i] ) ) 
            set .@DetectedOnline,.@DetectedOnline + 1;

        if( .@DetectedOnline > .Limit ){
            mes "We detected there is "+.@DetectedOnline+" Users with same IP Logged in.";
            mes "Please log off these unused account.";
            close2;
            warp "thana_town",100,100;
        }
    }
    end;

    OnInit:
    // How many User with Same IP can logged in and stay at the specific map
    set .Limit,1;
    // What map will be restricted
    set .Map$,"jupe_ele";
    setmapflag .Map$,mf_loadevent;
    end;
    }

  7. 10 minutes ago, KazumaSatou said:

    Try this :

    query_sql("SELECT `last_ip` FROM `login`.`ragnarok_accounts` WHERE `account_id` = "+.@aid[.@j]+"",.@last_ip$);
    if(.@last_ip$ == ""){
    	do things here when last ip is empty.
    }

    I don't know why you're using the < 1 on checking ip since the ip is a string so it won't be read if you're comparing it to an integer.

    I just copied this in Euphy's WOE Controller, the one that have " // " is the default, I just added the User `ragnarok_accounts` because I have multiple servers. It is also the same when the woe ends I receive SQL DB error too.
    image.thumb.png.df5d2981994efc227f4e3f53f8b02a7c.png

    image.png.2370a844474fb8916d9a53d3682b8e8b.png

  8. Hello, having trouble on this script, I really don't know how to fix it. Please help me!
    if (query_sql("USE `ragnarok_accounts` SELECT `last_ip` FROM `login` WHERE `account_id` = '" + .@aid[.@j] + "'", .@last_ip$) < 1)

    If I understand the query_sql correctly this is the setup just based on the script.

    ragnarok_accounts

    image.png.cd204d4bb687972b633ccc17ba13dfe7.png

    last_ip
    image.png.032f0eb84b6473f51cb8d688284f09a9.png

    account_id
    image.png.ca967f8ba999f31f9ddf709a2c84a201.png


    image.thumb.png.8aae1aad238bdaa518c8eefd1653c31b.png

  9. 6 hours ago, Bringer said:

    try check this

    on latest rathena 
    https://github.com/rathena/rathena/blob/master/src/map/pc.cpp#L7289
     

    /**
     * Check if we still have the correct weapon to continue the skill (actually status)
     * If not ending it
     * @param sd
     * @return 0:error, 1:check done
     */
    static void pc_checkallowskill(struct map_session_data *sd)
    {
    	const enum sc_type scw_list[] = {
    		SC_TWOHANDQUICKEN,
    		SC_ONEHAND,
    		SC_AURABLADE,
    		SC_PARRYING,
    		SC_SPEARQUICKEN,
    		SC_ADRENALINE,
    		SC_ADRENALINE2,
    		SC_DANCING,
    		SC_GATLINGFEVER,
    	};
    	uint8 i;
    	nullpo_retv(sd);
    
    	if(!sd->sc.count)
    		return;
    
    	for (i = 0; i < ARRAYLENGTH(scw_list); i++)
    	{	// Skills requiring specific weapon types
    		if( scw_list[i] == SC_DANCING && !battle_config.dancing_weaponswitch_fix )
    			continue;
    		if(sd->sc.data[scw_list[i]] &&
    			!pc_check_weapontype(sd,skill_get_weapontype(status_sc2skill(scw_list[i]))))
    			status_change_end(&sd->bl, scw_list[i], INVALID_TIMER);
    	}
    
    	if(sd->sc.data[SC_SPURT] && sd->status.weapon)
    		// Spurt requires bare hands (feet, in fact xD)
    		status_change_end(&sd->bl, SC_SPURT, INVALID_TIMER);
    
    	if(sd->status.shield <= 0) { // Skills requiring a shield
    		const enum sc_type scs_list[] = {
    			SC_AUTOGUARD,
    			SC_DEFENDER,
    			SC_REFLECTSHIELD,
    			SC_REFLECTDAMAGE
    		};
    		for (i = 0; i < ARRAYLENGTH(scs_list); i++)
    			if(sd->sc.data[scs_list[i]])
    				status_change_end(&sd->bl, scs_list[i], INVALID_TIMER);
    	}
    }

     

     

    Got errors, I actually solve it by paying someone. Thanks for the response.
    image.png.c2fe8d19f29364e53694076abf904591.png

×
×
  • Create New...