Ayuda Atake crasheando dialogos en Server
#1

Buenas Tengo Contratado un VPS Linux con AntiDDoS y tengo el problema que lo tumban o asen crashear mi server,
primero pense que era un atake dos ( o nose ) pero dicen que si fuera un atake dos, el vps se apagaria y no podria entrar con el putty a encenderlo denuevo mi gamemode.

GM BASE ZC


Luego en el soporte del vps me dijeron que le agrege el plugin crashdetect para detectar cual era el problema en mi server por el vps sige activo y mi server osea mi gamemode es el que se crashea los dialogos.

Tambien lei que se deve limitar los caracteres al entrar,logearse, registrate etc ,cambiar algunas cosas en los Dialog dentro del script que son conflictivos ( eso enque parte se soluciona )

con ese plugin crashdetect tuve la informacion que necesitava y me sale esto en el log:

Quote:

1
[join] Ramon_Mendezzs has joined the server (1:198.144.105.179)
SAMP:Cuentas guardadas correctamente.
[debug] Server crashed while executing VZRP.amx
[debug] AMX backtrace:
[debug] #0 00000033 in INI_AddToBuffer (INI:file=57, name[]=@0x00000000 "", data[]=@0x0143ca40 "0000001659309359") at <unknown file>:0
[debug] #1 0001aacc in ?? (... <13 arguments>) at E:\F CRISTOPER\Cristoper 2015\2015 SAMP\GAMEMODES 2016\MI SERVER 2017 COPIA DE SEGURIDAD 2\MiserverRoleplay\pawno\include\YSI\y_ini.inc:107 3
[debug] #2 00000033 in public S@@_OnDialogResponse () at <unknown file>:0

y en su archivo del que ingreso Ramon_Mendezzs no hay nada dentro de su archivo, no hay contraseсa no hay nada, esto quiere decir que no se logeo ni puso su contraseсa y se aprovecho de un dialogo supongo e iso el crash.

Nota: Explicare que esta pasando: el que esta asiendo esto es lastimosamente un niсo que va al colegio aun y que a visto algun video o texto para crashear al parecer los dialogos de mi server base ZC , aun lo tengo agregado al face ( lo bloquee anteriormente pero lo agrege denuevo para ver que esta asiendo para crashear mi server ) y asi encontrar la solucion y decirle que lo intente denuevo tumbarlo hasta encontrar la solucion.


