Hey,
After searching for a while, i finally found the way to make this updater running for pservers, this is a bit different to US updater but it looks pretty so i wanted it and now i share it to you
Here is a screen how it looks
Here are the required things to make it working.
1) Follow the tutorial to setup your updater that you can find here on elitepvpers (if i remember, it's attached on index of shaiya development sticky thread of johnheatz)
2) Just search for a new line that is NOT on the mentionned ones from the tutorial:
Code:
shaiya-fr.patch.aeriagames.com
If you don't find it it's like 35-40 lines after the TEST_IP line.
Last thing is in the Version.ini(client file) file and checkversion.ini(server file).
On the first line you'll have:
Code:
CheckVersion=3
You must change it to:
Code:
CheckVersion=2
Done, it should work correctly (works for me so..)
Credits to Aeria Games or Nexon or whoever made this updater
Edit: I forgot, if you want to translate it in english or whatever langage you want, you just have to edit the bitmap images for the button 'jouer' (= play).
Now it's in english version. credits goes to potheadpewe for translating
thanks for the share i didnt know that nexon or aeria games were capable of an updater that awesome
I liked it so much that I did all I could to make it English. Thank you Google translate. So here is the Updater.exe with I hope almost all the errors in English, and the pesky bitmap files that I extracted edited but cant seem to get back in with the tool I got so if someone could help me with that little problem.
All the IP's are set to 127.0.0.1
If you edited your bitmap files, post them please and i'll import them then i'll add the english version on the top.
I'm a nuub graphiser so i'll not make it since it will look ugly as hell ^^
here is the background html file for the updater, only thing is I cant seem to find where random background offers are located in the file, thats the only problem I can see with this file atm.
Feel free to help me out by finding that pesky part of the code and this way we can have both the updater and the background available for this release lol
the background image is defined by this piece of script but changing the pict or having a random pict is not performed by the suggested modification.
a) about google-scripts
it's google, so never search for any functional services there, it's only google.
so advices, tracking, advices, and tracking again.
my C:/windows/system32/drivers/etc/hosts contains (among a lot of other lines):
127.0.0.1 partner.googleadservices.com
and of course, the Shaiya FR updater works fine, but w/o ******* adv. tracking.
b) about shaiya fr
the pict used as background is defined by the 'pgImg' style applied to the 'bodyWin' div. and infinite locates it correctly, but the actually used pict file is (if randomness applies) chosen by the server when it built the page sent to your updater.
the 'pgImg' style is defined (on provided zip) as:
the image actually used by the FR server is
so these picts from the 'danrad7' account on photobucket is may be the result of local rewriting.
c) about your own page
the "FR-updater" works exactly the same than the US one, it uses an URL to display whatever you include in the returned page, and of course this can include links to your registration pages, (dynamic & up to date) information on events, and random picts.
the FR updater displays the page with URL:
you can change it with whatever relevant for you, including a server-side generated page (eg [code]http://myHost.xyz/updater/index.php[code]).
infinite59, 167.bmp file, but I put a picture of your own custom "white" does a places that I want. I wonder how can I do Bun. Transparency is a kind of want it to be.
you must take into account the whole thing.
the program uses a (background-)bitmap instead of the classical frame (the one drawn by windows and specific for a system / theme). in the top frame of this program (in its top-window) there is a child window which is an Internet component (a viewer that uses the IE's component to display a web page).
that page will contains whatever you define (here nothing, since the url was invalid or unreachable - error 404).
you must define a background image in your web page so that the 2nd bitmap displays the exact clipped part (the missing part of the top bitmap that is clipped by the web component).
2 options: you define a bitmap with the missing part (and not a single additional pixel or the web component will displayed unexpected scrollbars) or you use the same (full) bitmap and use required styles to offset & clip the image in right position and right size.
Dear castor4878, Thank you for Answeer. But Don't Understand you. My problem "bitmap" on file.Blue unseen areas of the original file. but I can not do it.
Notice : epvpimg site not allowed .bmp file extention. me change extention .png
if you write a message in English and if you can not understand it once translated to your own language by Google, it is certainly because the English one is not understandable.
in case of doubt, write your message in your language and provide the translation to English provided by google.
I would advice this because English is not my native language.
so let's assume that your question was actually:
how to clip the bitmap used by the updater window itself?
background:
to draw windows like arbitrary shapes, a program has to modify the region (Cf HRGN, ExtCreateRegion and SetWindowRgn) associated to these windows.
the "region" is (more or less) an 1-bit mask that define the visible part of the window; classic window have a rectangular region.
In order to create a not rectangular region, one can draw the shape that defines the region with primitive functions, it's fine for basic shape (an ellipse for instance) or we can create the shape from a bitmap, it is required when the final shape has a lot of details.
the updater uses obviously the 2nd option, it uses the bitmap #126 to generate a valid region ... how ?
a good answer would be from the alpha channel of that bitmap stored in resource.
unfortunately, the GUI, and generally speaking Win32, API make very poor use of alpha channel information; and for this need, no function creates a region from the alpha channel of a bitmap.
and because the system does not do it, we have to do it ourself; the method is to use a specific color for the transparent part of the region; with this simple criterion, all the points of the bitmap are scanned for inclusion in the region if they use a different color and ignore them otherwise.
here is one possible implementation of this works:
HRGN bitmapToRegion(HBITMAP srcBmp, COLORREF cTransparent)
{
// check bitmap & get its size
BITMAP bm;
if (srcBmp == null || ::GetObject(srcBmp, sizeof(bm), &bm) == 0)
return null;
// create a memory DC inside which we will scan the bitmap content
HDC memDC = ::CreateCompatibleDC(null);
if (memDC == null)
return false;
// region placeholder
HRGN region = null;
// create a 32 bits depth bitmap and select it into the memory DC
BITMAPINFOHEADER bmHeader = {
sizeof(BITMAPINFOHEADER), // biSize
bm.bmWidth, bm.bmHeight, // biWidth, biHeight;
1, 32, // biPlanes, biBitCount
BI_RGB, 0, 0, 0, 0, 0 // biCompression, biSizeImage, resol, clr used, clr important
};
void* bits32 = null;
HBITMAP bmp32 = ::CreateDIBSection(memDC, (BITMAPINFO*) &bmHeader, DIB_RGB_COLORS, &bits32, null, 0);
if (bmp32){
// select bitmap into memory DC
HBITMAP memBmp = (HBITMAP) ::SelectObject(memDC, bmp32);
// create a working DC to copy the bitmap into the memory DC
HDC hDC = ::CreateCompatibleDC(memDC);
if (hDC){
// Get how many bytes per row we have for the bitmap bits (rounded up to 32 bits)
BITMAP bm32;
::GetObject(bmp32, sizeof(bm32), &bm32);
while (bm32.bmWidthBytes % 4)
bm32.bmWidthBytes++;
// copy the bitmap into the working memory DC
HBITMAP saveBmp = (HBITMAP) ::SelectObject(hDC, srcBmp);
::BitBlt(memDC, 0, 0, bm.bmWidth, bm.bmHeight, hDC, 0, 0, SRCCOPY);
// For better performances, we will use the ExtCreateRegion() function to create the region.
// This function take a RGNDATA structure on entry. We will add rectangles by amount of 100.
DWORD maxRects = 100;
HANDLE hData = ::GlobalAlloc(GMEM_MOVEABLE, sizeof(RGNDATAHEADER) + (sizeof(RECT) * maxRects));
RGNDATA *pData = (RGNDATA*) ::GlobalLock(hData);
pData->rdh.dwSize = sizeof(RGNDATAHEADER);
pData->rdh.iType = RDH_RECTANGLES;
pData->rdh.nCount = pData->rdh.nRgnSize = 0;
::SetRect(&pData->rdh.rcBound, MAXLONG, MAXLONG, 0, 0);
// Scan each bitmap row from bottom to top (the bitmap is inverted vertically)
byte* p32 = (byte*) bm32.bmBits + (bm32.bmHeight - 1) * bm32.bmWidthBytes;
for (int y = 0; y < bm.bmHeight; y++){
// Scan each bitmap pixel from left to right
for (int x = 0; x < bm.bmWidth; x++){
// Search for a continuous range of "non transparent pixels"
int x0 = x;
LONG* p = (LONG*) p32 + x;
while (x < bm.bmWidth){
if (*p == cTransparent)
break;
++p;
++x;
}
if (x > x0){
// Add the pixels (x0, y) to (x, y+1) as a new rectangle in the region
if (pData->rdh.nCount >= maxRects){
::GlobalUnlock(hData);
maxRects += 100;
hData = ::GlobalReAlloc(hData, sizeof(RGNDATAHEADER) + (sizeof(RECT) * maxRects), GMEM_MOVEABLE);
pData = (RGNDATA*) ::GlobalLock(hData);
}
RECT* pr = (RECT*) &pData->Buffer;
::SetRect(&pr[pData->rdh.nCount], x0, y, x, y+1);
if (x0 < pData->rdh.rcBound.left)
pData->rdh.rcBound.left = x0;
if (y < pData->rdh.rcBound.top)
pData->rdh.rcBound.top = y;
if (x > pData->rdh.rcBound.right)
pData->rdh.rcBound.right = x;
if (y+1 > pData->rdh.rcBound.bottom)
pData->rdh.rcBound.bottom = y+1;
pData->rdh.nCount++;
// On Windows98, ExtCreateRegion() may fail if the number of rectangles is too large (ie: > 4000)
if (pData->rdh.nCount == 2000){
HRGN h = ::ExtCreateRegion(null, sizeof(RGNDATAHEADER) + (sizeof(RECT) * maxRects), pData);
if (region){
::CombineRgn(region, region, h, RGN_OR);
::DeleteObject(h);
}
else
region = h;
pData->rdh.nCount = 0;
::SetRect(&pData->rdh.rcBound, MAXLONG, MAXLONG, 0, 0);
}
}
}
// Go to next row
p32 -= bm32.bmWidthBytes;
}
// Create or extend the region with the remaining rectangles
HRGN h = ::ExtCreateRegion(null, sizeof(RGNDATAHEADER) + (sizeof(RECT) * maxRects), pData);
if (region){
::CombineRgn(region, region, h, RGN_OR);
::DeleteObject(h);
}
else
region = h;
// Clean up
::SelectObject(hDC, saveBmp);
::DeleteDC(hDC);
}
::SelectObject(memDC, memBmp);
::DeleteObject(bmp32);
}
::DeleteDC(memDC);
return region;
}
next question: what is the "magic" transparent color (the blue in original bitmap). it is up to the developer !... some algos will use the top-left point (coords 0:0) to get the transparent color.
/background.
now what about your picture ?...
at point (0,0) you have white (FF, FF, FF) so all white points should not be include and instead they should define the transparent part of the mask ...
expect if the developer didn't use that point.
so first try: do NOT use a white transparent color but the blue used by the original pict (meaning 00,00,F3 and strictly that value).
next thing to take into account: your pict is anti-aliased, the white becomes very light gray, then gray/brown; in most of the cases you can NOT do that, the limit between the mask (in blue) and the drawn pict shall be clear (high contrast) or the result may be ugly.
[Release] French guild page retail 03/04/2012 - Rappelz Private Server - 4 Replies here it is with virus scan
Antivirus Result Update
AhnLab-V3 - 20120215
AntiVir - 20120216
Antiy-AVL - 20120213
AVG - 20120216
BitDefender - 20120216
CAT-QuickHeal - 20120214
[French Release] Création serveur priver 5017 FringeCO 01/08/2012 - CO2 PServer Guides & Releases - 12 Replies http://ups.imagup.com/ano1/1283195167.jpg
Hi,
A lot of French people ask me to help with the creation of Conquer Private Server i decide to put my source online FringeCO 2.1
FringeCO is a server deny conquest 2.0 french created by Benj! and myself in the summer of 2009
It offers:
-lvl max 140
-super lotery 50k cps
{Release} TS2 French Bot 10/14/2011 - 12Sky2 Hacks, Bots, Cheats & Exploits - 19 Replies UPDATE 07/02/2011
New Five day trial released today.
Get your TS2 Aeria Bot HERE
New Features & 100% Memory Based
• TIME HACK added to the Bot, now stay in premium maps after your time is up works on all premium maps even second portal premium maps
• Item Stacker ( Stacks all inventory items into one spot in your inventory removing the need for hermits chest. Works without Dc'ing and allows you to over stock your inventory even after you log off all your items our still there....
for french people in all serveurs kira 2 in french 05/15/2008 - CO2 Bots & Macros - 8 Replies Hello all i didn't ask the kira maker but he was saying we can change codes!
First of all download this (it's the programme to make my kira work):
AutoHotkey Download
After download this (it's the code ):
RapidShare: 1-Click Webhosting