Freelancer Community Network
Reminder: Internet Explorer 6 or below are NOT supported.
HomeHome
ForumForum
WikiWiki
DownloadsDownloads
ForgeForge
Multiplayer Connection Tutorial
Collapse/Expand Random Image
Collapse/Expand Login
Username:

Password:

Remember me



Lost Password?

Register now!
Collapse/Expand Chat
Collapse/Expand Who's Online
60 user(s) are online (24 user(s) are browsing Forum)

Members: 0
Guests: 60

more...
Collapse/Expand Donations
Monthly costs: -30€
Income (ads): +5€
Donations (last month): +165€

Current balance: 105€
(last updated 02/2021)

Please make a donation if you want to help keeping The-Starport online:

Thanks!
Collapse/Expand Links
Collapse/Expand Advertisement
There are currently 73 users playing Freelancer on 40 servers.
April. 19, 2021

Browsing this Thread:   1 Anonymous Users



 Bottom   Previous Topic   Next Topic  Register To Post

(1) 2 »


Higher rank missions
Just can't stay away
Joined:
2008/3/11 16:11
From Belarus, Minsk
Group:
Registered Users
Senior Members
Posts: 384
Offline
Is it possible to make higher rank missions?
For example against d22 and d 25?
Normally max level of the ships in missions is d19. Is it hardcoded?