paso los dodigos de OnDialogResponse:

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new sendername[MAX_PLAYER_NAME],giveplayer[MAX_PLAYER_NAME];
    new idcar = GetPlayerVehicleID(playerid),string[256];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(!isnull(inputtext))
    {
        if(strfind(inputtext, "%s", true) != -1)
        {
            format(string, sizeof(string), " %s (ID %d) es un posible dialog-exploiting, intenta enviar string en blanco mediante diбlogos.", GetPlayerNameEx(playerid), playerid);
              ABroadCast(COLOR_ORANGE, string, 2);
              format(string, sizeof(string), "%s a intentado insertar un falso string en un diбlogo. [Exploit]", GetPlayerNameEx(playerid));
              Log("logs/reportbug.log", string);
              Kick(playerid);
            return 1;
        }
    }
    if(dialogid == MPSPAYTICKETS)
    {
        if(response)
        {
            new
                szMessage[128];

            if(Info[playerid][pWantedLevel] != 0)
            {
                format(szMessage, sizeof(szMessage), "%s intenta pagar multas y es buscado por la policнa - Nivel de bъsqueda: %i.", GetPlayerNameEx(playerid), Info[playerid][pWantedLevel]);
                SendRadioMessage(1, TEAM_RADIO_COLOR, szMessage);
                SendRadioMessage(2, TEAM_RADIO_COLOR, szMessage);
                return SendClientMessageEx(playerid, COLOR_YELLOW, "La policнa ha dado comunicado que usted estб buscado, y estбn en camino.");
            }
            if(PlayerVehicleInfo[playerid][listitem][pvTicket])
            {
                if(GetPlayerCash(playerid) < PlayerVehicleInfo[playerid][listitem][pvTicket])
                {
                    return SendClientMessageEx(playerid, COLOR_GRAD2, "No tienes suficiente dinero para pagar la multa.");
                }
                GivePlayerCash(playerid, -PlayerVehicleInfo[playerid][listitem][pvTicket]);
                Tax += PlayerVehicleInfo[playerid][listitem][pvTicket];
                format(szMessage, sizeof(szMessage), "Pagaste la multa de $%d de tu %s.", PlayerVehicleInfo[playerid][listitem][pvTicket], VehicleName[PlayerVehicleInfo[playerid][listitem][pvModelId] - 400]);
                SendClientMessageEx(playerid, COLOR_GRAD2, szMessage);
                PlayerVehicleInfo[playerid][listitem][pvTicket] = 0;
            }
            else if(PlayerVehicleInfo[playerid][listitem][pvImpounded])
            {

                new
                    iCost = (PlayerVehicleInfo[playerid][listitem][pvPrice] / 20) + PlayerVehicleInfo[playerid][listitem][pvTicket] + (Info[playerid][pLevel] * 2);

                if(GetPlayerCash(playerid) < iCost)
                {
                    return SendClientMessageEx(playerid, COLOR_GRAD2, "No tienes suficiente dinero para pagar la multa.");
                }

                format(szMessage, sizeof(szMessage), "Liberaste tu %s por $%i.", VehicleName[PlayerVehicleInfo[playerid][listitem][pvModelId] - 400], iCost);
                SendClientMessageEx(playerid, COLOR_LIGHTBLUE, szMessage);
                SendClientMessageEx(playerid, COLOR_GRAD2, "Tu auto se encuentra en el depуsito municipal, puedes abrir la reja usando /deposito.");
                GivePlayerCash(playerid, -iCost);
                Tax += iCost;
                PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
                PlayerVehicleInfo[playerid][listitem][pvPosX] = 1655.4379;
                PlayerVehicleInfo[playerid][listitem][pvPosY] = -1829.5668;
                PlayerVehicleInfo[playerid][listitem][pvPosZ] = 13.2677;
                PlayerVehicleInfo[playerid][listitem][pvPosAngle] = 91.6165;
                PlayerVehicleInfo[playerid][listitem][pvTicket] = 0;
                PlayerVehicleInfo[playerid][listitem][pvVW] = 0;
                ++PlayerCars;
                PlayerVehicleInfo[playerid][listitem][pvId] = CreateVehicle(PlayerVehicleInfo[playerid][listitem][pvModelId], PlayerVehicleInfo[playerid][listitem][pvPosX], PlayerVehicleInfo[playerid][listitem][pvPosY], PlayerVehicleInfo[playerid][listitem][pvPosZ], PlayerVehicleInfo[playerid][listitem][pvPosAngle],PlayerVehicleInfo[playerid][listitem][pvColor1], PlayerVehicleInfo[playerid][listitem][pvColor2], -1);
                SetPlayerVirtualWorld(PlayerVehicleInfo[playerid][listitem][pvId], PlayerVehicleInfo[playerid][listitem][pvVW]);
                VehicleFuel[PlayerVehicleInfo[playerid][listitem][pvId]] = PlayerVehicleInfo[playerid][listitem][pvFuel];
                if(PlayerVehicleInfo[playerid][listitem][pvLocked] == 1) LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][listitem][pvId], PlayerVehicleInfo[playerid][listitem][pvLock]);
                LoadPlayerVehicleMods(playerid, listitem);
            }
            else SendClientMessageEx(playerid, COLOR_GRAD2, "Este coche, o bien no existe, o no es necesario liberar o tiene sus multas pagadas.");
        }
        return 1;
    }
Es muy largo todo el codigo y parece que esto tambien es importante para que vean:

