[Ajuda] RNPC + MapAndreas..
#1

Quando coloco no OnGameModeInit MapAndreas_Init(2); compila de boa...
Porem, quando vou ligar o server (logo apуs dos bots carregarem) o samp server fecha e nгo da nenhum erro no Server Log.. Quando ligo sem NPC o server liga de boa.. Oque pode ser?
Reply
#2

https://sampforum.blast.hk/showthread.php?tid=262796
Reply
#3

Ta dando crash por causa da funзгo MapAndreas_FindZ_For2DCoord oque pode ser??

pawn Код:
public OnPlayerUpdate(playerid) {
    if(IsPlayerNPC(playerid)) {
        new Float: p[3];
        GetPlayerPos(playerid,p[0],p[1],p[2]);
        new Float:z;
        MapAndreas_FindZ_For2DCoord(p[0],p[1], z);

        if(p[2] > z) {
            SetPlayerFindPosZ(playerid,p[0],p[1]);
        }
    }
    return 1;
}

stock SetPlayerFindPosZ(playerid, Float:x, Float:y) {
    new Float:z;
    MapAndreas_FindZ_For2DCoord(x, y, z);
    SetPlayerPos(playerid, x, y, z);
}
Reply
#4

Quote:
Originally Posted by HumildadeAgain
Посмотреть сообщение
Ta dando crash por causa da funзгo MapAndreas_FindZ_For2DCoord oque pode ser??

pawn Код:
public OnPlayerUpdate(playerid) {
    if(IsPlayerNPC(playerid)) {
        new Float: p[3];
        GetPlayerPos(playerid,p[0],p[1],p[2]);
        new Float:z;
        MapAndreas_FindZ_For2DCoord(p[0],p[1], z);

        if(p[2] > z) {
            SetPlayerFindPosZ(playerid,p[0],p[1]);
        }
    }
    return 1;
}

stock SetPlayerFindPosZ(playerid, Float:x, Float:y) {
    new Float:z;
    MapAndreas_FindZ_For2DCoord(x, y, z);
    SetPlayerPos(playerid, x, y, z);
}
Usa crashdetector.

1є Pode ser por causa do RAM que ele usa.
2є Vocк fez algo mal no cуdigo.
Reply
#5

Quote:
Originally Posted by BlueX
Посмотреть сообщение
Usa crashdetector.

1є Pode ser por causa do RAM que ele usa.
2є Vocк fez algo mal no cуdigo.
crashdetector:
Код:
[12:40:14] [debug] AMX backtrace:
[12:40:14] [debug] #0 native MapAndreas_FindZ_For2DCoord () [10011299] from RNPC.dll
[12:40:14] [debug] #1 00000d84 in public OnPlayerUpdate () from personalizado.amx
[12:40:14] [debug] System backtrace:
[12:40:14] [debug] #0 10014028 in ?? () from C:\Documents and Settings\Administrador\Desktop\Servidor 0.3x\plugins\RNPC.dll
[12:40:14] [debug] #1 004010b6 in ?? () from C:\Documents and Settings\Administrador\Desktop\Servidor 0.3x\samp-server.exe
[12:40:14] [debug] #2 00b93c32 in ?? () from C:\Documents and Settings\Administrador\Desktop\Servidor 0.3x\plugins\crashdetect.dll
[12:40:14] [debug] #3 00b96076 in ?? () from C:\Documents and Settings\Administrador\Desktop\Servidor 0.3x\plugins\crashdetect.dll
[12:40:14] [debug] #4 00b8c05a in ?? () from C:\Documents and Settings\Administrador\Desktop\Servidor 0.3x\plugins\crashdetect.dll
[12:40:14] [debug] #5 00b93c5e in ?? () from C:\Documents and Settings\Administrador\Desktop\Servidor 0.3x\plugins\crashdetect.dll
[12:40:14] [debug] #6 0046d7e0 in ?? () from C:\Documents and Settings\Administrador\Desktop\Servidor 0.3x\samp-server.exe
Reply
#6

Vocк estб usando o MapAndreas plugin?
Reply
#7

Quote:
Originally Posted by BlueX
Посмотреть сообщение
Vocк estб usando o MapAndreas plugin?
Sim!

@edit
Resolvido
Reply
#8

Quote:
Originally Posted by HumildadeAgain
Посмотреть сообщение
Sim!
Quote:
Originally Posted by mauzen
The source currently contains MapAndreas. Dont get confused by that, I altered an old project and as im going to need MapAndreas anyways at a later stage I just kept it there.
Resumindo, o RNPC jб contei o MapAndreas (1.1, versгo criada pelo mauzen), sendo assim nгo precisa do plugin MapAndreas.

