Quantcast
Channel: RaGEZONE - MMO Development Forums
Viewing all 23897 articles
Browse latest View live

[4.0.6]Fury-WoW: Recreation of Undamed-WoW!

$
0
0
Fury-WoW: Recreation of Undamed-WoW
Fury-WoW: Cataclysm 4.0.6




More Then 5000 Custom items!, Haste Cap 12700


Lots of Custom Instances!


Going to be more then 1000 Custom Quests!


Custom Task Area!


Custom World Boss! IN Development!


Over 2000 Custom NPCs!


Custom Currency MG/VP


If you have proof of donating on Undamed-WoW, then you can get it back.
Join now at http://fury-wow.ddns.net
set realmlist fury-wow.ddns.net


Custom patch and custom WoW.exe download it, and delete caches and other custom patches.
The patch goes in enUS/enGB
https://www.mediafire.com/?pg0h9p1ok9xx2p1



SERVER IS UP AND RUNNING. 24/7


When making an account do it in FULL CAPS (CAPS LOCK)

Version 154.1 and 154.2 IDA database (IDB) files

$
0
0
So uh, CField::OnPacket got fucked. :mellow:


I decompiled all functions for both files before naming anything (manually, or by script)
I left the 154.1 database unchanged after initial analysis.


In the 154.2 database, I used the idc script Diamondo25 released (Copied below).
In addition, I named the following functions.
CMobPool::OnPacket
CMobPool::OnMobCrcKeyChanged ; don't ask.
COutPacket::COutPacket
CClientSocket::SendPacket
CMobPool::OnMobPacket
CMob::OnSpecialEffectBySkill ; @Diamondo25 I used the itemid(3210001) to find this, it was first instance




MapleStory version 154.1 IDA database (IDB) file
https://mega.co.nz/#!LckSXQDQ!tga5Lx...gfunzasUFcLpN8
Included are the following:
MapleStory_154.1_20140917.c
MapleStory_154.1_20140917.exe
MapleStory_154.1_20140917.idb

MapleStory version 154.2 IDA database (IDB) file
https://mega.co.nz/#!rQtBFAwY!_0gv8R...cVTi6lZZLli7cY
Included are the following:
MapleStory_154.2_20140918.c
MapleStory_154.2_20140918.exe
MapleStory_154.2_20140918.idb





Thanks to Diamondo25 for his idc script
Code:

// IDC script for identifying functions and such
#include <idc.idc>


#define RenameFunction(a, b) Message("Found %s at %a\r\n", b, a); MakeName(a, b)
#define START_ADDR 0x00400000