Код:
case DIALOG_REG_MSN:
        {
            if(response == 1)
            {
                new rt[] = "{FFFFFF}Gracias por confirmar los datos de tu personaje,\nahora podrбs empezar a jugar.\n\nRecuerda leйr las {6E9AFF}/reglas{FFFFFF}.\nSuerte! Gracias por preferirnos\n\nїPreparado?";
                SafeDialogEx(playerid,DIALOG_REG_TUT,DIALOG_STYLE_MSGBOX,"{00A1FF}Fin del registro", rt,"Empezar","");
            }
            else
            {
                SetTimerEx("FreezePlayer", 1000, false, "i", playerid);
                ClearChatbox(playerid);
                gNewbie[playerid]=1; gOoc[playerid] = 1; gNews[playerid] = 1; gFam[playerid] = 1;
                SetPosEx(playerid,1649.5704,-2286.4312,-1.2097,271.8517,0,playerid);
                SetPlayerCameraPos(playerid,423.3802,-2067.7915,29.8605);
                SetPlayerCameraLookAt(playerid,370.0804,-2087.8767,7.8359);
                Info[playerid][pAge] = 30; Info[playerid][pSex] = 1;
                new sex[]= "{FFFFFF}їDe quй sexo serб tu personaje?:\n";
                SafeDialogEx(playerid,REG_SEX,DIALOG_STYLE_MSGBOX, "Sexo", sex, "Hombre", "Mujer");
            }
         }
        case DLOGIN:
        {
            if(response == 1)
            {
                if(udb_hash(inputtext) == Info[playerid][pKey])
                {
                    InsideMainMenu[playerid] = false;
                    INI_ParseFile(UserPath(playerid), "LoadUser_data", .bExtra = true, .extra = playerid);
                    KillTimer(LoginTimer[playerid]);
                    OnPlayerLogin(playerid);
                }
                else
                {
                    new ip[32];
                    new titlestring[64];
                    GetPlayerIp(playerid, ip, 32);
                    format(titlestring, sizeof(titlestring), "{FFFFFF}%s", GetPlayerNameEx(playerid));
                    format(string, sizeof(string), "{FFFFFF}Ingresa tu contraseсa para conectarte\n\n{0197D7}Contraseсa:", ip);
                    SafeDialogEx(playerid,DLOGIN,DIALOG_STYLE_PASSWORD ,titlestring,string,"Entrar","Salir");
                    SetPlayerVirtualWorld(playerid, 20);
                    return 1;
                }
            }
            else
            {
                SendClientMessageEx(playerid, COLOR_GENERAL, "Fuiste expulsado del servidor automбticamente.");
                Kick(playerid);
            }
            return 1;
        }
        case DREGISTER:
        {
            if (response == 1)
            {
                if(strlen(inputtext) > 24)
                {
                    new ip[32];
                    new titlestring[64];
                    GetPlayerIp(playerid, ip, 32);
                    format(titlestring, sizeof(titlestring), "{FF8000}Error: {FFFFFF}%s", GetPlayerNameEx(playerid));
                    format(string, sizeof(string), "{FFFFFF}Contraseсa con un mбximo de 24 carбcteres!\n\n%s Ingresa una contraseсa valida para registrarte en el servidor:\n\n{FF8000}Contraseсa:", GetPlayerNameEx(playerid));
                    SafeDialogEx(playerid,DREGISTER,DIALOG_STYLE_PASSWORD ,titlestring,string,"Registrar","Salir");
                    SetPlayerVirtualWorld(playerid, 20);
                    return 1;
                }
                if(isnull(inputtext))
                {
                    new ip[32];
                    new titlestring[64];
                    GetPlayerIp(playerid, ip, 32);
                    format(titlestring, sizeof(titlestring), "{FF8000}Registro: {FFFFFF}%s", GetPlayerNameEx(playerid));
                    format(string, sizeof(string), "{FFFFFF}Direccion IP: %s\nBienvenido a America United RolePlay\nIngresa una contraseсa para registrarte en el servidor.\n\n{FF8000}Contraseсa.", ip);
                    SafeDialogEx(playerid,DREGISTER,DIALOG_STYLE_PASSWORD,titlestring,string,"Registrar","Salir");
                    return 1;
                }
                InsideMainMenu[playerid] = false;
                OnPlayerRegister(playerid,inputtext);
                KillTimer(LoginTimer[playerid]);
                return 1;
            }
            else
            {
                SendClientMessageEx(playerid, COLOR_GENERAL, "Fuiste expulsado del servidor automбticamente.");
                Kick(playerid);
            }
            return 1;
        }
        case CARSPAWN:
        {
            if (response == 1)
            {
                if(PlayerVehicleInfo[playerid][listitem][pvImpounded] == 1) return SendClientMessageEx(playerid,COLOR_WHITE,"El auto que intenta spawnear estб embargado.");
                if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
                if(PlayerVehicleInfo[playerid][listitem][pvModelId] != 0 && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 0)
                {
                    if(carsforplayer[playerid] == 8) return SendClientMessageEx(playerid,COLOR_WHITE,"* Sуlo puedes tener 8 coches spawneados.");
                    PlayerCars++;
                    carsforplayer[playerid]++;
                    new carcreated = CreateVehicle(PlayerVehicleInfo[playerid][listitem][pvModelId], PlayerVehicleInfo[playerid][listitem][pvPosX], PlayerVehicleInfo[playerid][listitem][pvPosY], PlayerVehicleInfo[playerid][listitem][pvPosZ], PlayerVehicleInfo[playerid][listitem][pvPosAngle],PlayerVehicleInfo[playerid][listitem][pvColor1], PlayerVehicleInfo[playerid][listitem][pvColor2], -1);
                    PlayerVehicleInfo[playerid][listitem][pvId] = carcreated;
                    VehicleFuel[carcreated] = PlayerVehicleInfo[playerid][listitem][pvFuel];
                    SetVehicleHealth(carcreated, PlayerVehicleInfo[playerid][listitem][pvHealth]);
                    SetVehicleVirtualWorld(carcreated, PlayerVehicleInfo[playerid][listitem][pvVW]);
                    PlayerVehicleInfo[playerid][listitem][pvSpawned] = 1;
                    SendClientMessageEx(playerid,COLOR_WHITE,"Vehiculo spawneado correctamente, en la ъltima posiciуn que lo estacionaste. (/localizar)");
                    if(PlayerVehicleInfo[playerid][listitem][pvLocked] == 1)
                    LockPlayerVehicle(playerid, PlayerVehicleInfo[playerid][listitem][pvId], PlayerVehicleInfo[playerid][listitem][pvLock]);
                    LoadPlayerVehicleMods(playerid, listitem);
                    return 1;

                }
                else if(PlayerVehicleInfo[playerid][listitem][pvSpawned] == 1)
                {
                    new playername[MAX_PLAYER_NAME];
                    GetPlayerName(playerid, playername, sizeof(playername));
                    //printf(" Unloading %s's vehicles.", playername);
                     new Float:health;
                    GetVehicleHealth(PlayerVehicleInfo[playerid][listitem][pvId], health);
                    if(health < 500) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб muy daсado para ser guardado.");
                    if(IsVehicleBusy(PlayerVehicleInfo[playerid][listitem][pvId])) return SendClientMessageEx(playerid, COLOR_GREY, " El vehiculo estб ocupado por otra persona y no puede ser guardado.");
                    if(PlayerVehicleInfo[playerid][listitem][pvImpounded] >= 2) PlayerVehicleInfo[playerid][listitem][pvImpounded] = 0;
                    if(PlayerVehicleInfo[playerid][listitem][pvId] != INVALID_PLAYER_VEHICLE_ID && PlayerVehicleInfo[playerid][listitem][pvImpounded] == 0 && PlayerVehicleInfo[playerid][listitem][pvSpawned]== 1)
                    {
                        PlayerCars--;
                        carsforplayer[playerid]--;
                        if(LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] != 0) LockStatus[PlayerVehicleInfo[playerid][listitem][pvId]] = 0;
                            UpdatePlayerVehicleMods(playerid, listitem);
                        DestroyVehicle(PlayerVehicleInfo[playerid][listitem][pvId]);
                        VehicleFuel[PlayerVehicleInfo[playerid][listitem][pvId]] = 1000;
                        PlayerVehicleInfo[playerid][listitem][pvId] = INVALID_PLAYER_VEHICLE_ID;
                        PlayerVehicleInfo[playerid][listitem][pvSpawned] = 0;
                        SendClientMessageEx(playerid,COLOR_WHITE,"Tu vehнculo fue guardado correctamente.");
                        if(PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] != INVALID_PLAYER_ID)
                        {
                            Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeys] = INVALID_PLAYER_VEHICLE_ID;
                            Info[PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId]][pVehicleKeysFrom] = INVALID_PLAYER_ID;
                            PlayerVehicleInfo[playerid][listitem][pvAllowedPlayerId] = INVALID_PLAYER_ID;
                        }
                    }
                }
            }
        }
    }
    return 1;
}
aki mis warnings de mi gm base zc:

