Jump to content
Game-Labs Forum

Svartschegg

Ensign
  • Posts

    39
  • Joined

  • Last visited

Posts posted by Svartschegg

  1. The only ones that cannot be captured are capitals AFAIK, so you should be safe to do something along these lines:

     

    if(port.capital)
    {
      console.log('It cannot be captured.');
    }
    else
    {
      console.log('It can be captured '+ translateCaptureWindow(port.timeslot));
    }
    
    function translateCaptureWindow(baseWindow) {
      var padLeft = function(inpt) {
        var str = "" + inpt;
        var pad = "00";
        return pad.substring(0, pad.length - str.length) + str;
      };
      if(baseWindow == -1)
      {
        return 'anytime';
      }
      else {
        baseWindow = parseInt(baseWindow);
        return 'between '+ padLeft(baseWindow) +' and '+ padLeft(parseInt(baseWindow+2)) +' UTC';
      }
    }
    
  2. A couple of questions about the ConquestFlagTimeSlot attribute:

     

    * ConquestFlagTimeSlot == -1 when the port is not susceptible to capture (a capital or free town), though there are some ports that have -1 anyway.  Does -1 also indicate cases where the capturer forget to set the Conquest Time Slot?

     

    * How is the "can't be bought from N to M" time window (shown in game) determined?  Is there a rule?

     

    Thanks!

    ConquestFlagTimeSlot is -1 when the capture window is "anytime", otherwise it indicates the starting hour of a 2-hour window in the UTC timezone.

     

    "Cant be bought" <- Referring to conquest flags? They all have the same cant-be-bought window, which is basically the hours surrounding the server maintenance time window.

  3. Ah, right.

     

    You should be able to calculate that based on the attributes found in the item model. I'd imagine the properties BasePrice, SellPrice and SellPriceCoefficient are the properties that affect this.. In the old trading system I suppose PriceTierQuantity also would've mattered.

     

    If you don't feel like experimenting with figuring out the formula there's a simpler way, with the new trading system: Look at a port that consumes the product and does not have any on a contract - the price will be the same in any port that consumes that product. Save that value in an item model of your choice and reference it from your port model.

  4. If I am understanding it correctly a resource that has nothing in either the sell or buy. (there is none of that resource in the port). does not show up in the api. That means if the port is a resource sell that information is also lost to the api.

     

    An example. I know the port of Les Cayes is an iron ore sell, but that fact does not show up on the pvp2 api, because there is no iron ore in the port. If I make a tool which says, I have a resource, where can I sell it?, then I get incorrect information from the api, because some of the sell ports are not visible. Is it possible to do something about this?

    You can still see which resources a port consumes and produces, so as long as you go by that and not from what's on the market you should be fine.
  5. If you get multiple replies on an email it seems like they overwrite eachother.

     

    I sent an email to my clan an asked for opinions. I received a reply and just looked at the mail quickly but left it unread for later. When I came back an hour later the sender of the mail had changed in the list, so I clicked it, thinking it was probably typical UI bugs. Nope, it was a different reply from a different member. The first reply was thus... gone  :huh:

  6. I'm having money disappear too. I log all my trades and count my money whenever I empty my cargo, and my last route only gained me 80k, but should have been around 600k.

     

    When I arrived in Basse-Terre I clicked the Sell button and maximized the amount-input. It went to around 2371 or so. Got an error (as seen in the last screenshot). Tried again and it seemed to work.
     

    p7RCFKG.png

    ehQTJ8y.png

  7. klr-256x256.png

    Karibiens Lierade Riggar
     
    Our philosophy is simple; we play because it's fun. Our members like helping eachother

    as a team and have a variety of specialties, ranging from crafting and trading to PVP.
     
    We impose very few restrictions on our members; we ask that you respect

    established diplomacy and that you not be a jerk to other players.
     
    For fleet activities and socializing we have a Discord server. Discord is like Teamspeak,

    but cooler (e.g. there's a web client if you don't want to install stuff).
     
    If you are interested in joining, contact Svartschegg or SirVonBiginch.

  8. Ports ports attacks and leaderboards (if is set in the future) that arent in real time... :(

     

    At least the ports and ports attacks

    If you're on EU PVP3 you can query https://klr.nu/api/v2/port/{port_id} for a log of conquests. API docs: https://klr.nu/api/v2/docs#port

    Sample response for Scarborough:

    {
      "id":165,
      "nation_id":5,
      "name":"Scarborough",
      "capital":false,
      "regional":false,
      "shallow":false,
      "capturer_id":677,
      "timeslot":-1,
      "slug":"scarborough",
      "lat":"11.144213",
      "lng":"-60.775337",
      "updated_at":"2016-04-17 08:32:34",
      "nation":{
        "id":5,
        "name":"Verenigde Provinci\u00ebn",
        "max_bots":36,
        "updated_at":"2016-04-13 08:16:17"
      },
      "capturer":{
        "id":2,
        "name":"Svartschegg",
        "nation_id":7,
        "clan_id":24,
        "slug":"svartschegg",
        "created_at":"2016-01-18 00:00:00",
        "updated_at":"2016-04-12 13:41:52"
      },
      "production":[
        {
          "item_id":42,
          "quantity":4,
          "item":{
            "id":42,
            "name":"Silver",
            "type":"Resource",
            "updated_at":"2016-04-24 10:15:47"
          }
        }
      ],
      "consumption":[
        {
          "item_id":300,
          "quantity":48,
          "item":{
            "id":300,
            "name":"Live Oak Log",
            "type":"Resource",
            "updated_at":"2016-04-24 10:15:47"
          }
        }
      ],
      "shop":[
        {
          "item_id":27,
          "quantity":425,
          "buy_price":152,
          "sell_price":76,
          "contract_buy_quantity":-1,
          "contract_sell_quantity":-1,
          "updated_at":"2016-04-24 10:16:18",
          "item":{
            "id":27,
            "name":"Gold",
            "type":"Resource",
            "updated_at":"2016-04-24 10:15:47"
          }
        }
      ],
      "conquests":[ // 10 latest, regardless of contested (captured) or not
        {
          "id":1,
          "port_id":165,
          "nation_id"7,
          "player_id":2,
          "contested":true,
          "created_at":"2016-04-06 15:59:32",
          "updated_at":"2016-04-06 16:49:16",
          "nation":{
            "id":7,
            "name":"Sverige",
            "max_bots":36,
            "updated_at":"2016-04-05 05:53:50"
          },
          "player":{
            "id":2,
            "name":"Svartschegg",
            "nation_id":null,
            "clan_id":24,
            "slug":"svartschegg",
            "created_at":"2016-01-18 00:00:00",
            "updated_at":"2016-04-12 13:41:52"
          }
        }
      ]
    }
    Edit: API v2
  9. Yeah I know how to authenticate with Steam, but Naval Action has a secondary, undocumented, layer of authentication that checks for the Steam token and also allows users to login with a user/pass combination that bypasses Steam. It is that secondary step of authentication that I suppose returns the list of "Captains" in your account.

    To clarify with an example, my Steam username used to be "John", but my main captain in Naval Action is called "Svartschegg". I would like to retrieve "Svartschegg" from NA rather than "John" from Steam.

    • Like 1
  10. Indeed...

     

     

    Here is a quick PHP function to transform this javascript declaration into proper JSON

     

    returns null if something is wrong, or a PHP array containing datas from the "API"

    	function fetchEndpoint($endpointUrl)
    	{
    		$content = file_get_contents($endpointUrl);
    		if($content!==null && is_string($content))
    		{
    			$equalPos = strpos($content, '=');
    			if($equalPos!==false)
    				$content = trim(print_r(substr($content, $equalPos+1), true), ' ;');
    			$JSON = json_decode($content,1);
    			return $JSON;
    		}
    		return null;
    	}
    
     Nice!

     

    Since we're in a sharing-is-caring mood I implemented your function into an implicit Laravel controller :)

    Edit: Made it a Gist instead of pasting it all here. https://gist.github.com/Sleavely/945939aec743ebe1b54ddc89b861493b

  11. This is neither JSON nor JSONP. It is Javascript. Why they name the files .json is beyond me  :huh:

     

    • JSON is data in a javascript object notation format.
    • JSONP is data passed to a callback function which is named according to a request query parameter (commonly called "callback" for simplicity). In reality, JSONP is essentially Javascript that has been twisted  into a data-loading method to circumvent CORS.
    • This is a variable declaration in Javascript.
  12. Update on Sweden since there have been questions regarding the freshness of this thread.


     


    Sweden:


     


    France - NAP


    Danmark/Norway - NAP


    Pirates - Hostile


    US - ?


    Spain - ?


    Great Britain - War 


    The Verenigde Provinciën - War


     


    ​Major clans: [sEIC] (~100), [KSF] (20+), [sWE] (~20), [KLR] (~15)


  13. I would like to propose a new format for this thread; since a lot of the discussions up until now has been centered on whether a clan is allowed to speak for a nation, maybe it would be more suitable to have something like:

     

    Country

     

    [CALL] - Long Guild Name

    France: War

    USA: Friends with benefits

    Others: n/a

     

    [sIGN] - Another Guild Name

    France: War

    Danmark-Norge: NAP

    Sverige: NAP

    Others: n/a

     

    Other Country

     

    [LOL] - Lots of Loading

    Great Brittain: War

    Others: n/a

     

  14. When exactly did the Swedes decide that they wanted to attack the British? It would be nice if somebody from the Swedish faction could comment on this. It had become obvious what their intention is for this weekend, but like you mentioned it seems that their first intention was to target the French, who are now getting ports gifted by the swedes. How did this shift in policy happen on their side?

     

    As a swede I see no reason for us to share any information concerning our diplomatic policies or strategic undertakings in a public forum.  :huh:

    • Like 2
×
×
  • Create New...