Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Rappelz > Rappelz Private Server
You last visited: Today at 15:14

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



need help on rappelz source code

Discussion on need help on rappelz source code within the Rappelz Private Server forum part of the Rappelz category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: May 2016
Posts: 31
Received Thanks: 20
Exclamation need help on rappelz source code


I'm trying to create an area similar to Battle Arena, but I'm facing an issue with the collision .
I can't seem to make the collision work properly, or I can't find the specific file responsible for it.

The code works fine, and the result seems correct, but it doesn't block or stop the player.
If anyone can help me, I would greatly appreciate it!



ps im using game messeg to check it :
PHP Code:
PlayerAreaManager::Instance().UpdatePlayerPosition(pClientpMsg->xpMsg->y); 
This video showcases what I need:
Attached Files
File Type: zip GameServer.zip (2.3 KB, 11 views)
chihab007 is offline  
Old 01/18/2025, 18:03   #2
 
Anothers's Avatar
 
elite*gold: 0
Join Date: Oct 2013
Posts: 128
Received Thanks: 108
Hey first look onMoveRequest in captain herlock source code
This is where move requests come from and the result is determined here.
there if( pClient->IsInBattleArena() ) look this code
You should push back to Move info and send the current coordinates or previus coordinates.
If you send the previous position to the movement information
The character will go to the position you sent.
I learned this while writing code for testing purposes, these are some of the information I know.

Have good day
Anothers is offline  
Thanks
2 Users
Old 01/18/2025, 23:05   #3
 
elite*gold: 0
Join Date: May 2016
Posts: 31
Received Thanks: 20
Quote:
Originally Posted by Anothers View Post
Hey first look onMoveRequest in captain herlock source code
This is where move requests come from and the result is determined here.
there if( pClient->IsInBattleArena() ) look this code
You should push back to Move info and send the current coordinates or previus coordinates.
If you send the previous position to the movement information
The character will go to the position you sent.
I learned this while writing code for testing purposes, these are some of the information I know.

Have good day
-------------------
tyyyyyyyyyyyyyyyyyyyy its work
-------------------------------
if any one want fix for it this is the full fix()
------------------------------------------------
PHP Code:
void PlayerAreaManager::UpdatePlayerPosition(StructPlayerplayerint xint y)
{
    
Position newPlayerPos = { x};

    
// تحقق إذا كان اللاعب داخل المنطقة المحظورة
    
bool isInCustomArea IsPointIncludedCCW(customAreaVertices4newPlayerPos);

    if (
isInCustomArea) {
        
// إذا كان داخل المنطقة المحظورة، قم بإرجاعه إلى الموقع السابق
        
Position lastValidPos = { player->GetX(), player->GetY() };

        
// تأكد من أن اللاعب ليس في نفس المكان الذي كان فيه من قبل
        
if (lastValidPos.== && lastValidPos.== y) {
            
// إذا كانت الحركة نفسها، لا تفعل أي شيء
            
return;
        }

        
player->ChangeLocation(lastValidPos.xlastValidPos.y);

        
// إرسال رسالة رفض
        
SendResult(playerTM_CS_MOVE_REQUESTRESULT_ACCESS_DENIED);

        
// استعراض النتيجة في السجل
        
_cprint("Player position reverted: Access denied to restricted area.");

        
// هنا يتم منع أي تحرك آخر داخل المنطقة المحظورة
        
return;
    }

    
// إذا كان خارج المنطقة المحظورة، قم بتحديث الموقع
    
player->ChangeLocation(xy);

--------------------------------
onmovereq
-------------------------------
PHP Code:
    if (PlayerAreaManager::Instance().IsBlocked(playerPos)) {
        
// إذا كان في منطقة محظورة، قم بإرجاعه إلى الموقع السابق
        
ArPosition curPos pClient->GetCurrentPosition(GetArTime());
        
pClient->ChangeLocation(curPos.xcurPos.y);

        
// أعد تعبئة معلومات الحركة بالموقع السابق
        
std::vector<ArPositionvMoveInfo;
        
vMoveInfo.push_back(curPos);

        
// أرسل النتيجة مع الموقع السابق
        
ArcadiaServer::Instance().SetMultipleMove(pClientcurPosvMoveInfopClient->GetRealMoveSpeed(), trueGetArTime());
        
SendResult(pClientpMsg->idRESULT_ACCESS_DENIED);

        
_cprint("Movement denied: Player is in restricted area.");
        return;
    } 
chihab007 is offline  
Reply


Similar Threads Similar Threads
Deli Rappelz, Rappelz Private Server, Türkçe Rappelz Private Server, Rappelz Deli
03/10/2014 - Rappelz Private Server - 2 Replies
Merhaba kardeşlerim, deli rappelz açıldı. Oyundan kısaca bahsedersek oyun 7.4 versiyonlu muhteşem bi oyundur. Herkeze tavsiye edebilirim - Oyunda sadece oyuncuyum sizleride oyunda görürsek daha mutlu oluruz. Oyun 24 saat açıktır istediğiniz zaman girer oynarsınız. ######### Oyun özellikleri ######### x60 Drop özelliği (1 Saat içerisinde 100 level olabilme imkanı.) & ne zor ne kolay tam orta derece. sıkılmayacaksınız! Volkanus (Aktif!)



All times are GMT +1. The time now is 15:15.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.