Quote:

pwn(2683) : warning 213: tag mismatch
pwn(20961) : warning 204: symbol is assigned a value that is never used: "Distance"
pwn(20981) : warning 204: symbol is assigned a value that is never used: "Distance"
pwn(35826) : warning 202: number of arguments does not match definition
pwn(40349) : warning 219: local variable "YSI_timer" shadows a variable at a preceding level
.pwn(42364) : warning 203: symbol is never used: "carcreated"
.pwn(42360) : warning 204: symbol is assigned a value that is never used: "oldfuel"
.pwn(42344) : warning 203: symbol is never used: "health"
.pwn(43836) : warning 204: symbol is assigned a value that is never used: "Distance"
.pwn(4387 : warning 204: symbol is assigned a value that is never used: "Distance"
.pwn(44094) : warning 203: symbol is never used: "Chocones"
.pwn(44094) : warning 203: symbol is never used: "PlayerPos"
.pwn(44094) : warning 203: symbol is never used: "Presidente"
.pwn(43853) : warning 204: symbol is assigned a value that is never used: "PuertaRobo"
.pwn(43895) : warning 204: symbol is assigned a value that is never used: "PuertaRobo1"
.pwn(1236 : warning 204: symbol is assigned a value that is never used: "gTime"
.pwn(12423) : warning 204: symbol is assigned a value that is never used: "gWeather"
.pwn(12423 -- 44094) : warning 203: symbol is never used: "strinmode"

cuando ingresa antes de logearse y o registrarse ase el crash osea lo ase antes de entrar al server por que no crea su cuenta ( su cuenta esta vacia no se logeo con ninguga contraseсa) osea cuenta esta vacia ( antes de poner contraseсa lo ase el crash )

que codigo devo mostrar para que me ayuden
le paso esto sale en onplayerconnect:


Код:
public OnPlayerConnect(playerid)
{
//   PlayAudioStreamForPlayer(playerid,"http://ciavarro.com/music/random/12_-Toxicity.mp3");  // XTR MUSICA INICIO
   PlayAudioStreamForPlayer(playerid,"https://dl.dropbox.com/u/100949615/eve%20w%20gwen%20stefani%20-%20scorpion%20-%20let%20me%20blow%20your%20mind.mp3");  // XTR MUSICA INICIO
    if(IsPlayerNPC(playerid)) return 1;
    new playerIP[16];
    GetPlayerIp(playerid, playerIP, sizeof(playerIP));
    SetPlayerColor(playerid,COLOR_GRAD2);
    if (CheckBan(playerIP) == 1)
    
    
    
    
    {
        SetPlayerName(playerid, "BannedPlayer");
        SendClientMessage(playerid, COLOR_ORANGE, " Lo sentimos, te encuentras baneado de este servidor.");
        Kick(playerid);
        return 1;
    }
    
    
    

    
    
    TotalConnect++;
    resetPlayerVariables(playerid);
    MapsRemoveForPlayer(playerid);
    ClearMarriage(playerid);
    SyncPlayerTime(playerid);
    SetPVarInt(playerid,"Trabajando",0);
    SetPVarInt(playerid,"TomoCarpintero",0);
    SetPVarInt(playerid,"MueblesCreados",0);
     ShowMenuLogin(playerid);
     
    if(Iter_Count(Player) > MaxPlayersConnected)
    {
        MaxPlayersConnected = Iter_Count(Player);
        gettime(MPHour,MPMinute);
        getdate(MPYear,MPMonth,MPDay);
    }
    if(MaxPlayersConnected > 400) MaxPlayersConnected = 400; // Temp good fix
    
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername, sizeof(playername));
    if(!INI_Exist(playername)) // If exists in Y_ini
    {
        if(doesAccountExist(playername)) // If exists in .ini
        {
            ConvertAccount(playerid); // Convert Account to y_ini
            return 1;
        }
    }
    SetTimerEx("SafeLogin", 4000, 0, "d", playerid);
     return 1;
}

function SafeLogin(playerid)
{

/// XTR ELIMINO ESTO INICIO
/*
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
SendClientMessageEx(playerid, COLOR_NEGRO, "");
*/

/// XTR ELIMINO ESTO FIN

    ClearChatbox(playerid);  // XTR AUMENTE TAMBIEN AKI ( BORRRAR SI NO DA )

    TextDrawHideForPlayer(playerid, cargando);
    TextDrawHideForPlayer(playerid, looking);
    TextDrawHideForPlayer(playerid, box);
    SetPlayerJoinCamera(playerid);
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername, sizeof(playername));
    //LoginTimer[playerid] = SetTimerEx("TimerLogin",30000000,0,"d",playerid);
    if(INI_Exist(playername))
    {
        gPlayerAccount[playerid] = 1;
        ShowMainMenuDialog(playerid, 1);
        return 1;
    }
    else
    {
       if(strcmp(playername, "Zerox", false) == 0) return 1; // https://sampwiki.blast.hk/wiki/Strcmp

        if(strfind( playername, "_", true) == -1)
        {
            SetPlayerName(playerid, "InvalidNick");
            SendClientMessageEx(playerid, COLOR_WHITE, "Porfavor usa el formato correcto: Nombre_Apellido");
            SendClientMessageEx(playerid, COLOR_WHITE, "Vuelve a entrar con el formato indicado." );
            Kick(playerid);
        }
        else
        {
            gPlayerAccount[playerid] = 0;
            ShowMainMenuDialog(playerid, 2);
        }
        return 1;
    }
}

