Krumelz
-
Posts
87 -
Joined
-
Last visited
Never
Content Type
Profiles
Forums
Calendar
Posts posted by Krumelz
-
-
@Zesh:
> You know that box to the left of the chat where your stats are shown, there's the two stats that start with Spcl. is that short for Special cause it normally shown as Sp. :P Anywayz…looking good so far and you have some nice features, I especially like the randomly created dungeons. Good luck to ya ;D
yes, its meant to be the Sp. Stats.
As said the layout is being worked on,
aswell as the random dungeon system as its really basic atm
thanks ;D -
Before i start, i want to say that if you are just here to say: "geez, not another pokemon online game" or "Your game wont be a success. There are way better PMD clones out there" you should leave now. I'm making this post for those who like pokemon, and are interested in playing another "PMD clone". Thanks.
I'm starting this topic 'cause the old one seems to be deleted.
Now, here's an updated version of the old post.
This game is being made by a small group of people who like pokemon, and like to make a game.
The community most likely creates the game. It's a game for people who want to play it, to have fun.
We dont aim to be the "most successfully pmd game" out there, but to have a fun, little game you could enjoy to play.
It indeed is based on Pokemon Mystery Dungeon. Though, there are some differences.
For example: PMD's party slots are limited to either 3 or 4 members, depending on their 'size'.
PDR uses 6 party slots. In any pokemon game you got 4 slots for moves. PDR uses 5.
Other than that, most of the stuff is like in PMD, or based on it.
Though, there are or will still be things like moves, status ailments and so on that you've never seen before in any other pokemon game.
Features:
>! Fully working recruitment system (including an assembly)
Evolution system
Pokemon-like stats (increase themself on level up)
Instanced Maps/Dungeons
'Randomly' Created Dungeons
Egg/Fossil system
Visual NPC chat
Healing HP by walking instead of time
Rescue Teams
Player Houses
Being worked on or being debugged:
>! Move System
Status Ailments (Sleep, Burn, Poison, ..)
Visual playermsg
Missions
HM's (Cut, Surf, Rocksmash, …)
and some more small features.
Also some will be added soon.
story:
>! work in progress.
screenshots (layout being worked on):
>! ![](http://www.freemmorpgmaker.com/files/imagehost/pics/36a11ab232b9bc667270cb17c080e399.JPG)
>! Random Dungeon:
![](http://www.freemmorpgmaker.com/files/imagehost/pics/cef23f9a9d659c78122e99a6adc55211.JPG)
>! Assembly:
![](http://www.freemmorpgmaker.com/files/imagehost/pics/982cbad241e1c2231fddcdd443a36ccc.JPG)
>! Player House:
![](http://www.freemmorpgmaker.com/files/imagehost/pics/982cbad241e1c2231fddcdd443a36ccc.JPG)
more will be added soon.
You can find the website at [pdrevolution.co.cc](http://pdrevolution.co.cc) (work in progress)
Also the forums: [pdrforums.co.cc](http://pdrforums.co.cc)
~Krumelz -
-
Hello.
I'm trying to get the Engine_BltToDC command to work.
I want to blt my 32x32 picture in my 32x32 picbox.
But as i hit the button that should start the blting nothing happens.
I put a breakpoint at the engine_bltfast command in that sub, to see if its even
being called. And it is.
I hope you guys can help me, heres my code.
```
Dim srect As RECT, drect As RECT
Frmmaingame.pictest.Cls
With drect
.Top = 0
.Bottom = Frmmaingame.pictest.height
.Left = 0
.Right = Frmmaingame.pictest.width
End With
With srect
.Top = 0
.Bottom = Frmmaingame.pictest.height
.Left = 0
.Right = Frmmaingame.pictest.width
End With
Engine_BltToDC DDS_test, srect, drect, Frmmaingame.pictest, False
```
hope you can help me.
-Krumelz -
*bump*
-
@saruish:
> the current verison. 1.5
>
> I think it showing up but it not showing up like it should. im seeing something at the very very top at first I didnt notice it but I started noticing like two something there. everytime my character moves it moves with him. but it like at the very top of the screen.
>
> it could be due to the level code I added that shows players level.
Thats odd. May you could send me the source of the subs you edited, so I can try to help you.
@Ecclestio:
> There is also another problem you should look into. Seeing as not everyone will know not to try to put spaces in their status(I.e. "/status run away"). You should make it so they are unable to do so, or find some way to allow spaces in it. Otherwise it gives a run time error and the server crashes.
>
> Also it'd be nice if it would accept capital letters as well, $UCase() or something.
Fixed both of it, just change
```
Case "/status"
If Not UBound(command) < 1 Then
Call SendCommand("status", Trim$(command(1)))
Else
Call SendCommand("status", "0")
End If
```
to
```
Dim status As String
status = Right$(ChatText, Len(ChatText) - 7)
If Not UBound(command) < 1 Then
Call SendCommand("status", status)
Else
Call SendCommand("status", "0")
End If
```
Capitals and Spaces should work now.
Any other problem? Just reply, i hope i can help ^^
~Krumelz -
which version of eclipse are you using?
-
@thezeus:
> I triple doggy dare you to do it today, lol.
Got your request done and rewrote it in 1.3.1
the problem simply was that theres no Npc Drops included in 1.3.1,
ateast i didnt find it ..
well, to get it to work simply go to Sub PlayerAttackNpc, find:
```
' Now set HP to 0 so we know to actually kill them in the server loop (this prevents subscript out of range)
```and BEFORE that add:
```
' Drop the goods if they get it
n = Int(Rnd * Npc(NpcNum).DropChance) + 1
If Npc(NpcNum).Boss = 1 Then
Call PlayerWarp(Attacker, Npc(NpcNum).BossMap, Npc(NpcNum).BossX, Npc(NpcNum).BossY)
If n = 1 Then
If FindOpenInvSlot(Attacker, Npc(NpcNum).DropItem) = 0 Then
Call SpawnItem(Npc(NpcNum).DropItem, Npc(NpcNum).DropItemValue, MapNum, Player(Attacker).x, Player(Attacker).Y)
Else
Call GiveInvItem(Attacker, Npc(NpcNum).DropItem, Npc(NpcNum).DropItemValue, True)
End If
End If
Else
If n = 1 Then
Call SpawnItem(Npc(NpcNum).DropItem, Npc(NpcNum).DropItemValue, MapNum, MapNpc(MapNum).Npc(MapNpcNum).x, MapNpc(MapNum).Npc(MapNpcNum).Y)
End If
End If
```
This should 1) include Npc drops to 1.3.1 and 2) make the Boss npc's work.
Hope it helps. ^^
~Krumelz -
For some reason my server actually stopped working ..
everything like logging in, registering etc works fine,
same with commands, chat and all that stuff.
But i actually cant move, neither do the npc's.
Tried to connect on localhost, still the same.
Tried on a fresh copy of eo 1.3.1, still doesnt work.
I'd be very thankfull if anyone could help me.
~Krumelz -
@Ecclestio:
> I have a small problem with this. When I go to load the NPC's it crashes saying someting about an "Invalid Property Value". I have looked through and everything I have is exactly as you have it. Not sure what could be causing it but it exists and I cannot find a way to fix it. Any help would be highly appreciated.
>
> ~Ecclestio
hmm .. you may have to delete your npc's in order to get this to work.
if that doesnt work run your server in debugging mode and tell me what line is highlighted.
@thezeus:
> This is not compatible with 1.3.1 correct?
nope, its not, unfortunately. Im going to rewrite it for 1.3 tho.
~Krumelz -
@Thor7:
> Will this work with parties?
>
> As in if there is a group of players in a party and fighting a boss what will happen when boss is killed? Will it warp all players in party to set location? And if so what will happen to the drops, as in will they get shared about the party members or put only in the player who killed the boss?
>
> Cheers and good tut btw :)
Didn't thought about that yet, but i'll try to add something like that.
Thanks for the Question/Suggestion. ^^
~Krumelz -
@Ecclestio:
> Nevermind, I got a blank client and installed it to that and it works great. The simple thing is I can't get it to use uppercase and lowercase instead of just lowercase. If you know how I could fix that.. it'd be great.
yea, got the same problem, working on that atm. Hope i can fix it soon. ^^ -
@Ecclestio:
> I think this is a very nice code you've got here. Only problem I've got is it shows boxes instead of the status'.
may you could post a screenie? Guess it'd be easier for me to understand your problem then. ^^ -
@erkro1:
> Looks nice, gonna test it now in EO XMAS ;)
thanks, could you tell me if it works when you're done adding the code? -
This is a tutorial for EO 1.1.0\. It may works for EO XMAS too, didnt test it though.
with this features you can add little status 'signs' next to the players name and mute some
spammer. Example Screenie:
![](http://www.freemmorpgmaker.com/files/imagehost/pics/1736b352c9b4973d9e89df8dc76c2d00.JPG)
Perhaps this is not the best way of doing it, but it works fine. Well, lets go.
Client Side
search for PlayerRec and after
```
Dir as byte
```
add
```
Status as string * 12
```
in mod enumerations before:
```
' Make sure CMSG_COUNT is below everything else
CMSG_COUNT
```
add:
```
CCommands
```
Do the same for the servers PlayerRec and Mod enumerations!!
in mod ClientTCP, at the bottom add:
```
Public Sub SendCommand(ByVal command As String, ByVal target As String)
Dim Buffer As New clsBuffer
Set Buffer = New clsBuffer
Buffer.WriteLong CCommands
Buffer.WriteString command
If target = "0" Then
Buffer.WriteLong 0
Else
Buffer.WriteLong 1
Buffer.WriteString target
End If
SendData Buffer.ToArray()
Set Buffer = Nothing
End Sub
```
next find:
```
' // Mapper Admin Commands //
' Location
Case "/loc"
```
before that add:
```
Case "/status"
If Not UBound(command) < 1 Then
Call SendCommand("status", Trim$(command(1)))
Else
Call SendCommand("status", "0")
End If
Case "/away"
If Not UBound(command) < 1 Then
Exit Sub
Else
Call SendCommand("away", "0")
End If
Case "/mute"
If Not UBound(command) < 1 Then
Call SendCommand("mute", command(1))
Else
AddText "Usage: /mute playnername", BrightRed
End If
```
find Sub DrawPlayerName
and replace the whole sub with:
```
Public Sub DrawPlayerName(ByVal index As Long)
Dim TextX As Long
Dim TextY As Long
Dim color As Long
Dim status As String
status = Trim$(Player(index).status)
' Check access level
If GetPlayerPK(index) = NO Then
Select Case GetPlayerAccess(index)
Case 0
color = RGB(255, 96, 0)
Case 1
color = QBColor(DarkGrey)
Case 2
color = QBColor(Magenta)
Case 3
color = QBColor(BrightCyan)
Case 4
color = QBColor(Blue)
Case 5
color = QBColor(Yellow)
Case Else
color = QBColor(Yellow)
End Select
Else
color = QBColor(BrightRed)
End If
If status <> "" Then
If GetPlayerSprite(index) < 1 Or GetPlayerSprite(index) > NumCharacters Then
TextX = ConvertMapX(GetPlayerX(index) * PIC_X) + Player(index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(GetPlayerName(index) & " [" & status & "]")))
TextY = ConvertMapY(GetPlayerY(index) * PIC_Y) + Player(index).YOffset - 16
Else
' Determine location for text
TextX = ConvertMapX(GetPlayerX(index) * PIC_X) + Player(index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(GetPlayerName(index) & " [" & status & "]")))
TextY = ConvertMapY(GetPlayerY(index) * PIC_Y) + Player(index).YOffset - (DDSD_Character(GetPlayerSprite(index)).lHeight) + 16
End If
Else
If GetPlayerSprite(index) < 1 Or GetPlayerSprite(index) > NumCharacters Then
TextX = ConvertMapX(GetPlayerX(index) * PIC_X) + Player(index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(GetPlayerName(index))))
TextY = ConvertMapY(GetPlayerY(index) * PIC_Y) + Player(index).YOffset - 16
Else
' Determine location for text
TextX = ConvertMapX(GetPlayerX(index) * PIC_X) + Player(index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(GetPlayerName(index))))
TextY = ConvertMapY(GetPlayerY(index) * PIC_Y) + Player(index).YOffset - (DDSD_Character(GetPlayerSprite(index)).lHeight) + 16
End If
End If
' Draw name
If status <> "" Then
Call DrawText(TexthDC, TextX, TextY, GetPlayerName(index) & " [" & status & "]", color)
Else
Call DrawText(TexthDC, TextX, TextY, GetPlayerName(index), color)
End If
End Sub
```
Now find Sub HandlePlayerInfo and after:
```
For x = 1 To Stats.Stat_Count - 1
SetPlayerStat I, x, Buffer.ReadLong
Next
```
add:
```
Player(I).status = Buffer.ReadString
```
Done client sided ^^
Server Side
If you havent added the code to mod enumerations and the PlayerRec do it now!
Mod handleData:
after:
```
HandleDataSub(CUntradeItem) = GetAddress(AddressOf HandleUntradeItem)
```
add:
```
HandleDataSub(CCommands) = GetAddress(AddressOf HandleCommands)
```
at the bottom of mod handledata add:
```
Sub HandleCommands(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Dim command As String
Dim target As String
Dim n As Long
Dim command2 As String
Dim Buffer As New clsBuffer
Set Buffer = New clsBuffer
Buffer.WriteBytes Data()
command = Buffer.ReadString
n = Buffer.ReadLong
If n = 1 Then
command2 = Buffer.ReadString
target = FindPlayer(command2)
Else
End If
Select Case command
Case "mute"
If GetPlayerAccess(index) <= 1 Then
PlayerMsg index, "Not a valid command!", BrightRed
Exit Sub
End If
If Player(target).Status <> "MUTED" Then
Player(target).Status = "MUTED"
Else
Player(target).Status = ""
End If
Call SendPlayerData(target)
Case "away"
If Player(index).Status <> "Away" Then
Player(index).Status = "Away"
Call GlobalMsg(GetPlayerName(index) & " is now away.", Yellow)
Else
Player(index).Status = ""
Call GlobalMsg(GetPlayerName(index) & " has returned from being away.", Yellow)
End If
Call SendPlayerData(index)
Case "status"
If Not Player(index).Status = "MUTED" Then
If n = 1 Then
Player(index).Status = command2
Else
Player(index).Status = ""
End If
Else
PlayerMsg index, "You are muted!", Red
End If
Call SendPlayerData(index)
Case Else
Call PlayerMsg(index, "Not a valid command!", BrightRed)
End Select
Set Buffer = Nothing
End Sub
```
in Function Playerdata, after:
```
For I = 1 To Stats.Stat_Count - 1
Buffer.WriteLong GetPlayerStat(index, I)
Next
```
add:
```
Buffer.WriteString Player(index).Status
```
almost done, now to make the mute actually work..
in Sub HandleSayMsg, before:
```
Call AddLog("Map #" & GetPlayerMap(index) & ": " & GetPlayerName(index) & " says, '" & msg & "'", PLAYER_LOG)
```
add:
```
If Player(index).Status = "MUTED" Then
Call PlayerMsg(index, "You are muted!", BrightRed)
Exit Sub
End If
```
add the same in mod HandleEmoteMsg before:
```
Call AddLog("Map #" & GetPlayerMap(index) & ": " & GetPlayerName(index) & " " & msg, PLAYER_LOG)
```
in Sub HandleBroadcastMsg before:
```
s = "[Global]" & GetPlayerName(index) & ": " & msg
```
and in Sub HandlePlayerMsg before:
```
' Check if they are trying to talk to themselves
```
Hope I didnt miss anything and it works, if it doesnt just reply. No credits needed.
Hope you like it ~ Krumelz -
@Taco:
> Hey, schönes Skript und ne gute Idee :)
danke ;D
There was a little bug, it only warped you when you got the item, just change
```
' Drop the goods if they get it
n = Int(Rnd * Npc(NpcNum).DropChance) + 1
If n = 1 Then
If Npc(NpcNum).Boss = 1 Then
Call PlayerWarp(Attacker, Npc(NpcNum).BossMap, Npc(NpcNum).BossX, Npc(NpcNum).BossY)
If FindOpenInvSlot(Attacker, Npc(NpcNum).DropItem) = 0 Then
Call SpawnItem(Npc(NpcNum).DropItem, Npc(NpcNum).DropItemValue, MapNum, Player(Attacker).X, Player(Attacker).Y)
Else
Call GiveInvItem(Attacker, Npc(NpcNum).DropItem, Npc(NpcNum).DropItemValue, True)
End If
Else
Call SpawnItem(Npc(NpcNum).DropItem, Npc(NpcNum).DropItemValue, MapNum, MapNpc(MapNum).Npc(MapNpcNum).X, MapNpc(MapNum).Npc(MapNpcNum).Y)
End If
End If
```
to:
```
' Drop the goods if they get it
n = Int(Rnd * Npc(NpcNum).DropChance) + 1
If Npc(NpcNum).Boss = 1 Then
Call PlayerWarp(Attacker, Npc(NpcNum).BossMap, Npc(NpcNum).BossX, Npc(NpcNum).BossY)
If n = 1 Then
If FindOpenInvSlot(Attacker, Npc(NpcNum).DropItem) = 0 Then
Call SpawnItem(Npc(NpcNum).DropItem, Npc(NpcNum).DropItemValue, MapNum, Player(Attacker).x, Player(Attacker).Y)
Else
Call GiveInvItem(Attacker, Npc(NpcNum).DropItem, Npc(NpcNum).DropItemValue, True)
End If
End If
Else
If n = 1 Then
Call SpawnItem(Npc(NpcNum).DropItem, Npc(NpcNum).DropItemValue, MapNum, MapNpc(MapNum).Npc(MapNpcNum).x, MapNpc(MapNum).Npc(MapNpcNum).Y)
End If
End If
```
Now it should work without any bugs. ^^ -
@adr990:
> Woah, really impressive! :)
> Nice code, I like it.
>
> Works on EO (CE) 1.2.0 with just a little addition without problems here.
>
> I'll study this code, thanks for making this tutorial.
>
> Adr990
@Chuchoide:
> Nice, will add soon.
thanks, glad you like it. ^^ -
Well, i gave my friend a copy of my client so he can play it, he installed the library files, then started the game .exe.
But as soon as frmmain was loading EO wasnt responding and he had to close it ..
We tried to reinstall the library files but it still doesnt work.
For me everything's working, but not for him.
would be nicee if someone could help.
~Krumelz -
[http://www.touchofdeathforums.com/smf/index.php/topic,67213.0.html](http://www.touchofdeathforums.com/smf/index.php/topic,67213.0.html)
Hope thats what you're looking for… -
reopened!
–- -
@DshWinchester:
> try this then
>
> before end select
>
> put
>
> case 5
> color = QBColor(White)
>
> man,4 access is too much and you wanna more :cheesy:
yea, well, my staff wants more xD
anyway, i fixed it, you gotta change it
in Private Sub HandleSayMsg, not DrawPlayerName.
thanks for your help, topic will be locked. ^^
~Krumelz -
well, my Select case GetPlayerAccess looks like this now:
```
Select Case GetPlayerAccess(Index)
Case 0
color = RGB(255, 96, 0)
Case 1
color = QBColor(DarkGrey)
Case 2
color = QBColor(Cyan)
Case 3
color = QBColor(BrightGreen)
Case 4
color = QBColor(Yellow)
Case Else
color = QBColor(White)
End Select
```
but it still wont work =/ -
So, i'd like to know what sub i gotta edit so when i add a new admin class the name shows up properly in the textbox,
cause my Admin/owner class is now set to 5, and it wont show the name, just a part black and after that the message.
If you dont understand what i mean heres a screenie:
![](http://www.freemmorpgmaker.com/files/imagehost/pics/72acee3cee6d26f0dcd4f33301a72e16.JPG)
The black part i marked red should say "[Map]Domeh:",
would be nice if someone could tell me what i have to change so it shows up properly again.
and pls excuse m y bad english.
~Krumelz -
Yea. =/
More details:
I get a subscript error '9': Out of range.
It highlights```
n = UBound(Class(I).MaleSprite)
```The sub sendclasses looks exactly the same as
the one in a vanilla copy of EO,
the odd part is, again, that i only get this error when using
my edited version..
Piece Of Code Not Working
in Off Topic
Posted
> Hey, this is me again, with a stupid non-working piece of code.
>
> TextBox2.Text = "Signed In As" + My.Settings.Username
>
> Does not work, when I'm told it should. Any ideas? This is visual basic 2010.
try:
```
TextBox2.Text = "Signed In As" & My.Settings.Username
```