static main() {
    auto addr = BADADDR;
   
    auto onMovePacket = FindAoBAndRename("25 0C FE FF  FF 05 E8 03", "?OnMovePacket@CMovePath@@QAEXAAVCInPacket@@H@Z");
    NameNthCall(onMovePacket, 3, "?Decode@CMovePath@@QAEXAAVCInPacket@@H@Z");
   
   
    FindStringAndRenameFirstXrefFromData("Delivered", "?Decode@CharacterData@@QAE_KAAVCInPacket@@H@Z");
    FindStringAndRenameFirstXrefFromData("CharacterName(%s), WorldID(%d), Ch(%d)", "CWvsApp::ZtlExceptionHandler");
    FindStringAndRenameFirstXrefFromData("Unknown error 0x%0lX", "com_error::ErrorMessage");
    FindStringAndRenameFirstXrefFromData("%d (MAX)", "CUIToolTip::SetToolTip_Equip");
    FindStringAndRenameFirstXrefFromData("GM can not transfer worlds.", "CCashShop::CheckTransferWorldPossible");
    FindStringAndRenameFirstXrefFromData("Please visit the website to charge your account.", "CCashShop::OnStatusCharge");
    FindStringAndRenameFirstXrefFromData("SOFTWARE\\Microsoft\\Windows\\CurrentVersion", "?Init@CSystemInfo@@QAEXXZ");
    FindStringAndRenameFirstXrefFromData("DBGHELP.DLL", "ZExceptionHandler::InitDbgHelpFunctions");
    FindStringAndRenameFirstXrefFromData("battleFieldTeam", "Field::BattlefieldTeamCond::Parse");
    FindStringAndRenameFirstXrefFromData("jobCategory", "Field::JobCategoryCond::Parse");
    FindStringAndRenameFirstXrefFromData("http://maplestory.nexon.net", "CClientSocket::GetGuestIDRegistrationURL");
    FindStringAndRenameFirstXrefFromData("SeDebugPrivilege", "GetSEPrivilege");
    FindStringAndRenameFirstXrefFromData("Congrats! You have gained upgrade potion by playing an hour!", "CFloatNotice::CreateEffEvolRing");
    FindStringAndRenameFirstXrefFromData("Etc/SetItemInfo.img", "CItemInfo::RegisterSetItemInfo");
    FindStringAndRenameFirstXrefFromData("Can be equipped on #cone-handed sword or two-handed sword.#", "CItemInfo::GetItemDesc");
    FindStringAndRenameFirstXrefFromData("epicItem", "CItemInfo::RegisterEquipItemInfo");
    FindStringAndRenameFirstXrefFromData("%02X%02X%02X%02X%02X%02X_%02X%02X%02X%02X", "CItemInfo::RegisterEquipItemInfo");
    FindStringAndRenameFirstXrefFromData("Please select the World you would like to play in.", "CUIWorldSelect::MakeAdvice");
    FindStringAndRenameFirstXrefFromData("Play!", "StartUpWndProc");
    FindStringAndRenameFirstXrefFromData("%d/%02d/%02d %02d:%02d", "CUIGuildBBS::FormatDate");
    FindStringAndRenameFirstXrefFromData("QuestID : %d", "CUIQuestInfo::LoadData");
    FindStringAndRenameFirstXrefFromData("UI/UIWindow2.img/Reset/AP/stat%d/%d", "GetStatCanvas");
    FindStringAndRenameFirstXrefFromData("[W:%2d]", "CUIStatusBar::ChatLogDraw");
    FindStringAndRenameFirstXrefFromData("itemLEV", "CUIToolTip::CUIToolTip");
    FindStringAndRenameFirstXrefFromData("act2", "?OnChat@CUser@@QAEXAAVCInPacket@@@Z");
    FindStringAndRenameFirstXrefFromData("criticaldamageMin", "CUserLocal::SetPassiveSkillDataForced");
    FindStringAndRenameFirstXrefFromData("Map/MapHelper.img/weather/squib/squib%d", "CUserPreview::ShowFireCrack");
    FindStringAndRenameFirstXrefFromData("R6025 %d %d %d %d", "CVecCtrlMob::CtrlUpdateActiveMove");
    FindStringAndRenameFirstXrefFromData("Something went wrong !!!!!", "CWvsContext::ShowNewYearCard");
    FindStringAndRenameFirstXrefFromData("Are you sure you want to use it?", "CWvsContext::SendConsumeCashItemUseRequest");
    FindStringAndRenameFirstXrefFromData("HACK", "CWvsContext::OnFakeGMNotice");
    FindStringAndRenameFirstXrefFromData("SOFTWARE\\NEXON\\eTracer\\", "?Start_eTracer@@YAXKK@Z");
    FindStringAndRenameFirstXrefFromData("Invalid Decoding\r\n", "?WriteClientLog@CInPacket@@IAEXXZ");
    FindStringAndRenameFirstXrefFromData("%s\\%s_%04d%02d%02d_%02d%02d%02d.jpg", "?SaveAntiMacroScreenShot@CWvsContext@@QAEXV?$ZXString@D@@@Z");
    //FindStringAndRenameFirstXrefFromData("UI/UIWindow2.img/PersonalShop/main/backgrnd", "??0CPersonalShopDlg@@QAE@XZ");
   
    // Hackshield related stuff
    FindStringAndRenameFirstXrefFromData("%s\HShield", "SendHSLog");
    FindStringAndRenameFirstXrefFromData("HSUpChk.log", "?LibChk_SetLog@@YGKPBD@Z");
    FindStringAndRenameFirstXrefFromData("_AHNPRODUCTID=", "?GetHSEnvInfo@@YGKPBDPAU_HSUPDATEENV@@@Z");
    FindStringAndRenameFirstXrefFromData("z`La4~`8D2A64lA[1#HaD$y84(I.", "?InitWiniNet@CHsMonitor@@AAEKXZ");
    FindStringAndRenameFirstXrefFromData("<[H8@_A8@_`+c:L{t:%{z(L8c`:{@lHaA2^vd2D~D_5$D^Lad<E[@<A84[S$1#:.", "?SendErrorbyHttp@CHsMonitor@@QAEKKPBD@Z");
    FindStringAndRenameFirstXrefFromData("<[H8@_A8@_`+c:L{t:%{z(L8c`:{@lHaA2^vd2D~D_5$D^Lad<E[@<A84[S$1#:.", "?SendErrorbyHttp@CHsMonitor@@QAEKKPBD@Z");
   
    // CRC stuff
    addr = FindBinary(START_ADDR, SEARCH_DOWN, "00 00 00 00 B7 1D C1 04  6E 3B 82 09 D9 26 43 0D");
    if (addr != BADADDR) {
        RenameFunction(addr, "?ms_adwCrc32Table@CCrc32@@0PAKA");
        RenameFirstXrefFromData(addr, "?GetCrc32@CCrc32@@SAKPBEKKHPAKH@Z");
    }
   
    FindCInPacketDecodeFunction("83 F8 01", "?Decode1@CInPacket@@QAEEXZ");
    FindCInPacketDecodeFunction("83 F8 02", "?Decode2@CInPacket@@QAEEXZ");
    FindCInPacketDecodeFunction("83 F8 04", "?Decode4@CInPacket@@QAEEXZ");
    FindCInPacketDecodeFunction("83 F8 08", "?Decode8@CInPacket@@QAEEXZ");
    FindCInPacketDecodeFunction("3B C7", "?DecodeBuffer@CInPacket@@QAEEXZ");
   
    FindCOutPacketEncodeFunction("41 3B C8", "?Encode1@COutPacket@@QAEEXZ");
    FindCOutPacketEncodeFunction("83 C1 02", "?Encode2@COutPacket@@QAEEXZ");
    FindCOutPacketEncodeFunction("83 C1 04", "?Encode4@COutPacket@@QAEEXZ");
    FindCOutPacketEncodeFunction("83 C1 08", "?Encode8@COutPacket@@QAEEXZ");
    FindCOutPacketEncodeFunction("03 CB", "?EncodeBuffer@COutPacket@@QAEEXZ");
   
    FindAoBAndRename("83 FA 02 73 17 68", "CIOBufferManipulator::DecodeStr");
    FindAoBAndRename("6A 0D 50 8B CF E8 ? ? ? FF 8B CF 85 DB 74 1C", "GW_CharacterStat::Decode");
   
    FindAoBAndRename("81 FB B4 05 00 00", "?DecryptData@CInPacket@@QAEXK@Z");
    FindAoBAndRename("81 FF B4 05 00 00", "COutPacket::MakeBufferList");
   
    auto names = object();
    names[0] = "?RawDecode@GW_ItemSlotPet@@MAEXAAVCInPacket@@@Z";
    names[1] = "?RawDecode@GW_ItemSlotEquip@@MAEXAAVCInPacket@@@Z";
    names[2] = "?Decode@GW_CharacterStat@@QAEXAAVCInPacket@@H@Z";
   
    //FindFunctionsByAoB("0F B7 C8 8D 56 ? E8 ? ? ? FF 8B CF 89 46 ?", names, 3);
   
    names = object();
    names[0] = "?YesNo2@CLoginUtilDlg@@SAHJ@Z";
    names[1] = "?YesNo3@CLoginUtilDlg@@SAHJ@Z";
    names[2] = "?Notice@CLoginUtilDlg@@SAXJPAV?$ZRef@VCDialog@@@@@Z";
    names[3] = "?Error@CLoginUtilDlg@@SAXJPAV?$ZRef@VCDialog@@@@@Z";
   
    FindFunctionsByAoB("6A 01 6A 0A 50 68 8E 00 00 00 68 F9 00 00 00", names, 4);
   
    addr = FindBinary(START_ADDR, SEARCH_DOWN, "6A 01 6A 0A 50 68 8E 00 00 00 68 F9 00 00 00");
    if (addr != BADADDR) {
        addr = GetCallAddress(addr);
        RenameFunction(addr, "?CreateFadeWnd@CFadeWnd@@QAEXJJPBGJHPAXHW4UIOrigin@CWnd@@@Z");
    }
   
    addr = FindAoBAndRename("68 FF FF FF 7F  8B CE C7 44 24 1C 00 00 00 00  E8 ? ? FF FF", "COutPacket::COutPacket");
    if (addr != BADADDR) {
        // Quickly refind
        addr = FindBinary(addr, SEARCH_DOWN, "68 FF FF FF 7F  8B CE C7 44 24 1C 00 00 00 00  E8 ? ? FF FF");
        Message(" %a\r\n", addr);
        addr = GetCallAddress(addr); // address of COutPacket::Init_1
        Message(" %a\r\n", addr);
        //RenameFunction(addr, "COutPacket::Init_1");
        addr = GetCallAddress(addr); // First call = COutPacket__Init
        Message(" %a\r\n", addr);
        //RenameFunction(addr, "COutPacket::Init");
        /*
        auto initByte = FindBinary(addr, SEARCH_DOWN, "E8");
        auto encode2 = FindBinary(initByte + 2, SEARCH_DOWN | SEARCH_NEXT, "E8");
        if (initByte != BADADDR) RenameFunction(initByte, "COutPacket::InitByte");
        if (encode2 != BADADDR) RenameFunction(initByte, "COutPacket::Encode2");
        */
    }
   
    FindAoBAndRename("68 FF FF FF 7F 8B CE C7 44 24 1C 00 00 00 00 E8 ? ? FF FF", "COutPacket::COutPacket");
   
    FindAoBAndRename("6A 0D 50 8B CF E8 ? ? ? ?", "?Decode@GW_CharacterStat@@QAEXAAVCInPacket@@H@Z");
    FindAoBAndRename("6A 02 53 55 E8 ? ? ? ?", "?Decode@AvatarLook@@QAEXAAVCInPacket@@@Z");
   
    FindAoBAndRename("3D 33 27 00 00 74 08 50  8B ? E8", "?Flush@CClientSocket@@QAEXXZ");
   
    FindAoBAndRename("? 00 FF FF 1F", "?Random@CRand32@@QAEIXZ");
   
   
   
   
    // Packet handlers
   
    FindAoBAndRename("68 0A 00 00 22", "?OnCheckCrcResult@CClientSocket@@IAEXAAVCInPacket@@@Z");
    addr = FindAoBAndRename("68 04 00 00 21", "?OnAuthenCodeChanged@CClientSocket@@IAEXAAVCInPacket@@@Z");
    RenameFirstXrefFromCode(addr, "?ProcessPacket@CClientSocket@@IAEXAAVCInPacket@@@Z");
    FindAoBAndRename("68 04 00 00 21", "?OnAuthenCodeChanged@CClientSocket@@IAEXAAVCInPacket@@@Z");
    RenameFirstXrefFromCode(FindStringAndRenameFirstXrefFromData("\\ It may be wating long time", "CField::OnShowQuestLoadingPacket"), "CField::OnPacket");
   
    // Some WvsContext thingies
   
    names = object();
    names[0] = "?OnMigrateCommand@CClientSocket@@IAEXAAVCInPacket@@@Z";
    names[1] = "?OnError@CClientSocket@@QAEXH@Z";
    names[2] = "?OnClose@CClientSocket@@QAEXXZ";
   
    FindFunctionsByAoB("68 02 00 00 21", names, 3); // push 0x21000002u
}