ShowMainMenuDialog(playerid, frame)
{
    new titlestring[28];
    new string[256];
    InsideMainMenu[playerid] = true;
    switch(frame)
    {
        case 1:
        {
            INI_ParseFile(UserPath(playerid), "LoadUser_pass", .bExtra = true, .extra = playerid);
            new ip[32];
            PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
            GetPlayerIp(playerid, ip, 32);
            format(titlestring, sizeof(titlestring), "{0197D7}%s", GetPlayerNameEx(playerid));
            format(string, sizeof(string), "{FFFFFF}Ingresa tu contraseсa para conectarte\n\n{0197D7}Contraseсa:", ip);
            SafeDialogEx(playerid,DLOGIN,DIALOG_STYLE_PASSWORD ,titlestring,string,"Entrar","Salir");
            SetPlayerVirtualWorld(playerid, 20);
        }
        case 2:
        {
            new ip[32];
            PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
            GetPlayerIp(playerid, ip, 32);
            format(titlestring, sizeof(titlestring), "{0197D7}%s", GetPlayerNameEx(playerid));
            format(string, sizeof(string), "{FFFFFF}Bienvenido a America United Roleplay\nIngresa una contraseсa para registrarte en el servidor.\n\n{0197D7}Contraseсa:", ip);
            SafeDialogEx(playerid,DREGISTER,DIALOG_STYLE_INPUT ,titlestring,string,"Registrar","Salir");
            SetPlayerVirtualWorld(playerid, 20);
        }
    }
}

