Jump to content

Lemongrass

Developer
  • Posts

    545
  • Joined

  • Last visited

  • Days Won

    15

Posts posted by Lemongrass

  1. Well we have those functions to map the client ids(JOB_*) to the server ids(MAPID_*), but they defined a new table which is ONLY for booking(because of the additional roles I guess).

     

    I dont really know whether it would make sense to add this lookup tables for their additional map and job ids for booking, because they could change with each updates, which makes it kind of hard maintain for us.
    It would cause us to have to monitor yet another client file for changes and release the changes accordingly.

     

    Additionally I personally just found the map table in the luas, I could not find the job table in there when I looked for it quickly.

    Are you sure it's also there?

  2. For me this worked, but I only tested a few cases:

     

    clif_displaymessage(sd->fd,job_name(job-4));

     

    Edit:

    Since this is stored as it is sent from the client and the requests are also processed like that, there currently is no translation table on serverside.
    Therefore you might need an array like this for jobs and another one for the maps:

    int jobs[] = {
            // Roles
            JOB_NOVICE, // think of something here
            JOB_NOVICE,
            JOB_NOVICE,
            JOB_NOVICE,
            // 1st
            JOB_SWORDMAN,
            JOB_MAGE,
            JOB_ARCHER,
            JOB_ACOLYTE,
            JOB_MERCHANT,
            JOB_THIEF,
            // 2nd
            JOB_KNIGHT,
            JOB_PRIEST,
            JOB_WIZARD,
            JOB_BLACKSMITH,
            JOB_HUNTER,
            JOB_ASSASSIN,
            JOB_CRUSADER,
            JOB_MONK,
            JOB_SAGE,
            JOB_ROGUE,
            JOB_ALCHEMIST,
            JOB_BARD,
            JOB_DANCER,
            // 3-1
            JOB_RUNE_KNIGHT,
            JOB_WARLOCK,
            JOB_RANGER,
            JOB_ARCH_BISHOP,
            JOB_MECHANIC,
            JOB_GUILLOTINE_CROSS,
            // 3-2
            JOB_ROYAL_GUARD,
            JOB_SORCERER,
            JOB_MINSTREL,
            JOB_WANDERER,
            JOB_SURA,
            JOB_GENETIC,
            JOB_SHADOW_CHASER,
            // 1st High
            JOB_SWORDMAN_HIGH,
            JOB_MAGE_HIGH,
            JOB_ARCHER_HIGH,
            JOB_ACOLYTE_HIGH,
            JOB_MERCHANT_HIGH,
            JOB_THIEF_HIGH,
            // 2nd High
            JOB_LORD_KNIGHT,
            JOB_HIGH_PRIEST,
            JOB_HIGH_WIZARD,
            JOB_WHITESMITH,
            JOB_SNIPER,
            JOB_ASSASSIN_CROSS,
            JOB_PALADIN,
            JOB_CHAMPION,
            JOB_PROFESSOR,
            JOB_STALKER,
            JOB_CREATOR,
            JOB_CLOWN,
            JOB_GYPSY,
            // Other
            JOB_WEDDING,
            JOB_NOVICE_HIGH,
            JOB_SUPER_NOVICE,
            JOB_GUNSLINGER,
            JOB_NINJA,
            JOB_TAEKWON,
            JOB_STAR_GLADIATOR,
            JOB_SOUL_LINKER,
        };
    

    Then you can show the jobname with:

    clif_displaymessage(sd->fd,job_name(jobs[job[i]-1]));
    

    But you need to define the roles with hardcoded strings...

     

    I know that this is not the answer you wanted to hear, but it is like that at the moment and that might also be the reason why there is no custom option for such a feature in rAthena.

    • Upvote 1
  3. Honestly you could solve all your problems if you merge those two sql selects and additionally increase the npcs performance too.

     

    new_1-1,51,109,5    script    BG Ranker    55,{
    
        mes .name$;
        mes "I can give you the Battlegrounds Raking Information.";
        mes "Choose what do you want to know.";
        next;
        
        set [email protected]ction, select( implode( .menu$, ":" ) ) - 1;
        
        query_sql "select c.name, " + .tables$[[email protected]] + " from `char_bg` cb inner join `char` c on c.char_id = cb.char_id order by " + .tables$[[email protected]] + " desc limit " + .maxsize, [email protected]_name$, [email protected];
        
        mes .name$;
        mes .menu$[[email protected]];
        for ( [email protected] = 0; [email protected] < .maxsize; [email protected]++ )
            mes "["+ ([email protected]+1) +"] "+ ( ([email protected]_name$) ? [email protected]_name$ : "^FF0000None^000000" );
        close;
        
        OnInit:
            set .name$,        "[^0000FFBattlegrounds Ranker^000000]";
            
            setarray .menu$[0],        "Top Game Win",
                                    "Top Game Tie",
                                    "Top Game Lost",
                                    "Top Leader Game Win",
                                    "Top Leader Game Tie",
                                    "Top Leader Game Lost";
            
            setarray .tables$[0],    "win",
                                    "tie",
                                    "lost",
                                    "leader_win",
                                    "leader_tie",
                                    "leader_lost";
                                    
            set .maxsize,    5;        //Amount of player that will appear
            end;
            
    }
    

     

    I did not test it, but you should get the idea behind it. ;)

    • Upvote 1
  4. Für diese Berechnungen kann ich dir nur empfehlen, dir Datei "db/re/level_penalty.txt" durchzulesen.

    Alle Einträge beginnend mit 1 sind die, die EXP betreffen.

     

    Bei normalen Monstern geht das von 16 Level unter dem Monster bis 31 Level über dem Monster.

    Dabei geht man bei Renewal davon aus, dass es nur realistisch ist, dass du auch maximal Monster killen kannst, die 15 Level über dir sind, ohne zu schummeln. Deshalb gibts, wenn du noch weiter drunter bist nur 40% der EXP.

     

    Du startest bei 15 Level unter dem Monster mit 115% und erreichst bei 10 Level unter dem Monster den Höchstpunkt von 140%.

    Danach sinkt die Rate immer weiter bis zu 10% die du erreichst, wenn du 31 Level über dem Monster bist.

    Bosse und Guardian Monster sind davon übrigens ausgenommen.

     

    Hoffe ich konnte dir weiterhelfen!

    • Upvote 1
  5. Why don't you increase it and create a pull request?

    I do not think anyone would mind having it increased seeing jobs being added one after another(recent patch with races).

  6. Hey guys,

     

    I am looking for a custom map that was released either on eAthena or here on rAthena.

     

    It looked a lot like the map "trunk of yggdrasil"(yggdrasil01). The same models were used as far as I remember.
    But it was a more open map not a real dungeon. My memories of it are blurred so I can not provide any more details. :(

     

    I thought the map was made by chemicalcrush, but I am not to sure about that anymore.

    Would be nice if you could help me out. :)

     

    Thanks in advance.

    Lemon

  7. I think the status thing is working as intended. At least its like that on AEGIS(fRO).

    If you switch the zone server you lose your buffs. I think there we just a few exceptions like the EXP boost for example.

  8. <sarcasm>Da fragst du am besten bei der NSA nach.</sarcasm>

     

    Ich kenn nur die @-Commands für Party und Gilde. @partyspy und @guildspy
    Natürlich kannst du wenn du dein Logging dementsprechend einstellst auch eine Auswertung via MySQL machen.

  9.  

    Purchasing from  the control panel is not a good idea, because the shop ingame would not be refreshed on purchase.

    Hi~lemo,

     

    @autotrade command should check and update Character's sex

     

    becoz sex field default value is 'M'

     

     

     

    MySQL user privilege

    You need the MySQL user that access your database has permission to does Truncate (Drop and Create) table.

    or this is will happens, and other errors are incoming. /hmm

    ffz3.png

     

    What? why must truncate? I never gives those permission for my MySQL user for 'safety' reason. /heh

     

    : DB error - Duplicate entry '1' for key 'PRIMARY'
    [Debug]: at ..\src\map\vending.c:457 - INSERT INTO `vendings`(`id`,`account_id`,
    `char_id`,`sex`,`map`,`x`,`y`,`title`,`autotrade`) VALUES( 1, 2072856, 157247, '
    M', 'prontera', 153, 90, '[Zeny] ComeBuy', 0 );
     
    is it my problem?

     

     

    Fixed those two issues in 5988c7a.

     

    [Edit:]

     

    Also fixed allocation and other minor issues in 139bc1c.

    • Upvote 1
  10. Dazu gibt es viele verschiedene Ansätze.

     

    Die die mir am geläufigsten sind, sind eingeschränkte Views auf die SQL Datenbank oder das zur Verfügung stellen von Datensätzen via XML.

  11. Dir fehlt die Spalte "bound" in allen Itemtabellen. Das Feature wurde mit r17351 eingeführt und du musst das dazugehörige SQL Upgrade File auf deinem MySQL Server ausführen.

     

    Zu finden ist diese Datei unter /sql-files/upgrades/upgrade_svn17351.sql:

    ALTER TABLE `inventory` ADD COLUMN `bound` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `favorite`;
    ALTER TABLE `cart_inventory` ADD COLUMN `bound` TINYINT(3) UNSIGNED NOT NULL default '0' AFTER `expire_time`;
    ALTER TABLE `storage` ADD COLUMN `bound` TINYINT(3) UNSIGNED NOT NULL default '0' AFTER `expire_time`;
    ALTER TABLE `guild_storage` ADD COLUMN `bound` TINYINT(3) UNSIGNED NOT NULL default '0' AFTER `expire_time`;
    

     

    Hoffe das hat geholfen.

    • Upvote 1
×
×
  • Create New...

Important Information

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