Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Vips Groups | fix issue: #730 #908

Merged
merged 13 commits into from
Oct 6, 2024
Merged
70 changes: 44 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ Beyond of it's flexibility with scripts, otclient comes with tons of other featu
- ThingCategoryCreature
- ThingExternalTexture: are images in Png | Apng

- [Wiki](https://github.com/Nottinghster/otclient/wiki/Wiki-Attached-Effects)
- [Wiki](https://github.com/mehah/otclient/wiki/Tutorial-Attached-Effects)

- Example Code:
(code sample: [effects.lua](https://github.com/mehah/otclient/blob/main/modules/game_attachedeffects/effects.lua), [code test](https://github.com/mehah/otclient/blob/main/modules/game_attachedeffects/attachedeffects.lua#L1))
Expand All @@ -176,7 +176,7 @@ Beyond of it's flexibility with scripts, otclient comes with tons of other featu

| <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Picture/Attached%20Effect/Creature/001_Bone.gif?raw=true" width="200" alt="Haskanoid Video" style="max-width:200px;"> | <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Picture/Attached%20Effect/Creature/002_aura.gif?raw=true" width="200" alt="Peoplemon by Alex Stuart" style="max-width: 200px;"> | <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Picture/Attached%20Effect/Creature/003_particula.gif?raw=true" width="250" alt="Space Invaders" style="max-width: 250px;"> |
|-------------------------------------------|---------------|-------------------------|
| Creature Attached Effect | Light Attached Effect | Creature Particule |
| ThingCategory Attached Effect | Texture(Png) Attached Effect | <center> Particule </center> |


- Floor Shadowing
Expand All @@ -194,7 +194,7 @@ Beyond of it's flexibility with scripts, otclient comes with tons of other featu

</details>

- Client 12.85 ~ 12.92, 13.00 ~ 13.32 support (protobuf)
- Client 12.85 ~ 12.92, 13.00 ~ 13.40 support (protobuf)
- Market has been rewritten to work only [Canary](https://github.com/opentibiabr/canary)
- Async Texture Loading
- <details>
Expand Down Expand Up @@ -237,7 +237,7 @@ Beyond of it's flexibility with scripts, otclient comes with tons of other featu
</details>

- Drawpool 3
- Tile Widget [Wiki](https://github.com/mehah/otclient/wiki)
- Tile Widget [Wiki](https://github.com/mehah/otclient/wiki/Tutorial-Attached-Effects)

| <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Picture/Attached%20Effect/Tile/001_attachedeffect.gif?raw=true" width="250" alt="Haskanoid Video" style="max-width:250px;"> | <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Picture/Attached%20Effect/Tile/002_widget.png?raw=true" width="200" alt="Peoplemon by Alex Stuart" style="max-width: 200px;"> | <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/raw/main/Picture/Attached%20Effect/Tile/003_particulas.gif?raw=true" width="310" alt="Space Invaders" style="max-width: 310px;"> |
|-------------------------------------------|---------------|-------------------------|
Expand All @@ -256,7 +256,13 @@ Beyond of it's flexibility with scripts, otclient comes with tons of other featu
- [Blessing](https://github.com/mehah/otclient/pull/825)
</details>

- Support DirectX

- <details>
<summary>Garbage Collection </summary>
<br>
Garbage collector is used to check what is no longer being used and remove it from memory. (lua, texture, drawpool, thingtype)
</details>



Expand Down Expand Up @@ -421,33 +427,45 @@ Beyond of it's flexibility with scripts, otclient comes with tons of other featu

| <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Picture/Layout%2013/001_interface.png?raw=true" width="300" alt="Haskanoid Video" style="max-width:300px;"> | <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Picture/Layout%2013/002_ingame.png?raw=true" width="300" alt="Peoplemon by Alex Stuart" style="max-width: 300px;"> |
|-------------------------------------------|---------------|
| Interface. | In-game |
- blessing
|<center> Interface </center> | <center>In-game</center> |
- Imbuement tracker by [@Reyaleman](https://github.com/reyaleman)
- Blessing
- Screenshot
- highscores
- Store
- Cyclopedia
- Highscores
- Store (compatible with 13.32 - 13.40)
- QuickLoot
- Groups Vip

- <details>
<summary>Browser Client by @OTArchive</summary>

- by [@OTArchive](https://github.com/OTArchive)
- wiki: https://github.com/OTArchive/otclient-web/wiki/Guia-%E2%80%90-OTClient-Redemption-Web
- <video src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Wiki/2024-09-27_19-50-58.mp4?raw=true" width="400" controls></video>

</details>

##### 💸 Sponsored (Features)
- Bot V8 | ([@luanluciano93](https://github.com/luanluciano93), [@SkullzOTS](https://github.com/SkullzOTS), [@kokekanon](https://github.com/kokekanon), [@FranciskoKing](https://github.com/FranciskoKing), [@Kizuno18](https://github.com/Kizuno18))
- Bot V8 ([@luanluciano93](https://github.com/luanluciano93), [@SkullzOTS](https://github.com/SkullzOTS), [@kokekanon](https://github.com/kokekanon), [@FranciskoKing](https://github.com/FranciskoKing), [@Kizuno18](https://github.com/Kizuno18))
- Is adapted in 85%
- To enable it, it is necessary to remove/off the BOT_PROTECTION flag.
- [VS Solution](https://github.com/mehah/otclient/blob/68e4e1b94c2041bd235441244156e6477058250c/vc17/settings.props#L9) / [CMAKE](https://github.com/mehah/otclient/blob/68e4e1b94c2041bd235441244156e6477058250c/src/CMakeLists.txt#L13)

- Shader with Framebuffer | ([@SkullzOTS](https://github.com/SkullzOTS), [@Mryukiimaru](https://github.com/Mryukiimaru), [@JeanTheOne](https://github.com/JeanTheOne), [@KizaruHere](https://github.com/KizaruHere))
- Shader with Framebuffer ([@SkullzOTS](https://github.com/SkullzOTS), [@Mryukiimaru](https://github.com/Mryukiimaru), [@JeanTheOne](https://github.com/JeanTheOne), [@KizaruHere](https://github.com/KizaruHere))

| <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Picture/Shader/Framebuffer/001_creature.gif?raw=true" width="200" alt="Haskanoid Video" style="max-width:200px;"> | <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Picture/Shader/Framebuffer/002_items.gif?raw=true" width="200" alt="Peoplemon by Alex Stuart" style="max-width: 200px;"> | <img src="https://github.com/kokekanon/OTredemption-Picture-NODELETE/blob/main/Picture/Shader/Framebuffer/003_UICreature.gif?raw=true" width="110" alt="Space Invaders" style="max-width: 110px;"> |
|-------------------------------------------|---------------|-------------------------|
| Creature. | Items | UICreature |

| <center>Creature.</center> |<center> Items</center> |<center> UICreature </center> |

- Full Cyclopedia ([@luanluciano93](https://github.com/luanluciano93), [@kokekanon](https://github.com/kokekanon), [@MUN1Z](https://github.com/MUN1Z) ,[@qatari](https://github.com/qatari) )

##### [OTClient V8](https://github.com/OTCv8) (Features)
- Lighting System
- Floor Fading
- Path Finding
- game shop module
- game outfit module
- Module Shop
- Module Oufit
- Placeholder

## <a name="themobileproject"><img height="32" src="https://raw.githubusercontent.com/github/explore/80688e429a7d4ef2fca1e82350fe8e3517d3494d/topics/android/android.png" alt="Android"> The Mobile Project </a>
The Mobile Project
Expand Down Expand Up @@ -505,37 +523,37 @@ Have found a bug? Please create an issue in our [bug tracker](https://github.com

> \[!TIP]
>
> if using Nostalrius 7.2, Nekiro TFS-1.5-Downgrades-7.72 OR any protocol below 860 that the walking system is **stuttering**. set this to true.
https://github.com/mehah/otclient/blob/main/data/setup.otml#L21
> if using Nostalrius 7.2, Nekiro TFS-1.5-Downgrades-7.72 OR any protocol below 860 that the walking system is **stuttering**. set
[force-new-walking-formula: true](https://github.com/mehah/otclient/blob/cf7badda978de88cb3724615688e3d9da2ff4207/data/setup.otml#L21) in setup.otml
>
> In Old Protocol , if you consider that the speed of the item is too fast, modify [item-ticks-per-frame: 75](https://github.com/mehah/otclient/blob/cf7badda978de88cb3724615688e3d9da2ff4207/data/setup.otml#L32) in setup.otml

## <a name="roadmap">❤️ Roadmap</a>

| TO-DO list | Status | PR |
|----------------------- |----------------------------------- |------ |
| Android compatibility | ![](https://geps.dev/progress/50) | [Branch](https://github.com/mehah/otclient/tree/mobile-working) |
| Familiar outfit | ![](https://geps.dev/progress/30) | [#39](https://github.com/Nottinghster/otclient/pull/39) |
| wheel_of_destiny | ![](https://geps.dev/progress/1) | None |
| wheel of destiny | ![](https://geps.dev/progress/1) | None |
| Forge | ![](https://geps.dev/progress/1) | None |
| Analyzer | ![](https://geps.dev/progress/10) | [#802](https://github.com/mehah/otclient/pull/802) |
| fix Extended view new-layout | ![](https://geps.dev/progress/0) | None |
| fix: Extended view new-layout | ![](https://geps.dev/progress/0) | None |
| Sound tibia 13 | ![](https://geps.dev/progress/0) | None |

## <a name="supportprotocol">💯 Support Protocol</a>





| Protocol / version | Description | Required Feature | Compatibility |
|--------------------- |----------------------------- |----------------------------------------------------- |--------------- |
| TFS <br> (7.72) | Downgrade nekiro /<br> Nostalrius | | ✅ |
| TFS 0.4 <br> (8.6) | Fir3element | | ✅ |
| TFS 1.5 <br> (8.0 / 8.60) | Downgrade nekiro / <br>MillhioreBT | [force-new-walking-formula: true](https://github.com/kokekanon/otclient.readme/blob/readme3/data/setup.otml#L21) | ✅ |
| TFS <br> (7.72) | Downgrade nekiro /<br> Nostalrius | [force-new-walking-formula: true](https://github.com/mehah/otclient/blob/cf7badda978de88cb3724615688e3d9da2ff4207/data/setup.otml#L21) <br> [item-ticks-per-frame: 75](https://github.com/mehah/otclient/blob/cf7badda978de88cb3724615688e3d9da2ff4207/data/setup.otml#L32) | ✅ |
| TFS 0.4 <br> (8.6) | Fir3element | [item-ticks-per-frame: 75](https://github.com/mehah/otclient/blob/cf7badda978de88cb3724615688e3d9da2ff4207/data/setup.otml#L32) | ✅ |
| TFS 1.5 <br> (8.0 / 8.60) | Downgrade nekiro / <br>MillhioreBT | [force-new-walking-formula: true](https://github.com/mehah/otclient/blob/cf7badda978de88cb3724615688e3d9da2ff4207/data/setup.otml#L21) <br> [item-ticks-per-frame: 75](https://github.com/mehah/otclient/blob/cf7badda978de88cb3724615688e3d9da2ff4207/data/setup.otml#L32) | ✅ |
| TFS 1.4.2 <br> (10.98) | Release Otland | | ✅ |
| TFS 1.6 <br>(13.10) | Main repo <br> otland (2024) | [See wiki](https://github.com/mehah/otclient/wiki/Tutorial-to-Use-OTC-in-TFS-main) | ✅ |
| Canary 13.21 | OpenTibiaBr | [Assets , Enable HTTP login and port 80](https://docs.opentibiabr.com/opentibiabr/projects/otclient-redemption#how-to-connect-on-canary-with-otclient-redemption) | ✅ |
| Canary 13.32 | OpenTibiaBr | [Assets , Enable HTTP login and port 80](https://docs.opentibiabr.com/opentibiabr/projects/otclient-redemption#how-to-connect-on-canary-with-otclient-redemption) | ✅ |
| Canary 13.40 | OpenTibiaBr | | ✅ |
| Canary 13.40 | OpenTibiaBr | [Assets , Enable HTTP login and port 80](https://docs.opentibiabr.com/opentibiabr/projects/otclient-redemption#how-to-connect-on-canary-with-otclient-redemption) | ✅ |




Expand Down
Binary file modified data/images/topbuttons/viplist.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added data/images/ui/miniborder.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 52 additions & 0 deletions modules/game_viplist/addgroup.otui
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
MainWindow
size: 360 121
text: Add VIP group (User-Created groups left: %s)
text-offset: 0 1
@onEnter: modules.game_viplist.addGroup()
@onEscape: |
self:getParent():destroy()
modules.game_viplist.addGroupWindow = nil

Label
id: header
!text: tr('Please enter a group name:')
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
text-auto-resize: true
margin-top: -7
margin-left: -1

TextEdit
id: name
size: 328 16
anchors.top: prev.bottom
anchors.left: parent.left
anchors.right: parent.right
margin-top: 5
padding-top: 0
max-length: 40

HorizontalSeparator
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: next.top
margin-bottom: 11

Button
id: okButton
!text: tr('Ok')
anchors.right: next.left
anchors.bottom: parent.bottom
margin-right: 11
margin-bottom: 6
@onClick: modules.game_viplist.addGroup()

Button
!text: tr('Cancel')
anchors.right: parent.right
anchors.bottom: parent.bottom
margin-bottom: 6
@onClick: |
self:getParent():destroy()
modules.game_viplist.addGroupWindow = nil
126 changes: 120 additions & 6 deletions modules/game_viplist/editvip.otui
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
VipGroupBox < CheckBox
!text: tr('Empty')
color: #f4ecec
text-offset: 15 -1
$hover !disabled:
color: #9a9999

IconButton < CheckBox
size: 20 20
image-source: /images/game/viplist/vipcheckbox
Expand Down Expand Up @@ -27,7 +34,7 @@ IconButton < CheckBox

MainWindow
size: 272 170
!text: tr('Edit VIP list entry')
!text: tr('Edit VIP')

Label
id: nameLabel
Expand All @@ -36,35 +43,56 @@ MainWindow
anchors.left: parent.left
color: green
width: 180

HorizontalSeparator
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: prev.bottom
margin-bottom: -5
Label
!text: tr('Description') .. ':'
anchors.top: prev.bottom
anchors.left: parent.left
text-offset: 0 3
height: 20
margin-top: 5

@onSetup: |
if g_game.getFeature(GameVipGroups) then
self:hide()
self:setHeight(0)
end
TextEdit
id: descriptionText
anchors.top: prev.top
anchors.left: prev.right
anchors.right: parent.right
margin: 0 5

@onSetup: |
if g_game.getFeature(GameVipGroups) then
self:hide()
self:setHeight(0)
end
Label
!text: tr('Notify-Login') .. ':'
anchors.top: prev.bottom
anchors.left: parent.left
text-offset: 0 3
height: 20
margin-top: 5

@onSetup: |
if g_game.getFeature(GameVipGroups) then
self:hide()
self:setHeight(0)
end
CheckBox
id: checkBoxNotify
anchors.top: prev.top
anchors.left: prev.right
margin: 2 6
@onSetup: |
if g_game.getFeature(GameVipGroups) then
self:hide()
self:setHeight(0)
end

UIWidget
layout: horizontalBox
Expand Down Expand Up @@ -115,12 +143,98 @@ MainWindow
IconButton
id: icon10
icon-clip: 120 0 12 12

Label
text: Enter a short description:
anchors.top: prev.bottom
anchors.left: parent.left
margin-left: -1
margin-top: 10
text-auto-resize: true
@onSetup: |
if not g_game.getFeature(GameVipGroups) then
self:hide()
end

TextEdit
id: descriptionText
anchors.top: prev.bottom
anchors.left: prev.left
anchors.right: parent.right
height: 50
margin-top: 5
margin-left: 1
multiline: true
text-wrap: true
@onSetup: |
if not g_game.getFeature(GameVipGroups) then
self:hide()
end
SmallReversedQtPanel
size: 244 22
anchors.top: prev.bottom
anchors.left: prev.left
anchors.right: parent.right
margin-top: 11
@onSetup: |
if not g_game.getFeature(GameVipGroups) then
self:hide()
end
OptionCheckBox
id: checkBoxNotify
!text: tr('Notify on login')
anchors.left: parent.left
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
text-auto-resize: true


HorizontalSeparator
anchors.left: parent.left
anchors.right: parent.right
anchors.top: prev.bottom
margin-top: 11
@onSetup: |
if not g_game.getFeature(GameVipGroups) then
self:hide()
end
Label
!text: tr('Member of the following groups:')
anchors.left: parent.left
anchors.right: parent.right
anchors.top: prev.bottom
margin-top: 10
margin-left: -1
text-auto-resize: true
@onSetup: |
if not g_game.getFeature(GameVipGroups) then
self:hide()
end
Panel
id: groups
width: 253

anchors.left: parent.left
anchors.right: parent.right
anchors.top: prev.bottom
anchors.bottom: next.top
margin-top: 6
margin-bottom: 11
@onSetup: |
if not g_game.getFeature(GameVipGroups) then
self:hide()
end
layout:
type: grid
cell-spacing: 3
cell-size: 241 12
num-columns: 1

HorizontalSeparator
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: next.top
margin-bottom: 10
margin-bottom: 5

Button
id: buttonOK
Expand Down
Loading
Loading