ShowMenuLogin(playerid)
{
    ClearChatbox(playerid);
    new string[128];
    for(new i = 0; i < 9; i++)
    {
        TextDrawShowForPlayer(playerid, LoginMenu[i]);
    }
    TextDrawShowForPlayer(playerid, cargando);
    TextDrawShowForPlayer(playerid, looking);
    TextDrawShowForPlayer(playerid, box);
    TextDrawHideForPlayer(playerid, VortexZone);
    TextDrawSetString(MOTD, string);
    TextDrawShowForPlayer(playerid, MOTD);
    TextDrawSetString(LoginMenu[8], string);
    return 1;
}

HideMenuLogin(playerid)
{
    TextDrawHideForPlayer(playerid, MOTD);
    for(new i = 0; i < 9; i++) { TextDrawHideForPlayer(playerid, LoginMenu[i]); }
    TextDrawShowForPlayer(playerid, VortexZone);
    return 1;
}

//function TimerLogin(playerid)
//{
//    SendClientMessage(playerid,COLOR_GENERAL,"*Fuiste expulsado, por no entrar..");
//    SetPlayerName(playerid,"InvalidNick");
//    Kick(playerid);
//}
Lei que esta asiendo crash en los dialogos ( pero lo ase antes de crear cuenta, antes de poner contraseсa)
Grasias por responder amigos. ayuden Grasias.
Reply
#2

Limita la cantidad de caracteres en los dialogs
Reply
#3

Quote:
Originally Posted by Goncho28
Посмотреть сообщение
Limita la cantidad de caracteres en los dialogs
Como limito la cantidad de caracteres en los dialogos amigo Grasias por responder

