Jump to content

KeyWorld

Members
  • Posts

    379
  • Joined

  • Last visited

  • Days Won

    11

Posts posted by KeyWorld

  1. March 2014 news

    • Add support for 2013 december packets.
    • Massive bugs fixes and optimizations (thanks for feedback).
    • Remove some memory leaks
    • Add GZIP compression in remote client (and http cache).
    • Add visual casting spells to skills.
    • Add support for high jump packet (sliding entities) and body relocation.
    • Now able to attack players by pressing SHIFT keyu (or /noshift /ns).
    • Add skipServerList config to skip server list if there is only one element in the list.
    • Add skipIntro config to skip the intro window.
    • Add autoLogin config (I let you imagine - facebook api ?).
    • Now displaying GM sprites.
    • Add support for text color (what player are saying + Admin text - yellow).
    • Introduce SI_CLAIRVOYANCE (maya purple card).
    • The character can now move to pick an item on the ground.
    • Add shadow table DB (to display shadow size).
    • Remove sprite 111 and 139 from scene.
    • Introduce QPet system.

     

    Screenshots of the Month


    Skill Spell :
    magiccast.jpg
    targetlock.jpg
     
    Pet features:
    petinfo.jpg
    slot-machine.jpg
     
    Maya purple card:
    clairvoyance.jpg


     
    Note: the "Slot Machine" in the Pet Capture is different than the official one, this one use all the animation frames stored in the sprite/action and looks (in my opinion) really better.

    • Upvote 2
  2. Hi curiosity :)

     

    It's fast and smooth because of you ! You really helped me removing the gl.readpixel with your altitude intersection script.

    Even if the precision isn't perfect, it's enough and significantly raised the fps :)

     

    At the time being, it's a lot of pleasures since I fixed a lot of bugs and it seems to be stable enough to have fun and spam monsters, but it's also more research of hardcoded informations (example the attack animation for each class based on the weapon used), and lot of time doing boring UI.

     

    I hope the 3D effects will be done in part by the community, if this project is open source it's because I know I can't finish it alone.

    Fortunately the client doesn't seems to have difficult effects, the more difficult one (like the warp) are using cylinder object generated in the fly. But there are a lot of effects... :(

     

    Thank you about the informations, in the past I used 30 degrees but it was really too much, I'll check.

  3. @scriptor
    Depend, if you are not setting it up, it will fallback to the use of JAVA.
    So it will mean your users will need JAVA applet installed on their computers, and for security reason, an evil popup will spam informing your user each time that the app isn't securized (you'll need to pay Oracle to change the message on this popup).
     

    Project is Open Source

    I just updated the first post, if you miss it the project is open source since October and got massive updates.
    As everything is explained in the first post I will just write about the news you miss.


    October
    • Items are now falling properly in map
    • Correct some bugs with actions/animations.
    • Implemented character status window (not available yet, waiting for equipment window).
    • Added NPC cutin
    • Added inventory window
    • Added Item information (right click on an item)
    • Added ground shadow to sprites
    • Added picking priority
    • Added status icons
    • Added npc mark to minimap
    • Added components preferences to save their last x, y position in screen.

    inventory.jpg


     

    November

    • Add equipment window
    • Massive fix
    • Introduce support for Chrome App (and kill Java applet)
    • Add progressbar packet
    • Add BGM/sound packets
    • Add attack combo
    • Add new Intro window
    • Add weapon sounds


    intro.jpg
    equipment.jpg
    combo.jpg


     

    December

    • Re-introduce ModelViewer in GRFViewer.
    • Introduce MapViewer in GRFViewer.
    • Add some tests (src/Tests) to load all files from your GRFs and detect possible errors with loaders.
    • Fix some memory leak.
    • Fix some CSS problems on Firefox.
    • Big rendering optimization (remove the use of gl.readPixel increased the performance).
    • Adding shop/afk to the game (not clickable for now).


    shop.jpg


     
     
    January

    • Save files (and full client) features in Chrome.
    • New Async MapLoader and File fetcher (really faster).
    • Add Storage UI
    • Hello WebSocket Proxy (and Kill java !)
    • Add missing 2013 packets
    • Some basics support for party/guild packets (dipbottom / viewpoint in minimap, entity's life)


    saving-hover.jpg
    storage.jpg




    February

    chatroomcreate.jpg

    chatroom.jpg

    sound.jpg

    quality.jpg

    • Upvote 1
  4. I know it's not negative :P

    Just as an example : some files can be decoded in the fly while decoding it partially, it's mean the decoded file will never be written to memory, just the result in GPU (mesh, texture). Coupled with a obfuscate decoder it would be really difficult to decode.

  5. but the only project who is still in lightly active development is robrowser. and this one doesnt seems to be safe for protected files. :-(

     

    Sad but true...

     

    Don't worry there will have plugins to protect files, but don't expect it to be in the main repo. An open source encryption algorithm and its key is the same as no encryption at all.

     

    About this project, it's too bad, hope to see it open one day :)

  6. I tried to create a controller "character_id.php" to be able to use charnames AND charids, but i have problems with index.php.

     

    I inserted:

    $routes['/character_id/(\d+)'] = 'Character_ID';

    The debugmode tell me that the route can not be found. Do i have to add some more information somewhere ?

     

    Regards

     

    Nets ^^

     

    What did you do ?

    1) Add the route in index.php (ok).

    2) Duplicate controllers/character.php and rename it to character_id.php

    3) Replace the class name (should be Character_ID_Controller).

    4) Replace the query (WHERE char.char_id = ?)

     

    And that's all.

  7. @KeyWorld

     

    $routes['/update/(hats|mobs|robes)'] = 'Update'; // Uncomment this line if you want to perform updates by updating lua files.

     

    i uncomment this and run the update.php but nothing happens  :o

     

    You have to run :

    /update/hats or

    /update/mobs or

    /update/robes

     

    And of course you can add items manually :P

  8. @Hirasu

    I don't think I will do other npc scripts for the community : I am already busy with my projects and to be honest I don't have any fun to write athena scripts now, too limited and not elegant at all :(

     

    About ROChargenPHP you can add custom files in db folder, if it's about hats, take a look at db/hats.php.

    There is a route + controller you can set on in index.php to update files from your lua files but since it parse lua content wth regex it can generate some errors.

    • Upvote 1
  9. Hi,

    Just a suggestion about freeloop, would be great to add the argument as optional to get back the current value of freeloop.

    BUILDIN_FUNC(freeloop) {
    
    	if( script_hasdata(st,2) ) {
    		st->freeloop = !!script_getnum(st,2);
    	}
    
    	script_pushint(st, st->freeloop);
    	return SCRIPT_CMD_SUCCESS;
    }
    
    BUILDIN_DEF(freeloop,"?"),
    

    The idea here is to return the value of freeloop without modifying it.

    Why exactly ? Just imagine an intensive function you want to build but return to normal state after :

    function	script	intensiveFunction	{
    	// Save the current value of freeloop
    	set .@state, freeloop();
    
    	freeloop(1);
    
    	//dothis;
    	//dothat;
    
    	//get back to the original state
    	freeloop(.@state);
    
    	return;
    }
    • Upvote 1
  10. Can be interesting but I see some problems with the code.

    First, maybe you should return SCRIPT_CMD_FAILURE instead of 1 (value subject to change ?)

    Secondly the command does not return any value if there is no elements in the array. Should at least return the default not found value.

    Third, I think (personal through) the default value if not found should be -1 instead of 128.

  11. Suggestion:

     /character/CoolNick123/<Action>/<Direction>

     

    Accepted, thanks for the suggestion.

    Will be add soon as optional parameters (the old one will still work).

     

    Edit: Done ! You can modify the URL, action must be a number, and direction must be in range 0-7.

  12. Cool. Using your release I made this: ( and now working with equip items )

    Nice, keep it up :P

    @all

    I did another update to fix some problems with doridori and body animation.

    I took advantage to put a new feature: Add a generator, to create your own characters, can be used in a char simulator for example.

    Just change the url and the character will change: /generate/body=M-0-0/hair=0-0-0/hats=0-0-0/equip=0-0-0/option=0/actdir=0-0-0

    Info: /generate/body=<sex>-<job>-<clothes color>/hair=<hair style>-<hair color>-<doridori>/hats=<hat top>-<hat middle>-<hat bottom>/equip=<weapon>-<shield>-<robe>/option=<option>/actdir=<direction>-<action>-<animation>

    Will be really good if you are planning to do a character simulator.

    Have fun~

    • Upvote 1
  13. Something like this I presume :

    query_sql("SELECT `npc1`, `npc2`, `npc3`, `npc4`, `npc5` FROM `quest_db` WHERE `char_id` = " + getcharid(0), .@npc1, .@npc2, .@npc3, .@npc4, .@npc5);
    
    for( set .@i,1; .@i<=5; set .@i, .@i + 1 ) {
        set .@var, getd(".@npc" + .@i);
        if( .@var != 500 && .@var != 100 ) {
            set .@fail, 1;
            break;
        }
    }
    
    if( .@fail ) {
        // not ok
    }
    else {
        // ok
    }
    

     

  14. nickname in CP1251, in russian symbol, Need help in Searching route "/character/Лёшик".

    To be honest I don't have an idea how to support your charset (I can't do real test). You can at least use char_id instead of the name ?

     

    Open all files in controllers and search for:

    WHERE char.name = ?

    Replace with:

    WHERE char.char_id = ?

     

    And in index.php, replace:

    $routes['/avatar/(.*)'] = 'Avatar';
    $routes['/character/(.*)'] = 'Character';
    $routes['/characterhead/(.*)'] = 'CharacterHead';
    $routes['/monster/(\d+)'] = 'Monster';
    $routes['/signature/(.*)'] = 'Signature';

    With:

    $routes['/avatar/(\d+)'] = 'Avatar';
    $routes['/character/(\d+)'] = 'Character';
    $routes['/characterhead/(\d+)'] = 'CharacterHead';
    $routes['/monster/(\d+)'] = 'Monster';
    $routes['/signature/(\d+)'] = 'Signature';

     

    ---------------------------------------

    In the lastest version:

    • Correct 3rd job file name.
    • Robes are now fully working (it was missing the inherent job list).
    • Background color can be change in RORender::$background_color.
    • Add htaccess to avoid access to client directory (if you have content you don't want to share...)

     

    As always if you have suggestion or bugs, come on :)

×
×
  • Create New...