Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

All Source Codes Here

Status
Not open for further replies.
Junior Spellweaver
Joined
Oct 17, 2007
Messages
140
Reaction score
9
/post source code
Code:
void DataSendAll(unsigned char* Packet, int Length)
{
    for (int i=6400; i<7400; i++)
        if(gObjIsConnected(i))
            DataSend(i, Packet, Length);
}

void SendPost(int wId, LPCSTR Command, LPCSTR Text)
{
    if (!IsPost) return;
    if (!gObjIsConnected(wId)) return;
    if (!strcmpi(Command, "/Post"))
    {
        MessageOutput(wId, "[%s] Useage: /Post <Msg>.", szPrefix);
        MessageOutput(wId, "[%s] Price for post: %d, Minimun Level: %d", szPrefix, PostCost, PostLevel);
        return;
    }
    gObj_SetInfo(wId);
    if (gObj.Level < PostLevel)
    {
        MessageOutput(wId, "[%s] You're level is too low to post!", szPrefix);
        return;
    }
    if (gObj.Money < PostCost) 
    {
        MessageOutput(wId, "[%s] You don't have enough money to post!", szPrefix);
        return;
    }
    BYTE *Packet;
    char Message[100];
    Packet = (BYTE*) malloc(200);
    memset(Packet, 0x00, 200);
    *Packet = 0xC1;
    *(Packet+2) = 0x00;
    memcpy((Packet+3), gObj.Nick, strlen(gObj.Nick));
    sprintf(Message, "@@[Global] %s", Text);
    memcpy((Packet+13), Message, strlen(Message));
    int Len = (strlen(Message) + 0x13);
    *(Packet+1) = Len;
    DataSendAll(Packet, Len);
    int Amount = (gObj.Money - PostCost);
    gObj_Write(wId, gObj_Money, Amount);
    MoneySend(wId, Amount);
    free (Packet);
/add command source code
Code:
void AddStats(int aIndex)
{
    if (!IsAddCmd) return;
    cObj->Init(aIndex);
    if (!strcmpi(Message, "/add"))
    {
        MessageOutput(aIndex, "Useage: /add <Type> <Amount>");
        MessageOutput(aIndex, "The price for Add is: %d, Maximum stats: %d", AddPrice, AddMax);
        return;
    }
    if (cObj->Money < AddPrice)
    {
        MessageOutput(aIndex, "You are lacking zen! %d", AddPrice - cObj->Money);
        return;
    }
    char Param1[100];
    memset(Param1, 0x00, 100);
    GetParam(1, Message, Param1);
    int AddType = 0;
    if (!strcmpi(Param1, "str")) AddType = 0xB8;
    if (!strcmpi(Param1, "agi")) AddType = 0xBA;
    if (!strcmpi(Param1, "vit")) AddType = 0xBC;
    if (!strcmpi(Param1, "eng")) AddType = 0xBE;
    if (!strcmpi(Param1, "cmd")) AddType = 0xD8;
    if (!AddType)
    {
        MessageOutput(aIndex, "You have selected wrong type! The types are: str, agi, vit, eng, cmd");
        return;
    }
    if (cObj->Class != 4 && AddType == 0xD8)
    {
        MessageOutput(aIndex, "Only Dark Lords can use the add cmd type.");
        return;
    }
    char Param2[100];
    memset(Param2, 0x00, 100);
    GetParam(2, Message, Param2);
    int StatsToAdd = atoi(Param2);
    if (cObj->LvlUpPoints < StatsToAdd)
    {
        MessageOutput(aIndex, "You are lacking level up points! %d", StatsToAdd - cObj->LvlUpPoints);
        return;
    }
    int NowStats = cObj->GetWord(AddType);
    if ((StatsToAdd + NowStats) > AddMax)
    {
        MessageOutput(aIndex, "You are not allowed to add more than %d points!", AddMax);
        return;
    }
    BYTE Packet[5] = {0xC1, 0x05, 0x0F3, 0x06};
    Packet[4] = ((AddType % 16) ^ 8) / 2; // Nice algorithm by coNsept to convert from gObj Offsets to the add types :P
    if (AddType == 0xD8) Packet[4] = 0x04;
    if (StatsToAdd <= 100)
        for (int i=0; i<StatsToAdd; i++)
            CGLevelUpPointAdd(Packet, aIndex);
    else
    {
        int Amount = (cObj->LvlUpPoints - StatsToAdd - 1);
        cObj->SetInt(0xA4, Amount);
        cObj->AddInt(AddType, StatsToAdd - 1);
        CGLevelUpPointAdd(Packet, aIndex);
    }
    cObj->SetInt(0xB4, cObj->Money - AddPrice);
    CGMoneySend(aIndex, cObj->Money - AddPrice);
    cObj->Init(aIndex);
    MessageOutput(aIndex, "You've added %d points. You have now %d points left.", StatsToAdd, cObj->LvlUpPoints);
    if (StatsToAdd > 100)
        MessageOutput(aIndex, "Please relog and your stats will be updated.");
PK Clear Guard source code
Code:
void PKClearGuard(int aIndex)
{
    if (!PKClear_Active) return;
    if (!gObjIsConnected(aIndex)) return;
    lpObj->Init(aIndex);
    int Price = PKClear_Price * (lpObj->PKLevel - 3);
    if (lpObj->PKLevel < 4)
    {
        Send->PM(aIndex, "[PK Clear] You are already a commoner!");
        return;
    }
    if (lpObj->Money < Price)
    {
        Send->PM(aIndex, "[PK Clear] You don't have enough money! Lacking %d.", Price - lpObj->Money);
        return;
    }
    int Amount = lpObj->Money - Price;
    lpObj->SetInt(0xB4, Amount);
    GCMoneySend(aIndex, Amount);
    lpObj->SetInt(0x101, 3);
    GCPKLevelSend(aIndex, 3);
    Send->PM(aIndex, "[PK Clear] You are a commoner again! %d Zen left.", Amount);
    GCFireWorkSend(aIndex, lpObj->PosX, lpObj->PosY, 1);
Part of Protocol Core hook:
Code:
  switch (mobObj->Class)
    {
        case 249:
            PKClearGuard(aIndex);
            break;
/make command source code
Code:
void UseMakeCommand(DWORD gObjId, char * msg)
{
    if(strlen(msg) < 18)
    {
        return;
    }

    int spaces = 0;
    for(int i=0; i < strlen(msg); i++)
    {
        if(msg[i] == ' ')
            spaces++;
    }
    if(spaces < 7)
        return;

    if(IsObjectGM(gObjId) == false)
    {
        return;
    }

    char * PosA;
    PosA = strchr( msg , ' ' );

    char * PosB;
    PosB = strchr( PosA+1 , ' ' );

    char * PosC;
    PosC = strchr( PosB+1 , ' ' );

    char * PosD;
    PosD = strchr( PosC+1 , ' ' );

    int ItemType, ItemNr, ItemLevel;
    if(*(PosA+2) != ' ')
    {
        ItemType = (int)(*(PosA+1) - 48) * 10 + (int)(*(PosA+2) - 48);
    }
    else
    {
        ItemType = (*(PosA+1)) - 48;
    }

    if(*(PosB+2) != ' ')
    {
        ItemNr = (int)(*(PosB+1) - 48) * 10 + (int)(*(PosB+2) - 48);
    }
    else
    {
        ItemNr = (*(PosB+1)) - 48;
    }

    if(*(PosC+2) != ' ')
    {
        ItemLevel = (int)(*(PosC+1) - 48) * 10 + (int)(*(PosC+2) - 48);
    }
    else
    {
        ItemLevel = (*(PosC+1)) - 48;
    }

    int ItemSkill = (*(PosD+1)) - 48;
    int ItemLuck = (*(PosD+3)) - 48;
    int ItemOpt = (*(PosD+5)) - 48;
    int ItemExc = (*(PosD+7)) - 48;


    DWORD Item = ItemType * 512 + ItemNr;

    InvItemCreate ( gObjId , GetObjectMap(gObjId) , GetObjectPosX(gObjId) , GetObjectPosY(gObjId) , Item , ItemLevel , 0 ,ItemSkill , ItemLuck, ItemOpt , -1 , ItemExc , 0 );
    GCServerMsgStringSend("[Make]: You have made an item.", gObjId, 1);
Sky Event Source code
Code:
 .386
.Model flat, StdCall
Option CaseMap:none
Include    \masm32\include\windows.inc
Include    \masm32\include\user32.inc
Include    \masm32\include\kernel32.inc
Include    \masm32\include\masm32.inc
IncludeLib    \masm32\lib\user32.lib
IncludeLib    \masm32\lib\kernel32.lib
IncludeLib    \masm32\lib\masm32.lib

TimePassed Proto :DWord, :DWord, :DWord, :DWord
StartEvent Proto :DWord, :DWord, :DWord, :DWord
Monster Proto :DWord, :DWord, :DWord, :DWord
Monster2 Proto :DWord, :DWord, :DWord, :DWord
Monster3 Proto :DWord, :DWord, :DWord, :DWord
EventOff Proto :DWord, :DWord, :DWord, :DWord
MensajeEvento Proto :DWord, :DWord, :DWord, :DWord

.Const
gObj Equ 658ACA8H
IDC_TIMER Equ 3
IDC_TIMER2 Equ 4
IDC_TIMER3 Equ 5
IDC_TIMER4 Equ 6
IDC_TIMER5 Equ 7
IDC_TIMER6 Equ 8
IDC_TIMER7 Equ 9
AllocSpace Equ 65000H
Buffer Equ 65000H
Buffer2 Equ 65000H
.Data
hMemory HANDLE ?
pMemory DWord ?
DataSend DD 0047DD20H
gObjTeleport DD 004E5E90H
GCServerCMD DD 00448F00H
MessageOutPut DD 004F0A80H
AllUserMsgS DD 00497C70H
MoneySend DD 0042F710H
gObjUserDie DD 004CA64BH
gObjAddMonster DD 004C4850H
gObjSetPosMonster DD 004C2E90H
gObjSetMonster DD 004C32E0H
ItemSerialCreate DD 004245A0H
PlayerIDBuf DB Buffer Dup(0)
PlayerDWSM DB Buffer2 Dup(0)
MensajeBievenida DB "Welcome to Sky Event", 0
TodaviaNoHora DB "Come back at 17:00 for enter Sky Event", 0
MensajeEventito DB "Sky Event has been Opened, you have 10 minutes for enter", 0
LimitePlayers DB "You can
 
iNewLegend , Leo123
Joined
Apr 26, 2006
Messages
296
Reaction score
81
Re: [Release]All Source Codes Here

omfg save credits?@@@@
'
/post source code = [CzF]leo123,[CzF]coNsept
/add command = [CzF]leo123,[CzF]coNsept
PK clear Guard = [CzF]coNsept
Part of PrtocolCore hok = [CzF]coNsept
/mae commad souce code = chair
Sky Event Source code = holy
Source Code of a Little New NPC = holy
Source code of Reset NPC = holy
S3 wings Mixes = f1x
s3 visual fix ( not fix it's reararch) = by lothi from lothi emu
new commands (litle control with ini) = i dont know who is it if i not right it's drakelv
full commands ( OMFG it's just dump of gs) = really dont know
death way stuff + again = kantru + quast by DeathWay
czf add maps usngasm = omfg it's by FeN$x
96addterrainresearch = i dont remmber
3rd lvl quest = i think by f1x or by deathway ( bad memory)
10016 offset = really dont know maybe holy
A small guide how to hook = dont know
monster load source ( not full sourec it's just for load maps files) = by [CzF]coNsept

BIG SORRY I'm dont right
and if my memroy warong me
save Ducking cradits
fuckin* leechers
 
Junior Spellweaver
Joined
Jun 26, 2006
Messages
178
Reaction score
12
Re: [Release]All Source Codes Here

Here's the deal folks...apparently you all can't read...I refer you to this

DaRcAntiX said:
- Do not 'release' files you have not worked on yourself.

If you have files which have not yet been released on RZ, but you did not make them, and you cannot contact the person who made them, only release those files with credits to the person/site/team responsible for the work.

This clearly states if you have not worked on the files do not post the work...its not your right or responsibility. Since all of the coders/teams responsible for the sources here can be contacted none of these should be able to be posted. As you can see this has degraded into something that it should not have been.

Draklev has stated he will not be posting anything more to RZ...which means no new CzF S3 .18 files...does that really sound worth this crap. Sounds better just to follow the rules that are posted here which means if the work ain't yours don't post it. Because let me tell you this...if we decide not to post one project that means we will not be posting any projects. We stand behind our coders 100%

CockMan...don't talk about what you don't know...the codes posted here aren't as much sobieh's as what you think...and since they were given to us that makes them ours to do with as we see fit. As for most of the fixes being coded by eRRoR...hmm lets see last time I looked, eRRoR was a CzF coder...draklev, coNsept, Leo123, all CzF coders...you see on this team we work together as a TEAM...I realize this is a new and different concept to you, but we work together and share information. Just because eRRoR wrote the original fixes, he shared them with these coders who had to adjust them and make them work for the files. Now because we are not all about "look at only me" but about the CzF team, its not mandatory that we be all about the original coder.

Now based on the fact the rules here have been broken and no credits were posted to the original sources, and no permission to post was granted...I'm reporting this thread to be modified/deleted before it digresses further into a flame thread.
 
Joined
Apr 16, 2005
Messages
2,651
Reaction score
655
Re: [Release]All Source Codes Here

Cleaned and I'm gonna allow this thread only cause zolamu posted credits.

Tho I will close it now to keep it spam free.
 
Status
Not open for further replies.
Back
Top