static FindNextCommand(pCommandHex, pFrom) {
    return FindBinary(pFrom, SEARCH_DOWN, pCommandHex);
}


static GetCallAddress(pFrom) {
    auto addr = FindNextCommand("E8", pFrom);
    if (addr == BADADDR) return BADADDR;
    Message(" %a\r\n", addr);
    return pFrom + Dword(addr + 1);
}


static FindFirstText(pWhat, pMin) {
    auto result = FindText(pMin, SEARCH_DOWN, 0, 0, pWhat);
    if (result == BADADDR)
        return BADADDR;
    return Rfirst(result);
}


static FindAoBAndRename(AoB, name) {
    auto addr = FindBinary(START_ADDR, SEARCH_DOWN, AoB);
    if (addr == BADADDR)
        return BADADDR;
   
    auto functionBase = GetFunctionAttr(addr, FUNCATTR_START);
    RenameFunction(functionBase, name);
   
    return functionBase;
}


static FindStringAndRenameFirstXrefFromData(text, name) {
    return FindStringAndRenameXrefSteps(text, name, 1);
}


static FindString(addr, text) {
    return FindBinary(addr, SEARCH_DOWN, sprintf("\"%s\"", text));
}


static FindStringAndRenameXrefSteps(text, name, steps) {
    auto addr = FindString(START_ADDR, text);
    if (addr == BADADDR)
        return BADADDR;
   
    addr = DfirstB(addr);
    if (addr == BADADDR) {
        return BADADDR;
    }
    auto i;
    for (i = 1; i < steps; i++) {
        addr = GetFunctionAttr(addr, FUNCATTR_START);
       
        auto callingFunction = RfirstB(addr); // Get xref to function
        if (callingFunction == BADADDR)
            return BADADDR;


        addr = callingFunction;
    }
   
    addr = GetFunctionAttr(addr, FUNCATTR_START);
    if (addr != BADADDR) {
        RenameFunction(addr, name);
    }
    return addr;
}


static RenameFirstXrefFromData(address, name) {
    auto callingFunction = DfirstB(address);
    if (callingFunction == BADADDR)
        return BADADDR;
   
   
    auto functionBase = GetFunctionAttr(callingFunction, FUNCATTR_START);
    RenameFunction(functionBase, name);
    return functionBase;
}


static RenameFirstXrefFromCode(address, name) {
    auto callingFunction = RfirstB(address);
    if (callingFunction == BADADDR)
        return BADADDR;
   
   
    auto functionBase = GetFunctionAttr(callingFunction, FUNCATTR_START);
    RenameFunction(functionBase, name);
    return functionBase;
}