ya esta limitado cuando registro dice maximo 24 caracteres , como limito para que no pongan codigos (^^
Reply
#4

baja de 24 a 12 caractйres...
Reply
#5

Quote:
Originally Posted by PonyNegro0715
Посмотреть сообщение
baja de 24 a 12 caractйres...
Bajando la cantidad de caracteres es suficiente para que no secrashee?

Que escribe entonces para que se crashee? para que lo escriba y vea que esta solucionado amigo.

Grasias por responder.
Reply
#6

Bбjala a 12 - 15 caracteres como mбximo.

Porque Escribe 25 caracteres sнmbolos como estos |||||||| y eso crashea el Server. Tambiйn te recomiendo que arregles los warnings.
Reply
#7

Pest Elimination - Guaranteeing A More Healthy Surrounding
Get More Useful Link:-
Pest control mayur vihar
http://pest-control-delhi.pestcontro...yur-vihar.html
Pest control patparganj
http://pest-control-delhi.pestcontro...atparganj.html
Pest control dwarka
http://pest-control-delhi.pestcontro...in-dwarka.html
Pest control vikaspuri
http://pest-control-delhi.pestcontro...ikas-puri.html
Pest control vasantkunj
http://pest-control-delhi.pestcontro...sant-kunj.html
Pest control pitampura
http://pest-control-delhi.pestcontro...pitampura.html
Reply
#8

Quote:
Originally Posted by Infernux
Посмотреть сообщение
Bбjala a 12 - 15 caracteres como mбximo.

Porque Escribe 25 caracteres sнmbolos como estos |||||||| y eso crashea el Server. Tambiйn te recomiendo que arregles los warnings.
amigo no cambie nada aver si crashea escribiendo ||||||||||||||||||||||||| (25 veces y 30 45 caracteres) y no lo crashea y lo ise por varios minutos aver si lo crashea y no lo crashea amigo , algun otro codigo que haga que se crashee o que puedo agregar o aser para que esto no suceda.

Grasias por responder.
Reply
#9

El problema de usar un gm descargado es que mucha gente tiene acceso al cуdigo interno del gamemode y una vez descubren un fallo van jodiendo a los demбs servidores.

Primero:

pawn Код:
if(strlen(inputtext) > 12)
{
    SendClientMessage(playerid, COLOR_GRAD2, "Contraseсa con un mбximo de 12 carбcteres!");
    //Tu dialog de login
}
Tambiйn puedes hacer algo asн:


pawn Код:
if(strfind(inputtext, "|", true) != -1)//Solo cambia el | por otro caracter.
{
    format(string, sizeof(string), " %s (ID %d) es un posible dialog-exploiting, intenta enviar string en blanco mediante diбlogos.", GetPlayerNameEx(playerid), playerid);
    ABroadCast(COLOR_ORANGE, string, 2);
    format(string, sizeof(string), "%s a intentado insertar un falso string en un diбlogo. [Exploit]", GetPlayerNameEx(playerid));
    Log("logs/reportbug.log", string);
    Kick(playerid);
    return 1;
}
A una mala puedes intentar algo asн:

pawn Код:
printf("%s", inputtext);
Eso irнa en la funcion OnDialogResponse

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    printf("%s", inputtext);
    //demбs cуdigo
    return 1;
}
Con esto verбs que es lo que se envнa en el dialog.


No he probado ninguna pero supongo que te podrбn ayudar.
Reply
#10

Quote:
Originally Posted by Tirael
Посмотреть сообщение
El problema de usar un gm descargado es que mucha gente tiene acceso al cуdigo interno del gamemode y una vez descubren un fallo van jodiendo a los demбs servidores.

Primero:

pawn Код:
if(strlen(inputtext) > 12)
{
    SendClientMessage(playerid, COLOR_GRAD2, "Contraseсa con un mбximo de 12 carбcteres!");
    //Tu dialog de login
}
Tambiйn puedes hacer algo asн:


pawn Код:
if(strfind(inputtext, "|", true) != -1)//Solo cambia el | por otro caracter.
{
    format(string, sizeof(string), " %s (ID %d) es un posible dialog-exploiting, intenta enviar string en blanco mediante diбlogos.", GetPlayerNameEx(playerid), playerid);
    ABroadCast(COLOR_ORANGE, string, 2);
    format(string, sizeof(string), "%s a intentado insertar un falso string en un diбlogo. [Exploit]", GetPlayerNameEx(playerid));
    Log("logs/reportbug.log", string);
    Kick(playerid);
    return 1;
}
A una mala puedes intentar algo asн:

pawn Код:
printf("%s", inputtext);
Eso irнa en la funcion OnDialogResponse

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    printf("%s", inputtext);
    //demбs cуdigo
    return 1;
}
Con esto verбs que es lo que se envнa en el dialog.


No he probado ninguna pero supongo que te podrбn ayudar.
Ok amigo intentare aver agrego y Pruebo aver si sale en el log lo que escribo yo ok amigo

Me Gustaria saber que escribe para saber que solucion aser.

Grasias amigo Pruebo y Respondo en unos segundos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)