Outra coisa й, se vocк deseja maior precisгo (1x1 quadrados) para calcular o Zcoord, use MAP_ANDREAS_MODE_FULL (70MB RAM), caso queira ser menos preciso (3x3 quadrados) use MAP_ANDREAS_MODE_MINIMAL (9MB RAM), eu pessoalmente uso o MAP_ANDREAS_MODE_FULL .

Espero que isto o ajude.
Reply
#9

Quote:
Originally Posted by BlueX
Посмотреть сообщение
Resumindo, o RNPC jб contei o MapAndreas (1.1, versгo criada pelo mauzen), sendo assim nгo precisa do plugin MapAndreas.

Outra coisa й, se vocк deseja maior precisгo (1x1 quadrados) para calcular o Zcoord, use MAP_ANDREAS_MODE_FULL (70MB RAM), caso queira ser menos preciso (3x3 quadrados) use MAP_ANDREAS_MODE_MINIMAL (9MB RAM), eu pessoalmente uso o MAP_ANDREAS_MODE_FULL .

Espero que isto o ajude.
Ajudou, e novamente obrigado!
Porem... Pode me ajudar em uma coisa?
pawn Код:
CallBack::MoverNPC() {
    new string [128], Float: p[3];
    for(new i = 0; i < MAX_ZUMBIES; i++) {
        for(new x = 0; x < MAX_PLAYERS; x++) {
            if(IsPlayerNPC(i) && IsPlayerConnected(x) && !IsPlayerNPC(x)) {
                new Float: angle; GetPlayerFacingAngle(i, angle);
                GetPlayerPos(x, p[0], p[1], p[2]);
                format(string, sizeof string, "NPC_%d", i);
                MoveRNPC(GetPlayerIdFromName( string ), p[0]+ floatsin(angle - 125.0, degrees) * (1.0 + random(15)), p[1]+ floatsin(angle - 125.0, degrees) * (1.0 + random(15)), p[2], 0.0065);
            }
        }
    }
    return 1;
}
Vai perseguir somente o primeiro que logar certo?
Como faзo para dividir para cada player?

Exemplo:
Existem 20 zombies, se tiver 2 players vai 10 atras de cada ou se tiver 4 players vai 5 pra cada.. Saco?
Reply
#10

Quote:
Originally Posted by HumildadeAgain
Посмотреть сообщение
Ajudou, e novamente obrigado!
Porem... Pode me ajudar em uma coisa?
pawn Код:
CallBack::MoverNPC() {
    new string [128], Float: p[3];
    for(new i = 0; i < MAX_ZUMBIES; i++) {
        for(new x = 0; x < MAX_PLAYERS; x++) {
            if(IsPlayerNPC(i) && IsPlayerConnected(x) && !IsPlayerNPC(x)) {
                new Float: angle; GetPlayerFacingAngle(i, angle);
                GetPlayerPos(x, p[0], p[1], p[2]);
                format(string, sizeof string, "NPC_%d", i);
                MoveRNPC(GetPlayerIdFromName( string ), p[0]+ floatsin(angle - 125.0, degrees) * (1.0 + random(15)), p[1]+ floatsin(angle - 125.0, degrees) * (1.0 + random(15)), p[2], 0.0065);
            }
        }
    }
    return 1;
}
Vai perseguir somente o primeiro que logar certo?
Como faзo para dividir para cada player?

Exemplo:
Existem 20 zombies, se tiver 2 players vai 10 atras de cada ou se tiver 4 players vai 5 pra cada.. Saco?
Bem isso ai й mais complicado, nгo aconselho a fazer divisгo de npcs, pois pode nгo dar nъmeros pares, se tu tiver 20 zomibies e 3 players jб vai dar 6,6666666666666666666666666666667 , esse й o motivo por qual nгo deve fazer isso, a ideia seria vocк montar бreas com X de zombies, para seguir basta o zombie detectar algum jogador, se quiser algo complexo, tente fazer com que o zombie detecte o som e o cheiro (use variбveis para o cheiro), para o som vocк pode fazer uns calculos com um amigo seu, vai no server e diz para ele disparar arma X, ai vocк vai se afastando onde vocк nгo ouvir mais й precisamente o limite do range, depois vocк pega a distancia entre vocк e seu amigo, ai pega o Raio da circunferкncia e farб um range de som de arma, o mesmo para veiculos...

A matemбtica vai ajuda-lo muito nestes casos, pode ate consultar seu professor de matemбtica
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)