static FindCInPacketDecodeFunction(identifier, name) {
    auto lastResult = 0x00400000;
    while (1) {
        lastResult = FindBinary(lastResult, SEARCH_DOWN, "8D 45 EC 50 C7 45 EC 26 00 00 00");
        if (lastResult == BADADDR)
            return;
       
       
        auto tmp = FindBinary(lastResult, 0x00, identifier);
       
        if (tmp != BADADDR && lastResult - tmp < 0x15) {
            auto functionBase = GetFunctionAttr(lastResult, FUNCATTR_START);
           
            Message("Found %s at %a\r\n", name, functionBase);
               
            RenameFunction(functionBase, name);
            return;
        }
        lastResult = lastResult + 0x50;
    }
}


static FindCOutPacketEncodeFunction(identifier, name) {
    auto lastResult = 0x00400000;
    while (1) {
        lastResult = FindBinary(lastResult, SEARCH_DOWN, "8B F1 8B 46 04 57 8D 7E  04");
        if (lastResult == BADADDR)
            return;
       
       
        auto tmp = FindBinary(lastResult, SEARCH_DOWN, identifier);
       
        if (tmp != BADADDR && tmp - lastResult < 0x15) {
            auto functionBase = GetFunctionAttr(lastResult, FUNCATTR_START);
           
            Message("Found %s at %a\r\n", name, functionBase);
               
            RenameFunction(functionBase, name);
            return;
        }
        lastResult = lastResult + 0x50;
    }
}


static FindFunctionsByAoB(AoB, Names, Amount) {
    auto lastResult = 0x00400000;
    auto lastFunctionResult = -1;
    auto i = 0;
    for (i; i < Amount; i = i) {
        lastResult = FindBinary(lastResult, SEARCH_DOWN, AoB);
        if (lastResult == BADADDR)
            return;
       
        auto functionBase = GetFunctionAttr(lastResult, FUNCATTR_START);
       
        if (functionBase != lastFunctionResult) {
            Message("Found %s at %a\r\n", Names[i], functionBase);
           
            RenameFunction(functionBase, Names[i]);
           
            lastResult = functionBase;
            lastFunctionResult = functionBase;
            i++;
        }
        lastResult = lastResult + 0x50;
    }
}


static NameNthCall(address, callNr, name) {
    if (address == BADADDR)
        return BADADDR;


    auto i = 1;
    while (1) {
        auto addr = FindNextCommand("E8", address);
        if (addr == BADADDR) return BADADDR;
       
       
       
        Message("Command at %a\r\n", addr);
        auto instruction = DecodeInstruction(addr);
        if (instruction.itype != 16) continue;
       
        auto funcAddr = instruction.Op0.addr;
       
        auto funcName = GetFunctionName(funcAddr);
       
        Message("Found %s at %a ? %d\r\n", funcName, funcAddr, i);
        if (funcName != "") {
            if (i == callNr) {
                RenameFunction(funcAddr, name);
                Message("Found %s at %a\r\n", name, funcAddr);
                break;
            }
            else {
                i++;
            }
        }
        address = addr + 1;
    }
}

Maybe one day our great piece of shit leader will give a fuck about letting us reorganize this section.
(Seriously, fuck you.)

[AD] Mu Reborn | S8 EP3 | x140 | Max 30 Reset | Great community | Opening 2014.09.26

Berry Dragon Nest New Private Server!

$
0
0
BerryDN officially launched on 20th September 2014, come and join us now!
7 classes available on the server which includes bringer!
50x exp rate and 30x drop rate.
Black Dragon Nest normal and hardcore mode available!
Chaotic Dragon Nest (Lv.80) available on the server!
Level 80 legendary equipment and heraldry plates available too!

Join us at http://www.berrydn.com/ now!

Berry Dragon Nest New Private Server!!!!

$
0
0
BerryDN officially launched on 20th September 2014, come and join us now!
7 classes available on the server which includes bringer!
50x exp rate and 30x drop rate.
Black Dragon Nest normal and hardcore mode available!
Chaotic Dragon Nest (Lv.80) available on the server!
Level 80 legendary equipment and heraldry plates available too!

Join us at http://www.berrydn.com/ now!

How to open this file?

$
0
0
What program should I use to open this file?


Download the file here » here «
If anyone knows open this file, I thank you.

stopped working

$
0
0
help to fix this stopped working.

Cleaning Laptop

$
0
0
Hey guys, I was recommended by a friend of mine who said that a WD-40 spray is a good product for cleaning my laptop's dusts,sticker marks and greases.

I wanna know if anybody here tried it it out and how do you use it? Because my keyboard emits lights and I want to make sure it wouldn't do some serious problem when I try it out.

I did went to a computer shop but the charge for getting a cleaning is for 4$ and a WD-40 spray is worth 3$. And they're using the exact same spray and I'm doubtful to leave my laptop cleaned by them since it would take for an hour and so as they've said.

I'm using a MSI GT70 Dominator laptop.

[Release] Juver Base Client

[Help] The username or password is incorrect. Please try again.

$
0
0
10 - The username or password is incorrect. Please try again.


How can i fix this error?
Attached Images

[REQ]Talisman Website

$
0
0
Anyone can give me website? pleaseee???

Fix Helper Tools?? - Mercury EMU

$
0
0
Do someone know how to fix the helper tools on Mercury Emu? :?:

[Release] MuOnline Xp=Onlines / S8Ep02 / 100x / Drop 30%

$
0
0
Release 30/08/2014

VIP + 1000 Wcoins throughout new players to 2014


registered with the site won !!!

Then come to the true MuOnlineNeo Mu Hard !!!

www.muonlineneo.com

Season8
60x
Drop30%
New Events
New sets
Wings 2.5 e Lvl4 originais GMO
New Master Skill Tree original GMO

[Help] [HELP] /post /add stats 97d+

$
0
0
Privet, can you help me with give me files for command /post and /add stats for 97d+ version becouse i want to add to my muserver files i can't work with source and dll ..

Stupid Cenots7 MS setup...

$
0
0
I am looking for some one who knows there way around centos 7 servers. I am new to the os and I would very much appreciate the help.

