Jump to content

GM Winter

Members
  • Posts

    666
  • Joined

  • Last visited

Posts posted by GM Winter

  1. On 1/9/2024 at 11:42 AM, Rivers said:

    This is possible, yes. There's an option to allow in the configs to enable the use of all items in the shortcut windows.
    image.png.96a980734d0933d795cfb4ee2e6be15f.png

    I just have a hard time finding it right now. I'll reply again if I can remember, but the option explains something along the lines of "Allow any item or skill in the battle menu" of some sort.

    It was a NEMO patch. 
    image.png.b809d0110c888e27531c4ef14199db9b.png
    This will allow it.

    hello i try to patch it but still i cant put the guild skills in shortcut keys im using 20180621 exe

  2. hello im having a problem in this script its an item ranking script example the most number of apple that given to this npc will show the rank and will be the winner of the event in my case during test in offline server it works fine but when i put it in the online server theres an error and i cant fixed it anyone have idea whats the error

    this is the original script: 

    Quote

    /*
    CREATE TABLE IF NOT EXISTS `e_npc_trade_item` (
      `cid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
      `name` VARCHAR(30) NOT NULL DEFAULT '',
      `nameid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
      `amount` INT(11) UNSIGNED NOT NULL DEFAULT '0',
      PRIMARY KEY (`cid`,`nameid`,`amount`)
    ) ENGINE=MyISAM;
    */

    //sky_quest,38,34,5    script    Scroll Collector    2_m_sage_old,{
    malangdo,134,114,5    script    Scroll Collector    2_m_sage_old,{
        doevent "trade_item_main::OnTalk";
    }


    -    script    trade_item_main    -1,{
        function    func_DisallowItem    {
            switch ( getarg( 0,0 ) ) {
                default: 
                    return 0;
                // case <itemID>:
                case 501:    // Red Potion
                case 502:    // Orange Potion
                case 4001:    // Poring Card 
                    return 1;
            }
            return 0;
        }
        
        OnInit:
            // Top Rank
            .top_rank = 10;
            
            // NPC take what item ID, 0 = all items.
            .only_one_itemid = 61631; // special event scroll
            end;
        
        OnTalk:
            .@is_gm = ( getgmlevel() >= 99 );
            
            mes "^0055FF[ Special Scroll Collector ]^000000";
            mes "Do you have Special Scroll? You may give it to me.";
            mes " ";
            mes "I'll always remember who giveaway this items to me.";
            next;
            switch( select(
                "View Top "+.top_rank+" Rank",
                "Give Special Scroll",
                ( .@is_gm ) ? "[GM] Reset" : ""
            )) {
                default:
                    do {
                        
                        switch( select( 
                            "Filter by Name", 
                            ( .only_one_itemid ) ? "":"Filter by ItemID",
                            "Without Filter" 
                        ) ) {
                            case 1: mes "Enter Char Name"; break;
                            case 2: mes "Enter ItemID"; break;
                            default: break;
                        }
                        
                        if ( @menu && @menu < 3 ) {
                            next;
                            input .@input$;
                        }
                        
                        .@sql$ = "SELECT `name`, `nameid`, SUM(`amount`) AS `total` "
                                + "FROM `e_npc_trade_item` "
                                + "WHERE 1 = 1 "
                                + ( .only_one_itemid ? "AND `nameid` = "+.only_one_itemid+" " : "" )
                                + ( ( @menu == 1 ) ? "AND `name` = '"+escape_sql( .@input$ )+"' " : "" )
                                + ( ( @menu == 2 ) ? "AND `nameid` = '"+escape_sql( .@input$ )+"' " : "" )
                                + "GROUP BY `cid`,`nameid` "
                                + "ORDER BY `total` DESC LIMIT "+.top_rank;
                        query_sql( .@sql$,.@name$,.@nameid,.@total );
                        .@size = getarraysize( .@name$ );
                        
                        mes "Top "+.top_rank+" Records:";
                        if ( .@size ) {
                            for ( .@i = 0; .@i < .@size; .@i++ ) {
                                //mes "["+(.@i+1)+".] ~ '"+getitemname( .@nameid[.@i] )+"' | [ "+.@total[.@i]+"ea ] - '^0000FF"+.@name$[.@i]+"'^000000 ";
                                mes "["+(.@i+1)+".] '"+getitemname( .@nameid[.@i] )+"' ("+.@total[.@i]+"ea) - '"+.@name$[.@i]+"' ";
                            }
                        }
                        else {
                            mes "no record found.";
                        }
                        next;
                    } while ( 1 );
                    break;
                case 2:
                    if ( !.only_one_itemid ) {
                        mes "Pick an item and give to me";
                        getinventorylist;
                        for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) {
                            if ( @inventorylist_bound[.@i] <= 0
                                && @inventorylist_expire[.@i] <= 0
                                && @inventorylist_equip[.@i] <= 0
                                && func_DisallowItem( @inventorylist_id[.@i] ) <= 0
                            ) {
                                .@menu$ = .@menu$ + getitemname( @inventorylist_id[.@i] ) + " ("+@inventorylist_amount[.@i]+" left)";
                                .@count++;
                            }
                            .@menu$ = .@menu$ + ":";
                        }
                        if ( .@count ) {
                            .@i = select( .@menu$ ) - 1;
                            .@itemid = @inventorylist_id[.@i];
                        }
                    }
                    else {
                        .@itemid = .only_one_itemid;
                        .@count++;
                    }
                    if ( .@itemid ) {
                        mes "How many "+getitemname( .@itemid )+" will be given to me?";
                        input .@amount,0,countitem( .@itemid );
                        if ( .@amount ) {
                            delitem .@itemid,.@amount;
                            npctalk "Thank you, "+strcharinfo(0)+" donated "+.@amount+"x "+getitemname( .@itemid )+" to me.";
                            query_sql( "INSERT INTO `e_npc_trade_item` ( `cid`,`name`,`nameid`,`amount` ) VALUES ( "+getcharid(0)+",'"+escape_sql( strcharinfo(0) )+"',"+.@itemid+","+.@amount+" ) ON DUPLICATE KEY UPDATE `amount` = `amount` + "+.@amount );
                            mes "Thank for your kindness.";
                        }
                    }
                    else {
                        mes "You dont have any item available to give to NPC.";
                    }
                    break;
                case 3:
                    mes "This action cant be undo, confirm your action?";
                    next;
                    if ( select( "Yes, confirm.","Cancel" ) == 1 ) {
                        query_sql( "TRUNCATE `e_npc_trade_item`" );
                    }
                    break;
            }
            close;
    }

    and this is the error:

     

    Quote

    [SQL]: DB error - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'mydatabased.e_npc_trade_item.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
    [Debug]: at script.cpp:17049 - SELECT `name`, `nameid`, SUM(`amount`) AS `total` FROM `e_npc_trade_item` WHERE 1 = 1 AND `nameid` = 61631 GROUP BY `cid`,`nameid` ORDER BY `total` DESC LIMIT 10
    [Debug]: Source (NPC): trade_item_main (invisible/not on a map)



     

  3. 14 minutes ago, Emistry said:
    for (.@i = 0; .@i < getarraysize(.@Items); .@i++) {
    	if (countitem(.@Items[.@i]))
    		.@menu$ = .@menu$ + getitemname(.@Items[.@i]) + ((.@k)?" [1]":"");
    	.@menu$ = .@menu$ + ":";
    }

     

    hello sir where will i put this i try to insert it but i always got error

  4. hello need urgent help sir @Emistry while testing this in offline server it works fine and no error then after i upload it online im having a problem
     

    Quote

    /*
    CREATE TABLE IF NOT EXISTS `e_npc_trade_item` (
      `cid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
      `name` VARCHAR(30) NOT NULL DEFAULT '',
      `nameid` INT(11) UNSIGNED NOT NULL DEFAULT '0',
      `amount` INT(11) UNSIGNED NOT NULL DEFAULT '0',
      PRIMARY KEY (`cid`,`nameid`,`amount`)
    ) ENGINE=MyISAM;
    */
    malangdo,134,114,5    script    Scroll Collector    2_m_sage_old,{
        doevent "trade_item_main::OnTalk";
    }


    -    script    trade_item_main    -1,{
        function    func_DisallowItem    {
            switch ( getarg( 0,0 ) ) {
                default: 
                    return 0;
                // case <itemID>:
                case 501:    // Red Potion
                case 502:    // Orange Potion
                case 4001:    // Poring Card 
                    return 1;
            }
            return 0;
        }
        
        OnInit:
            // Top Rank
            .top_rank = 10;
            
            // NPC take what item ID, 0 = all items.
            .only_one_itemid = 61631; // special event scroll
            end;
        
        OnTalk:
            .@is_gm = ( getgmlevel() >= 99 );
            
            mes "^0055FF[ Special Scroll Collector ]^000000";
            mes "Do you have Special Scroll? You may give it to me.";
            mes " ";
            mes "I'll always remember who giveaway this items to me.";
            next;
            switch( select(
                "View Top "+.top_rank+" Rank",
                "Give Special Scroll",
                ( .@is_gm ) ? "[GM] Reset" : ""
            )) {
                default:
                    do {
                        
                        switch( select( 
                            "Filter by Name", 
                            ( .only_one_itemid ) ? "":"Filter by ItemID",
                            "Without Filter" 
                        ) ) {
                            case 1: mes "Enter Char Name"; break;
                            case 2: mes "Enter ItemID"; break;
                            default: break;
                        }
                        
                        if ( @menu && @menu < 3 ) {
                            next;
                            input .@input$;
                        }
                        
                        .@sql$ = "SELECT `name`, `nameid`, SUM(`amount`) AS `total` "
                                + "FROM `e_npc_trade_item` "
                                + "WHERE 1 = 1 "
                                + ( .only_one_itemid ? "AND `nameid` = "+.only_one_itemid+" " : "" )
                                + ( ( @menu == 1 ) ? "AND `name` = '"+escape_sql( .@input$ )+"' " : "" )
                                + ( ( @menu == 2 ) ? "AND `nameid` = '"+escape_sql( .@input$ )+"' " : "" )
                                + "GROUP BY `cid`,`nameid` "
                                + "ORDER BY `total` DESC LIMIT "+.top_rank;
                        query_sql( .@sql$,.@name$,.@nameid,.@total );
                        .@size = getarraysize( .@name$ );
                        
                        mes "Top "+.top_rank+" Records:";
                        if ( .@size ) {
                            for ( .@i = 0; .@i < .@size; .@i++ ) {
                                //mes "["+(.@i+1)+".] ~ '"+getitemname( .@nameid[.@i] )+"' | [ "+.@total[.@i]+"ea ] - '^0000FF"+.@name$[.@i]+"'^000000 ";
                                mes "[ "+(.@i+1)+" ] ~ '^0696A7"+.@name$[.@i]+"'^000000 [ ^ff0000"+.@total[.@i]+"^000000 ^0000FF pcs.^000000 ]";
                            }
                        }
                        else {
                            mes "no record found.";
                        }
                        next;
                    } while ( 1 );
                    break;
                case 2:
                    if ( !.only_one_itemid ) {
                        mes "Pick an item and give to me";
                        getinventorylist;
                        for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) {
                            if ( @inventorylist_bound[.@i] <= 0
                                && @inventorylist_expire[.@i] <= 0
                                && @inventorylist_equip[.@i] <= 0
                                && func_DisallowItem( @inventorylist_id[.@i] ) <= 0
                            ) {
                                .@menu$ = .@menu$ + getitemname( @inventorylist_id[.@i] ) + " ("+@inventorylist_amount[.@i]+" left)";
                                .@count++;
                            }
                            .@menu$ = .@menu$ + ":";
                        }
                        if ( .@count ) {
                            .@i = select( .@menu$ ) - 1;
                            .@itemid = @inventorylist_id[.@i];
                        }
                    }
                    else {
                        .@itemid = .only_one_itemid;
                        .@count++;
                    }
                    if ( .@itemid ) {
                        mes "How many "+getitemname( .@itemid )+" will be given to me?";
                        input .@amount,0,countitem( .@itemid );
                        if ( .@amount ) {
                            delitem .@itemid,.@amount;
                            npctalk "Thank you, "+strcharinfo(0)+" donated "+.@amount+"x "+getitemname( .@itemid )+" to me.";
                            query_sql( "INSERT INTO `e_npc_trade_item` ( `cid`,`name`,`nameid`,`amount` ) VALUES ( "+getcharid(0)+",'"+escape_sql( strcharinfo(0) )+"',"+.@itemid+","+.@amount+" ) ON DUPLICATE KEY UPDATE `amount` = `amount` + "+.@amount );
                            mes "Thank for your kindness.";
                        }
                    }
                    else {
                        mes "You dont have any item available to give to NPC.";
                    }
                    break;
                case 3:
                    mes "This action cant be undo, confirm your action?";
                    next;
                    if ( select( "Yes, confirm.","Cancel" ) == 1 ) {
                        query_sql( "TRUNCATE `e_npc_trade_item`" );
                    }
                    break;
            }
            close;
    }

    im having this error please help thank you

    "[SQL]: DB error - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'serverdatabased.e_npc_trade_item.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
    [Debug]: at script.cpp:17049 - SELECT `name`, `nameid`, SUM(`amount`) AS `total` FROM `e_npc_trade_item` WHERE 1 = 1 AND `nameid` = 61631 GROUP BY `cid`,`nameid` ORDER BY `total` DESC LIMIT 10
    [Debug]: Source (NPC): trade_item_main (invisible/not on a map)"

  5. 20 minutes ago, Emistry said:
    prontera,155,181,5	script	Sample	757,{
    	mes "How can I help you?";
    	if (select("I wish to change my name.", "Cancel") == 1) {
    		logmes "["+getcharid(3)+"/"+getcharid(0)+"] '"+strcharinfo(0)+"' has requested to change name.";
    		CharRename = 1;
    		mes "You may log out now, and select the name change feature.";
    	}
    	close;
    }

    you should see the log once you enabled logging.

    talk to npc and select change name, log off the character and rename it through the game client.

    thank you sir  @Emistry for this

  6. hello im having an error in false apperentice when the expanded classes are using it

    heres the item script:

     

    Quote

        Script: |
          if(Class == 4008){ skill "RK_DRAGONTRAINING",5; }else if(Class == 10 || Class == 4011 || Class == 4033){ skill "NC_MADOLICENCE",5; }else if(Class == 4012){ skill "RA_WUGMASTERY",1; skill "RA_WUGRIDER",3; }
        EquipScript: | 
          changebase roclass(eaclass()|EAJL_THIRD);  changebase roclass(eaclass()|EAJL_2_1);  
        UnEquipScript: |
          changebase Class;

    and heres the error:

    [Error]: status_set_viewdata (PC): No view data for class -1

  7. 1 hour ago, Wazaby said:

    What the hail! This is almost a decade old script.

     

    // Change this part.
    setarray .ScatArea[0],1,2,3; // SCATTER AREA.
    
    // To this
    setarray .ScatArea[0], 3, 5, 7; // Increase the values for a larger scattering area.

     

    the cell distance for the crystal example in 5 cell away from the crystal the players are safe?

  8. 1 minute ago, Rynbef said:

    Ok but my change works. So I will help u fix it after sleeping sir. I think I will rewrite it. So it's better to read and else.

     

    Rynbef~

    take a rest sir thnak you so much ill try to fixed the script while your sleeping hehe ty very much 

×
×
  • Create New...