I hoped it was easy(though suspected it wouldn't work), so I simply tried this:

npcships.ini

[NPCShipArch]
nickname = fc_c_co_fighter_d1
loadout = fc_c_co_fighter_loadout01
level = d1
ship_archetype = co_fighter
pilot = pilot_corsair_med
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d1

[NPCShipArch]
nickname = fc_c_co_fighter_d2
loadout = fc_c_co_fighter_loadout01
level = d2
ship_archetype = co_fighter
pilot = pilot_corsair_med
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d2

[NPCShipArch]
nickname = fc_c_co_fighter_d3
loadout = fc_c_co_fighter_loadout01
level = d3
ship_archetype = co_fighter
pilot = pilot_corsair_med
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d3

[NPCShipArch]
nickname = fc_c_co_fighter_d4
loadout = fc_c_co_fighter_loadout01
level = d4
ship_archetype = co_fighter
pilot = pilot_corsair_med
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d4

[NPCShipArch]
nickname = fc_c_co_fighter_d5
loadout = fc_c_co_fighter_loadout01
level = d5
ship_archetype = co_fighter
pilot = pilot_corsair_med
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d5

[NPCShipArch]
nickname = fc_c_co_fighter_d6
loadout = fc_c_co_fighter_loadout01
level = d6
ship_archetype = co_fighter
pilot = pilot_corsair_med
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d6

[NPCShipArch]
nickname = fc_c_co_fighter_d7
loadout = fc_c_co_fighter_loadout01
level = d7
ship_archetype = co_fighter
pilot = pilot_corsair_hard
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d7

[NPCShipArch]
nickname = fc_c_co_fighter_d8
loadout = fc_c_co_fighter_loadout01
level = d8
ship_archetype = co_fighter
pilot = pilot_corsair_ace
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d8

[NPCShipArch]
nickname = fc_c_co_fighter_d9
loadout = fc_c_co_fighter_loadout02
level = d9
ship_archetype = co_fighter
pilot = pilot_corsair_hard
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d9

[NPCShipArch]
nickname = fc_c_co_fighter_d10
loadout = fc_c_co_fighter_loadout02
level = d10
ship_archetype = co_fighter
pilot = pilot_corsair_ace
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d10

[NPCShipArch]
nickname = fc_c_co_elite_d11
loadout = fc_c_co_elite_loadout01
level = d11
ship_archetype = co_elite
pilot = pilot_corsair_med
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d11

[NPCShipArch]
nickname = fc_c_co_elite_d12
loadout = fc_c_co_elite_loadout01
level = d12
ship_archetype = co_elite
pilot = pilot_corsair_hard
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d12

[NPCShipArch]
nickname = fc_c_co_elite_d13
loadout = fc_c_co_elite_loadout01
level = d13
ship_archetype = co_elite
pilot = pilot_corsair_ace
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d13

[NPCShipArch]
nickname = fc_c_co_elite_d14
loadout = fc_c_co_elite_loadout02
level = d14
ship_archetype = co_elite
pilot = pilot_corsair_hard
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d14

[NPCShipArch]
nickname = fc_c_co_elite_d15
loadout = fc_c_co_elite_loadout02
level = d15
ship_archetype = co_elite
pilot = pilot_corsair_ace
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d15

[NPCShipArch]
nickname = fc_c_co_elite2_d16
loadout = fc_c_co_elite2_loadout01
level = d16
ship_archetype = co_elite2
pilot = pilot_corsair_easy
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d16

[NPCShipArch]
nickname = fc_c_co_elite2_d17
loadout = fc_c_co_elite2_loadout01
level = d17
ship_archetype = co_elite2
pilot = pilot_corsair_med
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d17

[NPCShipArch]
nickname = fc_c_co_elite2_d18
loadout = fc_c_co_elite2_loadout01
level = d18
ship_archetype = co_elite2
pilot = pilot_corsair_hard
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d18

[NPCShipArch]
nickname = fc_c_co_elite2_d19
loadout = fc_c_co_elite2_loadout01
level = d19
ship_archetype = co_elite2
pilot = pilot_corsair_ace
state_graph = FIGHTER ;FIGHTER
npc_class = unlawful, class_fighter, d19

[NPCShipArch]
nickname = fc_c_co_elite2_d20
loadout = fc_c_co_elite2_loadout01
level = d20
ship_archetype = co_elite2
pilot = pilot_corsair_ace
state_graph = FIGHTER
npc_class = unlawful, class_fighter, d20

[NPCShipArch]
nickname = fc_c_co_elite2_d21
loadout = fc_c_co_elite2_loadout01
level = d21
ship_archetype = co_elite2
pilot = pilot_corsair_ace
state_graph = FIGHTER
npc_class = unlawful, class_fighter, d21

[NPCShipArch]
nickname = fc_c_co_elite2_d22
loadout = fc_c_co_elite2_loadout01
level = d22
ship_archetype = co_elite2
pilot = pilot_corsair_ace
state_graph = FIGHTER
npc_class = unlawful, class_fighter, d22

[NPCShipArch]
nickname = fc_c_co_elite2_d23
loadout = fc_c_co_elite2_loadout01
level = d23
ship_archetype = co_elite2
pilot = pilot_corsair_ace
state_graph = FIGHTER
npc_class = unlawful, class_fighter, d23

[NPCShipArch]
nickname = fc_c_co_elite2_d24
loadout = fc_c_co_elite2_loadout01
level = d24
ship_archetype = co_elite2
pilot = pilot_corsair_ace
state_graph = FIGHTER
npc_class = unlawful, class_fighter, d24

[NPCShipArch]
nickname = fc_c_co_elite2_d25
loadout = fc_c_co_elite2_loadout01
level = d25
ship_archetype = co_elite2
pilot = pilot_corsair_ace
state_graph = FIGHTER
npc_class = unlawful, class_fighter, d25

Diff2Money.ini(tried without last to lines also):

[Diff2Money]
Diff2Money = 0, 3600
Diff2Money = 0.082100, 4400
Diff2Money = 0.112380, 5310
Diff2Money = 0.205130, 6438
Diff2Money = 0.351000, 7838
Diff2Money = 0.480490, 9584
Diff2Money = 0.657740, 11774
Diff2Money = 0.900380, 14528
Diff2Money = 1.232530, 18002
Diff2Money = 1.687200, 22402
Diff2Money = 2.309610, 27988
Diff2Money = 3.161630, 35102
Diff2Money = 4.327960, 44186
Diff2Money = 5.924540, 55808
Diff2Money = 8.110100, 70712
Diff2Money = 11.101920, 89856
Diff2Money = 15.197410, 114492
Diff2Money = 20.803740, 146236
Diff2Money = 28.478239, 187194
Diff2Money = 38.983860, 240102
Diff2Money = 53.365002, 292384
Diff2Money = 73.051361, 380100
Diff2Money = 100.000000, 494130
Diff2Money = 136,986301, 642369
Diff2Money = 187,005000, 835079

npcranktodiff.ini(tried different variants, no luck):

[RankAndFormationSizeToDifficulty]
NpcRank = 1, 0.009850, 0.035690, 0.077540, 0.135390, 0.209230, 0.299080, 0.404930, 0.526770
NpcRank = 2, 0.013480, 0.048860, 0.106140, 0.185330, 0.286420, 0.409410, 0.554300, 0.721100
NpcRank = 3, 0.018450, 0.066880, 0.145300, 0.253700, 0.392080, 0.560440, 0.758790, 0.987120
NpcRank = 4, 0.025260, 0.091560, 0.198900, 0.347290, 0.536720, 0.767190, 1.038700, 1.351260
NpcRank = 5, 0.034570, 0.125330, 0.272280, 0.475400, 0.734710, 1.050210, 1.421880, 1.849740
NpcRank = 6, 0.047330, 0.171570, 0.372720, 0.650780, 1.005750, 1.437630, 1.946410, 2.532110
NpcRank = 7, 0.064790, 0.234860, 0.510210, 0.890850, 1.376770, 1.967970, 2.664450, 3.466210
NpcRank = 8, 0.088690, 0.321500, 0.698430, 1.219480, 1.884660, 2.693950, 3.647360, 4.744900
NpcRank = 9, 0.121410, 0.440100, 0.956080, 1.669350, 2.579900, 3.687750, 4.992870, 6.495290
NpcRank = 10, 0.166190, 0.602450, 1.308780, 2.285170, 3.531630, 5.048160, 6.834750, 8.891400
NpcRank = 11, 0.227500, 0.824700, 1.791590, 3.128170, 4.834450, 6.910420, 9.356080, 12.171400
NpcRank = 12, 0.311430, 1.128930, 2.452510, 4.282160, 6.617880, 9.459670, 12.807500, 16.661400
NpcRank = 13, 0.426320, 1.545400, 3.357240, 5.861840, 9.059210, 12.949300, 17.532200, 22.807899
NpcRank = 14, 0.583580, 2.115490, 4.595720, 8.024280, 12.401100, 17.726299, 23.999800, 31.221701
NpcRank = 15, 0.798870, 2.895900, 6.291090, 10.984400, 16.975901, 24.265600, 32.853401, 42.739399
NpcRank = 16, 1.093570, 3.964190, 8.611870, 15.036500, 23.238300, 33.217201, 44.973000, 58.506001
NpcRank = 17, 1.496990, 5.426580, 11.788700, 20.583500, 31.811001, 45.471001, 61.563599, 80.088799
NpcRank = 18, 2.049230, 7.428450, 16.137600, 28.176800, 43.546001, 62.245201, 84.274399, 109.633542
NpcRank = 19, 2.805190, 10.168800, 22.090799, 38.571301, 59.610199, 85.207497, 115.363281, 150.077428
NpcRank = 20, 3.840020, 13.920053, 30.240058, 52.800190, 81.600303, 116.640403, 157.920606, 205.440745
NpcRank = 21, 5.256610, 19.055184, 41.395667, 72.278271, 111.702795, 159.669249, 216.177790, 281.228191
NpcRank = 22, 7.195770, 26.084628, 56.666501, 98.941678, 152.909883, 218.571130, 295.925635, 384.973086
NpcRank = 23, 9.850290, 35.707248, 77.570776, 135.441269, 209.318348, 299.202033, 405.092619, 526.989680
NpcRank = 24, 13.484000, 48.879654, 106.186640, 185.405561, 286.535899, 409.577681, 554.531311, 721.396205
NpcRank = 25, 18.458300, 66.911361, 145.358898, 253.801683, 392.239009, 560.670912, 759.097945, 987.519301

mbases.ini:

[BaseFaction]
faction = br_n_grp
weight = 67
offers_missions = true
mission_type = DestroyMission, 53.365005, 100, 60
npc = br0303_bnavy_001_f
npc = br0303_bnavy_002_m

[BaseFaction]
faction = co_be_grp
weight = 11
npc = br0303_bowex_001_m

[BaseFaction]
faction = gd_bh_grp
weight = 22
offers_missions = true
mission_type = DestroyMission, 53.365005, 100, 40
npc = br0303_bounty_001_f
npc = br0303_bounty_002_m

factionprop.ini:
...
npc_ship = fc_c_co_fighter_d1
npc_ship = fc_c_co_fighter_d2
npc_ship = fc_c_co_fighter_d3
npc_ship = fc_c_co_fighter_d4
npc_ship = fc_c_co_fighter_d5
npc_ship = fc_c_co_fighter_d6
npc_ship = fc_c_co_fighter_d7
npc_ship = fc_c_co_fighter_d8
npc_ship = fc_c_co_fighter_d9
npc_ship = fc_c_co_fighter_d10
npc_ship = fc_c_co_elite_d11
npc_ship = fc_c_co_elite_d12
npc_ship = fc_c_co_elite_d13
npc_ship = fc_c_co_elite_d14
npc_ship = fc_c_co_elite_d15
npc_ship = fc_c_co_elite2_d16
npc_ship = fc_c_co_elite2_d17
npc_ship = fc_c_co_elite2_d18
npc_ship = fc_c_co_elite2_d19
npc_ship = fc_c_co_elite2_d20
npc_ship = fc_c_co_elite2_d21
npc_ship = fc_c_co_elite2_d22
npc_ship = fc_c_co_elite2_d23
npc_ship = fc_c_co_elite2_d24
npc_ship = fc_c_co_elite2_d25
...

The Base(Battleship Norfolk) still gives missions, but the highest npc is d19

What's wrong ???

Posted on: 2010/2/20 7:49
Top
Re: Higher rank missions
Just can't stay away
Joined:
2008/3/11 16:11
From Belarus, Minsk
Group:
Registered Users
Senior Members
Posts: 384
Offline
Oh, seems I missed something while testing? it's working.

but still d23 is max level...

so it sieems like Diff2Money = 100.000000, 494130 is the highest possible?..

values over it are ignored?


Posted on: 2010/2/20 21:02
Top
Re: Higher rank missions
Home away from home
Joined:
2008/2/17 23:14
Group:
Registered Users
FLServer Admins
Senior Members
Posts: 518
Offline
It works up to D25 if your npcranktodiff file is set up properly.

I've not tried above 100 on the diff2money. I'm pretty sure it don't work tho.

Posted on: 2010/2/20 22:34
Open in new window
Top
Re: Higher rank missions
Just can't stay away
Joined:
2008/3/11 16:11
From Belarus, Minsk
Group:
Registered Users
Senior Members
Posts: 384
Offline
Yeah, it works, still got some questions.
Your are right so far, seems like not working over 100

Posted on: 2010/2/20 23:12
Top
Re: Higher rank missions
Home away from home
Joined:
2008/6/13 22:44
Group:
Registered Users
FLServer Admins
Senior Members
Posts: 543
Offline
Just a quick question about the diff2money.ini.

I was always wondering wht the first number stands for.
I know that the first number is the "start"percentage for the current level and the second number the payment at this percentage.

Is it that or is there more to know about the first nuber?

[Diff2Money]
Diff2Money = 0, 3600
Diff2Money = 0.082100, 4400
Diff2Money = 0.112380, 5310
Diff2Money = 0.205130, 6438
Diff2Money = 0.351000, 7838
Diff2Money = 0.480490, 9584
Diff2Money = 0.657740, 11774
Diff2Money = 0.900380, 14528
Diff2Money = 1.232530, 18002
Diff2Money = 1.687200, 22402
Diff2Money = 2.309610, 27988
Diff2Money = 3.161630, 35102
Diff2Money = 4.327960, 44186
Diff2Money = 5.924540, 55808
Diff2Money = 8.110100, 70712
Diff2Money = 11.101920, 89856
Diff2Money = 15.197410, 114492
Diff2Money = 20.803740, 146236
Diff2Money = 28.478239, 187194
Diff2Money = 38.983860, 240102
Diff2Money = 53.365002, 292384
Diff2Money = 73.051361, 380100
Diff2Money = 100.000000, 494130

Posted on: 2010/2/21 5:15
Open in new window
Top
Re: Higher rank missions
Home away from home
Joined:
2008/2/17 23:14
Group:
Registered Users
FLServer Admins
Senior Members
Posts: 518
Offline
Yes. dont dick with it unless you've modified your npcranktodiff.ini and know what the hell you're doing in the npcranktodiff.ini

Alot of modders have tendancy to just plug in numbers that come out of their ass or numbers that "feel good". You need a formula to ascertain all of your npcranktodiff entries our you will make a mess of missions.

Posted on: 2010/2/21 7:01
Open in new window
Top
Re: Higher rank missions
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
FLServer Admins
Trusted Speciality Developers
Senior Members
Posts: 1985
Offline
Code:
// Difficulty calculation
// rank_diff = based on internal MissionNum and DATA\MISSIONS\rankdiff.ini
// min_diff and max_diff are from mission_type/misn in DATA\MISSIONS\mbases.ini
// 0.0 <= rnd < 1.0
// 0 <= rand < 3

if (SinglePlayer)
{
  factor = 1.3689**3

  diff1 = rank_diff / factor
  if (diff1 < 0)   diff1 = 0
  if (diff1 > 100) diff1 = 100

  diff2 = rank_diff * factor
  if (diff2 < 0)   diff2 = 0
  if (diff2 > 100) diff2 = 100

  if (diff2 <= min_diff) return 0       // become a better pilot

  if (diff2 >= max_diff)
  {
    d = max_diff / factor
    if (min_diff >= d) d = min_diff
    return max_diff - cos(rnd * pi/2) * (max_diff - d)
  }

  if (diff1 < min_diff) diff1 = min_diff
  return max_diff - cos(rnd * pi/2) * (max_diff - diff1)
}
else
{
  if (rand == 0)
  {
    d = max_diff
  }
  else
  {
    factor = 1.3689**(rand * 2 + 2)
    d = max_diff * factor
  }
  if (d < 0)   d = 0
  if (d > 100) d = 100
  return d - cos(rnd * pi/2) * (d - min_diff)
}

Posted on: 2010/2/21 9:14
Top
Re: Higher rank missions
Starport Admin
Joined:
2008/2/26 20:36
From Germany
Group:
Webmasters
Registered Users
Posts: 1790
Offline
haha, nice job on the code, I knew max and min diff in mbases were never simple bottom and top limits (at least in Multiplayer as it appears..):

http://the-starport.net/archive/viewtopic.php?f=18&t=37174&start=0

Quote:
As it is obvious that nobody here ever really has dealt with the DestroyMission entries in the mbases (in order to offer uber-missions only at some single bases - you could say to make the random missions system less randomized) i will post my experiences for the protocol ^^:

you have this entry in the mbases.ini:
mission_type = DestroyMission, X, Y, 100

now, the X and Y values are not(!) the minimum and maximum difficulty.
Instead, the X value is the maximum mission difficulty if the Y value = 0
Now, if the Y value is greater than X u can say that X is the minimum mission difficulty.
I think there is a formula for that in the flserver, which has to be something like this:

Diff (random mission, x, y) = x * RND° + ( y² + or - RND°° * y)

0 < RND° < 1 (random number)
RND°° maybe between 0 and 2... dont know, just a guess, I just do not really get it!
but you should know about the fact, that the second number in the DestroyMission entry is not the maximum difficulty, rather a difficulty-number, that can (also randomly) be added to the first number with a random multiplier.

So, it is nearly impossible to provide a base with just 40-60 diff missions.
The minimum could be 40, but as soon as you got the minimum of 40, you will loose the maximum limit (as you have to heighten the second number) -> 100% missions will also be available...

Posted on: 2010/2/21 10:56
aka chaosgrid
http://www.freelancerserver.de
https://www.moddb.com/mods/fwtow
Top
Re: Higher rank missions
Just can't stay away
Joined:
2008/3/11 16:11
From Belarus, Minsk
Group:
Registered Users
Senior Members
Posts: 384
Offline
Anybody of missions gurus could help me please?..

I got missions against d20(gunboats), d21(destroyers), d22(battleships) working, but what I want is:

missions against d21 and d22 have to have much greater payouts than others.

Say, 1000 000 d22 and no more than 500 000 against d19(fighters).

Unfortunately now a battleship can be spawned at 300k mission, and no battleships(only fighters, many of them though) in 800k mission.

Guess I have to modify npcranktodiff.ini, and diff2money.ini.

But how???

Anybody can help me here?

Posted on: 2010/2/21 18:33
Top
Re: Higher rank missions
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
FLServer Admins
Trusted Speciality Developers
Senior Members
Posts: 1985
Offline
Not sure if this is of any use.

Code:
# Make MP job difficulty exactly between min and max difficulty in mbases.ini.
# Jason Hood (adoxa), 22 February, 2010.
# Fixed 3 June, 2010.

File: content.dll # v1.1
0AAD7A: 89 44 E4 04 D9 44 E4 20 D8 64 E4  [ 99 B9 03 00 00 00 F7 F9 85 D2 74 ]
        1C EB 04 66 B8 FB 06 DB 44 E4 04  [ 33 D9 05 30 B2 FB 06 DD 5C 24 04 ]
        D8 0D D0 97 39 06 DE C9 D8 44 E4  [ FF D6 99 DD 44 24 04 B9 03 00 00 ]
        1C 5E 83 C4 10 C3                 [ 00 F7 F9 8D 54 12                ]

Posted on: 2010/2/22 7:52
Top
Re: Higher rank missions
Just can't stay away
Joined:
2008/6/20 0:27
From Russia, GMT+4
Group:
Registered Users
FLServer Admins
Trusted Speciality Developers
Senior Members
Posts: 278
Offline
omg, the last half-year or so have been just a golden age in fl coding!
keep it up, guys!

Posted on: 2010/2/22 10:36
Top
Re: Higher rank missions
Just popping in
Joined:
2010/4/3 1:43
Group:
Registered Users
Posts: 2
Offline
Sorry to dig up an old thread like this, but I saw the piece of hex code provided by adoxa and it's exactly what I was looking for! - except I can't get it to work, sadly. It crashes FLServer whenever I try to load a character. To be more exact, it sort of worked the first time and I was able to check the mission board, but there were no available missions - so after tinkering with NpcRanktoDiff and mbases.ini I tried again, and from that point on it crashed no matter if I used the modded ini's or the originals. Has anyone gotten this to work?

Posted on: 2010/6/3 10:12
Top
Re: Higher rank missions
Home away from home
Joined:
2009/8/16 2:58
From Qld, Aus.
Group:
Registered Users
FLServer Admins
Trusted Speciality Developers
Senior Members
Posts: 1985
Offline
I guess it wasn't useful until now... Fixed it, sorry 'bout that. BTW, it's formatted as a BPatch file.

Posted on: 2010/6/3 14:29
Top
Re: Higher rank missions
Just popping in
Joined:
2010/4/3 1:43
Group:
Registered Users
Posts: 2
Offline
Awesome, thanks a lot! It works perfectly now.

Posted on: 2010/6/3 18:40
Top
Re: Higher rank missions

Joined:
2009/4/30 18:15
Group:
Registered Users
FLServer Admins
Posts: 21
Offline
In my opinion it is possible without using patch made by Adoxa. I'm working on missions with rewards between 5.400-6.300.000$. Still testing but this is a result: http://www.youtube.com/watch?v=xKdUu10TP80

EDIT: It's prototype but it work beyond expectation.


Posted on: 2011/2/18 16:34
Top
(1) 2 »