1. MySQL: I created the database, and the database exist (I already imported the backup I exported from another machine) and when I created a user for my self with privileges granted to that user and when I tried connecting via mysql from my home computer it fails.

2. phpMyAdmin wont install, I do not understand why.. LOL

If any one would be willing to help me with these I would greatly appreciate it!

[Help] install aXDr 2.0

$
0
0
hi
i want install aXDR CMS with my own hosting web and vps but all tutorial are with xampp

thank you for your answer

[Development] [NUEVO][Mu-LatinPeru Season 6 Episodio 3.5 prex700][Exp 600 Drop 80%][+5reset]

$
0
0
★★NUEVO SERVIDOR★★
。◕‿◕ MU-LATINPERÚ Season 6 Episodio 3 preX700。◕‿◕。
☛ Facebook: https://www.facebook.com/MuLatinPeru
☛ Comunidad: ::..LATINPERU..::
☛ Web: Noticias - MuLatinPeru S6 E3.5 preX700
♛5 Reset De Regalo (Automaticos)
。◕‿◕。 ☛ Datos:
Exp: x600
Drop: 70%
Bles Bug: Offline
Servidor: ON
Horarios: 24hs los 7 Dias
★RESET TABULADO:
De 1 a 100 reset - 450puntos – Level 350
De 101 a 200 reset - 400puntos – Level 370
De 201 a 350 reset - 380puntos – Level 380
De 351 a 500 reset – 360 puntos – Level 390
De 501 a 700 reset - 340puntos – Level 400
De 701 a 1000 reset - 320 puntos – Level 400
Borra Stats: SI
Borra Skills / Magias: NO
BLOOD CASTLE EXPANSION: SI
CASTLE SIEGE: ON
★★★★★ Saludos los espero en el server ★★★★★

Scripting issues

$
0
0
Hello ~

I'm working with MoopleDev, on a party quest, I'm quite new to this but I'll eventually figure it out by myself...

My NPC
Anyway here are my problems:

First of all, when I warp the party to the PQ map, (for now I'm testing it alone, so i'm lonely in my party) well, I get stuck, even if I do cm.dispose:
Code:

                else if (status == 3)
                {
                        var em = cm.getEventManager("myPQ");
                        em.setProperty("difficulty", (selection < 0 || selection > 2) ? 0 : selection);
                        em.startInstance(cm.getParty(), cm.getPlayer().getMap());
                        cm.dispose();
                }

Secondly, when I enter the map, monsters are already there, is there any way to delay the spawning in this map (the mobs are good, I just want to delay the spawn.), the best would be to make a scheduled spawn when hitting a scripted portal.

Then, when hitting the same scripted portal, I'd like to spawn a certain monster, over a reactor, but I guess I can handle this.

Then, in a Event script, is there any way to detect when someone is dropping an item (just like when someone leaves party or something.)?

And finally, on the instance map is a NPC, but he is also on many other maps, and I'm trying to get the EIM object but I fail hard... here's my code:
Code:

importPackage(Packages.scripting);
//...
        else if (status == 1)
        {
                if(isInPQ() == true) cm.getPlayer().getEventInstance().unregisterPlayer(cm.getPlayer()); // epic fail
                else cm.warp(warpback);
                cm.dispose();
        }


Thanks, nico.

[VB Code]TalesRunner Launcher

[Release]Protocol MySQL Connection.

$
0
0
Tired of mssql? yes i know.

Use this patch on your server win/linx side to get out of mssql data base.


This is the Tables needed on your Shengui table.
Spoiler:

CREATE TABLE `auth` (
`userid` int(11) NOT NULL,
`zoneid` int(11) NOT NULL,
`rid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `forbid` (
`userid` int(11) NOT NULL DEFAULT '0',
`type` int(11) NOT NULL DEFAULT '0',
`ctime` datetime NOT NULL,
`forbid_time` int(11) NOT NULL DEFAULT '0',
`reason` blob NOT NULL,
`gmroleid` int(11) DEFAULT '0',
PRIMARY KEY (`userid`,`type`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `iplimit` (
`uid` int(11) NOT NULL DEFAULT '0',
`ipaddr1` int(11) DEFAULT '0',
`ipmask1` varchar(2) DEFAULT '',
`ipaddr2` int(11) DEFAULT '0',
`ipmask2` varchar(2) DEFAULT '',
`ipaddr3` int(11) DEFAULT '0',
`ipmask3` varchar(2) DEFAULT '',
`enable` char(1) DEFAULT '',
`lockstatus` char(1) DEFAULT '',
`reason` text,
`bantime` int(11) DEFAULT NULL,
PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `online` (
`ID` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE `point` (
`uid` int(11) NOT NULL DEFAULT '0',
`aid` int(11) NOT NULL DEFAULT '0',
`time` int(11) NOT NULL DEFAULT '0',
`zoneid` int(11) DEFAULT '0',
`zonelocalid` int(11) DEFAULT '0',
`accountstart` datetime DEFAULT NULL,
`lastlogin` datetime DEFAULT NULL,
`enddate` datetime DEFAULT NULL,
PRIMARY KEY (`uid`,`aid`),
KEY `IX_point_aidzoneid` (`aid`,`zoneid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `usecashlog` (
`userid` int(11) NOT NULL DEFAULT '0',
`zoneid` int(11) NOT NULL DEFAULT '0',
`sn` int(11) NOT NULL DEFAULT '0',
`aid` int(11) NOT NULL DEFAULT '0',
`point` int(11) NOT NULL DEFAULT '0',
`cash` int(11) NOT NULL DEFAULT '0',
`status` int(11) NOT NULL DEFAULT '0',
`creatime` datetime NOT NULL,
`fintime` datetime NOT NULL,
KEY `IX_usecashlog_creatime` (`creatime`),
KEY `IX_usecashlog_uzs` (`userid`,`zoneid`,`sn`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `usecashnow` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userid` int(11) NOT NULL DEFAULT '0',
`zoneid` int(11) NOT NULL DEFAULT '0',
`sn` int(11) NOT NULL DEFAULT '0',
`aid` int(11) NOT NULL DEFAULT '0',
`point` int(11) NOT NULL DEFAULT '0',
`cash` int(11) NOT NULL DEFAULT '0',
`status` int(11) NOT NULL DEFAULT '0',
`creatime` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `IX_usecashnow_creatime` (`creatime`),
KEY `IX_usecashnow_status` (`status`)
) ENGINE=MyISAM AUTO_INCREMENT=14494 DEFAULT CHARSET=utf8;

CREATE TABLE `users` (
`ID` int(11) NOT NULL,
`name` varchar(32) NOT NULL DEFAULT '',
`Prompt` varchar(32) NOT NULL DEFAULT '',
`answer` varchar(32) NOT NULL DEFAULT '',
`truename` varchar(32) NOT NULL DEFAULT '',
`idnumber` varchar(32) NOT NULL DEFAULT '',
`email` varchar(64) NOT NULL DEFAULT '',
`mobilenumber` varchar(32) DEFAULT '',
`province` varchar(32) DEFAULT '',
`city` varchar(32) DEFAULT '',
`phonenumber` varchar(32) DEFAULT '',
`address` varchar(64) DEFAULT '',
`postalcode` varchar(8) DEFAULT '',
`gender` int(11) DEFAULT '0',
`birthday` datetime DEFAULT NULL,
`creatime` datetime NOT NULL,
`qq` varchar(32) DEFAULT '',
`passwd2` binary(16) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `IX_users_name` (`name`),
KEY `IX_users_creatime` (`creatime`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;



This is all procedure needed.
Spoiler:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `acquireuserpasswd`(in name1 VARCHAR(64), out uid1 INTEGER, out passwd1 VARCHAR(64))
BEGIN
DECLARE passwdtemp VARCHAR(64);
START TRANSACTION;
SELECT id, passwd INTO uid1, passwdtemp FROM users WHERE name = name1;
SELECT fn_varbintohexsubstring(1,passwdtemp,1,0) INTO passwd1;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `addForbid`(in userid1 INTEGER, in type1 INTEGER, in forbid_time1 INTEGER, in reason1 BINARY(255), in gmroleid1 INTEGER)
BEGIN
DECLARE rowcount INTEGER;
START TRANSACTION;
UPDATE forbid SET ctime = now(), forbid_time = forbid_time1, reason = reason1, gmroleid = gmroleid1 WHERE userid = userid1 AND type = type1;
SET rowcount = ROW_COUNT();
IF rowcount = 0 THEN
INSERT INTO forbid VALUES(userid1, type1, now(), forbid_time1, reason1, gmroleid);
END IF;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `addGM`(in userid INTEGER, in zoneid INTEGER, in gmtype char(10))
BEGIN
DECLARE x INTEGER;
START TRANSACTION;
SET x = 0;
if gmtype ='full' then
WHILE x <= 500 DO
INSERT INTO auth VALUES (userid, zoneid, x);
SET x = x + 1;
END WHILE;
else
WHILE x <= 12 DO
INSERT INTO auth VALUES (userid, zoneid, x);
SET x = x + 1;
END WHILE;
end if;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `adduser`(
in name1 VARCHAR(64),
in passwd1 VARCHAR(64),
in prompt1 VARCHAR(32),
in answer1 VARCHAR(32),
in truename1 VARCHAR(32),
in idnumber1 VARCHAR(32),
in email1 VARCHAR(32),
in mobilenumber1 VARCHAR(32),
in province1 VARCHAR(32),
in city1 VARCHAR(32),
in phonenumber1 VARCHAR(32),
in address1 VARCHAR(64),
in postalcode1 VARCHAR(8),
in gender1 INTEGER,
in birthday1 VARCHAR(32),
in qq1 VARCHAR(32),
in passwd21 VARCHAR(64)
)
BEGIN
DECLARE idtemp INTEGER;
SELECT IFNULL(MAX(id), 16) + 16 INTO idtemp FROM users;
INSERT INTO users (id,name,passwd,prompt,answer,truename,idnumber,email,mobilenumber,province,city,phonenumber,address,postalcode,gender,birthday,creatime,qq,passwd2) VALUES( idtemp, name1, passwd1, prompt1, answer1, truename1, idnumber1, email1, mobilenumber1, province1, city1, phonenumber1, address1, postalcode1, gender1, birthday1, now(), qq1, passwd21 );
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `adduserpoint`(in uid1 INTEGER, in aid1 INTEGER, in time1 INTEGER)
BEGIN
DECLARE rowcount INTEGER;
START TRANSACTION;
UPDATE point SET time = IFNULL(time,0) + time1 WHERE uid1 = uid AND aid1 = aid;
SET rowcount = ROW_COUNT();
IF rowcount = 0 THEN
INSERT INTO point (uid,aid,time) VALUES (uid1,aid1,time1);
END IF;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `addUserPriv`(in userid INTEGER, in zoneid INTEGER, in rid INTEGER)
BEGIN
START TRANSACTION;
INSERT INTO auth VALUES(userid, zoneid, rid);
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `changePasswd`(in name1 VARCHAR(64), in passwd1 VARCHAR(64))
BEGIN
START TRANSACTION;
UPDATE users SET passwd = passwd1 WHERE name = name1;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `changePasswd2`(in name1 VARCHAR(64), in passwd21 VARCHAR(64))
BEGIN
START TRANSACTION;
UPDATE users SET passwd2 = passwd21 WHERE name = name1;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `clearonlinerecords`(in zoneid1 INTEGER, in aid1 INTEGER)
BEGIN
START TRANSACTION;
UPDATE point SET zoneid = NULL, zonelocalid = NULL WHERE aid = aid1 AND zoneid = zoneid1;
DELETE FROM online;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `deleteTimeoutForbid`(in userid1 INTEGER)
BEGIN
START TRANSACTION;
DELETE FROM forbid WHERE userid = userid1 AND timestampdiff(second, ctime, now()) > forbid_time;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `delUserPriv`(in userid1 INTEGER, in zoneid1 INTEGER, in rid1 INTEGER, in deltype1 INTEGER)
BEGIN
START TRANSACTION;
IF deltype1 = 0 THEN
DELETE FROM auth WHERE userid = userid1 AND zoneid = zoneid1 AND rid = rid1;
ELSE
IF deltype1 = 1 THEN
DELETE FROM auth WHERE userid = userid1 AND zoneid = zoneid1;
ELSE
IF deltype1 = 2 THEN
DELETE FROM auth WHERE userid = userid1;
END IF;
END IF;
END IF;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `enableiplimit`(in uid1 INTEGER, in enable1 CHAR(1))
BEGIN
DECLARE rowcount INTEGER;
START TRANSACTION;
UPDATE iplimit SET enable=enable1 WHERE uid=uid1;
SET rowcount = ROW_COUNT();
IF rowcount = 0 THEN
INSERT INTO iplimit (uid,enable) VALUES (uid1,enable1);
END IF;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `lockuser`(in uid1 INTEGER, in lockstatus1 CHAR(1), in reason1 text, in bantime1 int(11),in a char(1))
BEGIN
DECLARE rowcount INTEGER;
START TRANSACTION;
UPDATE iplimit SET lockstatus=lockstatus1, reason=reason1,bantime=bantime1 WHERE uid=uid1;
SET rowcount = ROW_COUNT();
IF rowcount = 0 THEN
INSERT INTO iplimit (uid,lockstatus,enable,ipmask1,ipmask2,ipmask3,reason,bantime) VALUES (uid1,lockstatus1,'t',a,a,a,reason1,bantime1);
END IF;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `recordoffline`(in uid1 INTEGER, in aid1 INTEGER, inout zoneid1 INTEGER, inout zonelocalid1 INTEGER, inout overwrite1 INTEGER)
BEGIN
DECLARE rowcount INTEGER;
START TRANSACTION;
UPDATE point SET zoneid = NULL, zonelocalid = NULL WHERE uid = uid1 AND aid = aid1 AND zoneid = zoneid1;
DELETE FROM online WHERE ID = uid1;
SET rowcount = ROW_COUNT();
IF overwrite1 = rowcount THEN
SELECT zoneid, zonelocalid INTO zoneid1, zonelocalid1 FROM point WHERE uid = uid1 AND aid = aid1;
END IF;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `recordonline`(in uid1 INTEGER, in aid1 INTEGER, inout zoneid1 INTEGER, inout zonelocalid1 INTEGER, inout overwrite INTEGER)
BEGIN
DECLARE tmp_zoneid INTEGER;
DECLARE tmp_zonelocalid INTEGER;
DECLARE rowcount INTEGER;
START TRANSACTION;
SELECT SQL_CALC_FOUND_ROWS zoneid, zonelocalid INTO tmp_zoneid, tmp_zonelocalid FROM point WHERE uid = uid1 and aid = aid1;
INSERT INTO online (ID) VALUES (uid1);
SET rowcount = FOUND_ROWS();
IF rowcount = 0 THEN
INSERT INTO point (uid, aid, time, zoneid, zonelocalid, lastlogin) VALUES (uid1, aid1, 0, zoneid1, zonelocalid1, now());
ELSE IF tmp_zoneid IS NULL OR overwrite = 1 THEN
UPDATE point SET zoneid = zoneid1, zonelocalid = zonelocalid1, lastlogin = now() WHERE uid = uid1 AND aid = aid1;
END IF;
END IF;
IF tmp_zoneid IS NULL THEN
SET overwrite = 1;
ELSE
SET zoneid1 = tmp_zoneid;
SET zonelocalid1 = tmp_zonelocalid;
END IF;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `remaintime`(in uid1 INTEGER, in aid1 INTEGER, out remain INTEGER, out freetimeleft INTEGER)
BEGIN
DECLARE enddate1 DATETIME;
DECLARE now1 DATETIME;
DECLARE rowcount INTEGER;
START TRANSACTION;
SET now1 = now();
IF aid1 = 0 THEN
SET remain = 86313600;
SET enddate1 = date_add(now1, INTERVAL '30' DAY);
ELSE
SELECT time, IFNULL(enddate, now1) INTO remain, enddate1 FROM point WHERE uid = uid1 AND aid = aid1;
SET rowcount = ROW_COUNT();
IF rowcount = 0 THEN
SET remain = 0;
INSERT INTO point (uid,aid,time) VALUES (uid1, aid1, remain);
END IF;
END IF;
SET freetimeleft = 0;
IF enddate1 > now1 THEN
SET freetimeleft = timestampdiff(second, now1, enddate1);
END IF;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `setiplimit`(in uid1 INTEGER, in ipaddr11 INTEGER, in ipmask11 VARCHAR(2), in ipaddr21 INTEGER, in ipmask21 VARCHAR(2), in ipaddr31 INTEGER, in ipmask31 VARCHAR(2), in enable1 CHAR(1))
BEGIN
DECLARE rowcount INTEGER;
START TRANSACTION;
UPDATE iplimit SET ipaddr1 = ipaddr11, ipmask1 = ipmask11, ipaddr2 = ipaddr21, ipmask2 = ipmask21, ipaddr3 = ipaddr31, ipmask3 = ipmask31 WHERE uid = uid1;
SET rowcount = ROW_COUNT();
IF rowcount = 0 THEN
INSERT INTO iplimit (uid, ipaddr1, ipmask1, ipaddr2, ipmask2, ipaddr3, ipmask3, enable1) VALUES (uid1, ipaddr11, ipmask11, ipaddr21, ipmask21, ipaddr31, ipmask31,'t');
END IF;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `updateUserInfo`(
in name1 VARCHAR(32),
in prompt1 VARCHAR(32),
in answer1 VARCHAR(32),
in truename1 VARCHAR(32),
in idnumber1 VARCHAR(32),
in email1 VARCHAR(32),
in mobilenumber1 VARCHAR(32),
in province1 VARCHAR(32),
in city1 VARCHAR(32),
in phonenumber1 VARCHAR(32),
in address1 VARCHAR(32),
in postalcode1 VARCHAR(32),
in gender1 INTEGER,
in birthday1 VARCHAR(32),
in qq1 VARCHAR(32)
)
BEGIN
START TRANSACTION;
UPDATE users SET prompt = prompt1, answer = answer1, truename = truename1, idnumber = idnumber1, email = email1, mobilenumber = mobilenumber1, province = province1, city = city1, phonenumber = phonenumber1, address = address1, postalcode = postalcode1, gender = gender1, birthday = birthda1, qq = qq1 WHERE name = name1;
COMMIT;
END$$
DELIMITER ;

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `usecash`(
in userid1 INTEGER,
in zoneid1 INTEGER,
in sn1 INTEGER,
in aid1 INTEGER,
in point1 INTEGER,
in cash1 INTEGER,
in status1 INTEGER,
out error INTEGER
)
BEGIN
DECLARE sn_old INTEGER;
DECLARE aid_old INTEGER;
DECLARE point_old INTEGER;
DECLARE cash_old INTEGER;
DECLARE status_old INTEGER;
DECLARE createtime_old DATETIME;
DECLARE time_old INTEGER;
DECLARE need_restore INTEGER;
DECLARE exists1 INTEGER;
DECLARE rowcount INTEGER;
START TRANSACTION;
SET error = 0;
SET need_restore = 0;
SELECT SQL_CALC_FOUND_ROWS sn, aid, point, cash, status, creatime INTO sn_old, aid_old, point_old, cash_old, status_old, createtime_old FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn >= 0;
SET rowcount = FOUND_ROWS();
IF rowcount = 1 THEN
SET exists1 = 1;
ELSE
SET exists1 = 0;
END IF;
IF status1 = 0 THEN
IF exists1 = 0 THEN
SELECT aid, point INTO aid1, point1 FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn1;
SET point1 = IFNULL(point1,0);
UPDATE point SET time = time-point1 WHERE uid = userid1 AND aid = aid1 AND time >= point1;
SET rowcount = ROW_COUNT();
IF rowcount = 1 THEN
UPDATE usecashnow SET sn = 0, status = 1 WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn1;
ELSE
SET error = -8;
END IF;
END IF;
ELSE
IF status1 = 1 THEN
IF exists1 = 0 THEN
UPDATE point SET time = time-point1 WHERE uid = userid1 AND aid = aid1 AND time >= point1;
SET rowcount = ROW_COUNT();
IF rowcount = 1 THEN
INSERT INTO usecashnow (userid, zoneid, sn, aid, point, cash, status, creatime) VALUES (userid1, zoneid1, sn1, aid1, point1, cash1, status1, now());
ELSE
INSERT INTO usecashnow SELECT userid1, zoneid1, IFNULL(min(sn),0)-1, aid1, point1, cash1, 0, now() FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND 0 >= sn;
SET error = -8;
END IF;
ELSE
INSERT INTO usecashnow SELECT userid1, zoneid1, IFNULL(min(sn),0)-1, aid1, point1, cash1, 0, now() FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND 0 >= sn;
SET error = -7;
END IF;
ELSE
IF status1 = 2 THEN
IF exists1 = 1 AND status_old = 1 AND sn_old = 0 THEN
UPDATE usecashnow SET sn = sn1, status = status1 WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
ELSE
SET error = -9;
END IF;
ELSE
IF status1 = 3 THEN
IF exists1 = 1 AND status_old = 2 THEN
UPDATE usecashnow SET status = status1 WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
ELSE
SET error = -10;
END IF;
ELSE
IF status1 = 4 THEN
IF exists1 = 1 THEN
DELETE FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
INSERT INTO usecashlog (userid, zoneid, sn, aid, point, cash, status, creatime, fintime) VALUES (userid1, zoneid1, sn_old, aid_old, point_old, cash_old, status1, createtime_old, now());
END IF;
IF NOT (exists1 = 1 AND status_old = 3) THEN
SET error = -11;
END IF;
ELSE
SET error = -12;
END IF;
END IF;
END IF;
END IF;
END IF;
IF need_restore = 1 THEN
UPDATE point SET time = time+point_old WHERE uid = userid1 AND aid = aid_old;
DELETE FROM usecashnow WHERE userid = userid1 AND zoneid = zoneid1 AND sn = sn_old;
INSERT INTO usecashlog (userid, zoneid, sn, aid, point, cash, status, creatime, fintime) VALUES (userid1, zoneid1, sn_old, aid_old, point_old, cash_old, status1, createtime_old, now());
END IF;
COMMIT;
END$$
DELIMITER ;



This is all the function needed.
Spoiler:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` FUNCTION `fn_varbintohexsubstring`(fsetprefix bit,pbinin varbinary(8000),startoffset int,cbytesin int) RETURNS varchar(4000) CHARSET latin1
READS SQL DATA
BEGIN
DECLARE pstrout VARCHAR(4000);
DECLARE i int;
DECLARE firstnibble int;
DECLARE secondnibble int;
DECLARE tempint int;
DECLARE hexstring char( 16);
BEGIN
IF( pbinin IS NOT NULL) THEN
SET i= 0, cbytesin= CASE WHEN( cbytesin> 0) THEN cbytesin ELSE LENGTH( pbinin) END,
pstrout= CASE WHEN( fsetprefix= 1) THEN '0x' ELSE '' END,
hexstring= '0123456789abcdef';
IF((( cbytesin * 2) + 2> 4000) or( startoffset< 1)) THEN
RETURN NULL;
END IF;
WHILE( i< cbytesin) DO
SET tempint= ASCII( substring( pbinin, i + startoffset, 1));
SET firstnibble= TRUNCATE((tempint / 16),0);
SET secondnibble= tempint % 16;
SET pstrout= CONCAT(pstrout ,cast( substring( hexstring,( firstnibble+1), 1) AS CHAR), cast( substring( hexstring,( secondnibble+1), 1) AS CHAR));
SET i= i + 1;
END WHILE;
RETURN pstrout;
END IF;
RETURN NULL;
END;
END$$
DELIMITER ;



How to configure.

Copy into your centos the auth from downloaded file and give permission 0777
Configure only the ip
where win ip = windows ip
where linux ip = centos ip

Save and run the boi from centos and wait till load.
and after just open the cmd for auth at windows.

Registering new acc
Spoiler:

Your php register Should be
$login = strtolower(trim($login));
$password = strtolower(trim($password));
$Salt = $login.$password;
$Salt = md5($Salt);
$Salt = "0x".$Salt;
date_default_timezone_set('UTC');

$msquery4 = "Insert into users (id,name,passwd) Values ($Num, '{$login}', {$Salt})";
mysql_query($msquery4);



let me know if you had any problem on installation, ill help you. =)
Viewing all 23897 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>