SA-MP Forums Archive
[Off] Encuentra el error del usuario anterior - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Off] Encuentra el error del usuario anterior (/showthread.php?tid=412454)

Pages: 1 2


Encuentra el error del usuario anterior - Glimma - 02.02.2013

Bueno, el juego es simple y entretenido, se trata de que uno tiene que encontrar el error del usuario anterior (el usuario de arriba) y ademбs de eso postear un cуdigo йl, para que el usuario siguiente (el usuario de abajo) pueda encontrar el error y colocar su cуdigo, asн sucesivamente. Y tampoco vale tomar el cуdigo y meterlo a su GM, no tendrнa sentido, la idea es que uno mismo pueda identificarlo sin probarlo en el GM para copilar y ver que error da, o compararlo con otro cуdigo similar, o leer tutoriales, eso no estб permitido.

Si no van a jugar, mejor ni comenten, їvale?


Empiezo yo, es demasiado sencillo encontrar mi error (es programaciуn bбsica);

pawn Код:
enum ConceInfo
{
    Float:cX,
    Float:cY,
    Float:cZ,
    Float:ctX,
    Float:ctY,
    Float:ctZ,
    cNombre[128],
}
Edit (The_Chaoz):
Reglas:


Respuesta: Encuentra el error del usuario anterior - Parka - 02.02.2013

pawn Код:
enum ConceInfo
{
    Float:cX,
    Float:cY,
    Float:cZ,
    Float:ctX,
    Float:ctY,
    Float:ctZ,
    cNombre[128] // el error estaba aqui ya que al final no debes colocar " , "
}

en mi caso tambien les dare uno simple

pawn Код:
enum ConceInfo
{
Login = 0,
register = -1, // aqui para los que no saben
Admin = 5
}
EDIT: El verdadero error esta en register ya que en un enum no puedes colocar -1


Respuesta: Encuentra el error del usuario anterior - Fluid016 - 02.02.2013

pawn Код:
enum ConceInfo
{
Login = 0,
register = -1,
Admin = 5
}// no cierras con ;
EDIT: Busquen

pawn Код:
public OnPlayerStateChange(playerid, newkeys, oldkeys)
{
    if ((oldkeys & (KEY_ACTION | KEY_ACTION)) == (KEY_ACTION | KEY_ACTION))
    {
        SendClientMessage(playerid, -1, ":d");
    }
    return 0;
}



Respuesta: Encuentra el error del usuario anterior - Glimma - 02.02.2013

Quote:
Originally Posted by GROVE22
Посмотреть сообщение
pawn Код:
enum ConceInfo
{
Login = 0,
register = -1,
Admin = 5
}// no cierras con ;
EDIT: Busquen

pawn Код:
public OnPlayerStateChange(playerid, newkeys, oldkeys)
{
    if ((oldkeys & (KEY_ACTION | KEY_ACTION)) == (KEY_ACTION | KEY_ACTION))
    {
        SendClientMessage(playerid, -1, ":d");
    }
    return 0;
}
Claramente, se estб usando el public de OnPlayerStateChange en lugar de OnPlayerKeyStateChange, dejo el mнo;

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmd, "/miint", true) == 0)
    {
        new interior = GetPlayerInterior(playerid);
        SendClientMessage(playerid, -1, "Su interior es %s.", interior);
        return 0;
    }
PD: Son 3 errores los de mi comando, si encuentran uno sуlo no va a tener validez.


Respuesta: Encuentra el error del usuario anterior - EmuS - 02.02.2013

Quote:
Originally Posted by DeadSkyTkb
Посмотреть сообщение
Claramente, se estб usando el public de OnPlayerStateChange en lugar de OnPlayerKeyStateChange, dejo el mнo;

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmd, "/miint", true) == 0)
    {
        new interior = GetPlayerInterior(playerid);
        SendClientMessage(playerid, -1, "Su interior es %s.", interior);
        return 0;
    }
PD: Son 3 errores los de mi comando, si encuentran uno sуlo no va a tener validez.
utiliza un format
pawn Код:
if(strcmp(cmd, "/miint", true) == 0)
    {
        new asd[50],interior = GetPlayerInterior(playerid);
        format(asd,sizeof(asd),"Su interior es %s.",interior),
        SendClientMessage(playerid,-1,asd);
        return 1;
    }



Respuesta: Encuentra el error del usuario anterior - Glimma - 02.02.2013

Bueno, como nadie mбs posteo, dejo uno yo;

pawn Код:
if(strcmp(cmdtext, "/quierom4", true) == 0)
    {
        GameTextForPlayer(playerid, "~w~disfruta de tu m4", 3, 5000);
        GivePlayerWeapon(playerid, 31, 30);
        return 1;
    }



Respuesta: Encuentra el error del usuario anterior - EmuS - 02.02.2013

pawn Код:
if(strcmp(cmdtext, "/quierom4", true) == 0)
    {
        GameTextForPlayer(playerid, "~w~disfruta de tu m4",5000, 3);
        GivePlayerWeapon(playerid, 31, 30);
        return 1;
    }
Aver este(el jugador debe estar en un vehiculo):
pawn Код:
if(!IsPlayerInAnyVehicle(playerid)&&(GetPlayerState(playerid)==PLAYER_STATE_DRIVER))
{
new C1 = random(100)+0;
new C2 = random(100)+0;
ChangeVehicleColor(GetPlayerVehicleID(playerid), C1, C2);
}



Respuesta: Encuentra el error del usuario anterior - NeuZz - 02.02.2013

Quote:
Originally Posted by EmuS
Посмотреть сообщение
[PAWN]
pawn Код:
if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
{
new C1 = random(100);
new C2 = random(100);
ChangeVehicleColor(GetPlayerVehicleID(playerid), C1, C2);
}
Estaba mal usado el if, con un simple getplayerstate basta, y el +0 esta de mas xd.

Aqui mi error:

PHP код:
for(new 0; < MAX_PLAYERSi++)
{
SendClientMessage(i, -1"Hola :D");




Respuesta: Encuentra el error del usuario anterior - TheChaoz - 02.02.2013

Es un buen topic y bastante buena idea, aun que ya la habia escuchado por otro usuario.

El topic quedara siempre y cuando respeten las reglas impuestas por su creador: Siguiendo con el juego:

Quote:
Originally Posted by NeuZz
Посмотреть сообщение
Estaba mal usado el if, con un simple getplayerstate basta, y el +0 esta de mas xd.

Aqui mi error:

PHP код:
for(new 0; < MAX_PLAYERSi++)
{
SendClientMessage(i, -1"Hola :D");

Error:

pawn Код:
for(new i = 0; < MAX_PLAYERS; i++)// Falta la variable 'i' dentro del for (i < MAX_PLAYERS).
{
SendClientMessage(i, -1, "Hola :D");
}
Nuevo reto (algo simple):
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext[], "/micomando", true))
    {
        return 1;
    }
    return 0;
}



Respuesta: Encuentra el error del usuario anterior - OTACON - 02.02.2013

Error esta en cmdtext[]
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext[], "/micomando", true)) //
    {
        return 1;
    }
    return 0;
}
pawn Код:
public OnVehicleSpawn(vehicleid)
{
    SpawnPlayer(playerid);
    return 1;
}



Respuesta: Encuentra el error del usuario anterior - Fluid016 - 02.02.2013

Quote:
Originally Posted by bytytus
View Post
Error esta en cmdtext[]
pawn Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext[], "/micomando", true)) //
    {
        return 1;
    }
    return 0;
}
pawn Code:
public OnVehicleSpawn(vehicleid)
{
    SpawnPlayer(playerid);
    return 1;
}
error:
pawn Code:
public OnVehicleSpawn(vehicleid) // callback incorrecta tiene que ser OnPlayerSpawn(playerid)
{
    SpawnPlayer(playerid);
    return 1;
}
Reto:
pawn Code:
ShowPlayerDialog( playerid, 1, DIALOG_STYLE_MSG_BOX, "GROVE22",  "GROVE22", "Aceptar", "Cancelar" );



Respuesta: Encuentra el error del usuario anterior - EduGTA - 02.02.2013

Quote:
Originally Posted by GROVE22
View Post
Reto:
pawn Code:
ShowPlayerDialog( playerid, 1, DIALOG_STYLE_MSG_BOX, "GROVE22",  "GROVE22", "Aceptar", "Cancelar" );
pawn Code:
ShowPlayerDialog( playerid, 1, DIALOG_STYLE_MSGBOX, "GROVE22",  "GROVE22", "Aceptar", "Cancelar" ); //Es DIALOG_STYLE_MSGBOX y no DIALOG_STYLE_MSG_BOX.
Reto:

pawn Code:
public OnPlayerDeath(playerid, killerid, reason)
{
    new MSGMuerto[256], pName[25];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(MSGMuerto, sizeof(MSGMuerto), "%s te ha matado!");
    SendClientMessage(playerid, -1, MSGMuerto);
    return 1;
}



Respuesta: Encuentra el error del usuario anterior - Fluid016 - 02.02.2013

pawn Code:
public OnPlayerDeath(playerid, killerid, reason)
{
    new MSGMuerto[256], pName[25];
    GetPlayerName(playerid, pName, sizeof(pName));// obtiene el nombre del muerto, tiene que obtener el nombre del que matу (killerid)
    format(MSGMuerto, sizeof(MSGMuerto), "%s te ha matado!"); // y te falta poner pName en el format
    SendClientMessage(playerid, -1, MSGMuerto);
    return 1;
}
Reto:
pawn Code:
new cmd[256], idx;
    cmd = strtok(cmdtext, idx);
    if (strcmp(cmd, "/darvida", true) == 0)
    {
        if (PlayerInfo[playerid][Admin] >= 1)
        {
            new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], Float:vida;
            tmp1 = strtok(cmdtext, idx);
            tmp2 = strtok(cmdtext, idx);
            if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, COLOR_ROJO, "Usa: /darvida [ID] [Cantidad].");
            jugador = playerid;
            GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
            GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
            vida = float(strval(tmp2));
            if (IsPlayerConnected(jugador))
            {
                format(string1, sizeof(string1), "Has puesto la vida de %s en %f.", nombrejugador, vida);
                format(string2, sizeof(string2), "%s ha puesto tu vida en %f.", nombreadmin, vida);
                SetPlayerHealth(jugador, vida);
                SendClientMessage(admin, COLOR_AZUL, string1);
                SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
               
            }
            else return SendClientMessage(playerid, COLOR_ROJO, "El jugador no se encuentra conectado.");
        }
        else return SendClientMessage(playerid, COLOR_ROJO, "ERROR");
        return 1;
    }



Respuesta: Encuentra el error del usuario anterior - OTACON - 02.02.2013

pawn Code:
public OnPlayerDeath(playerid, killerid, reason)
{
    new MSGMuerto[256], pName[25];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(MSGMuerto, sizeof(MSGMuerto), "%s te ha matado!");
    SendClientMessage(playerid, -1, MSGMuerto);
    return 1;
}
El error esta ke en ningun momento estas utilizando el parametro ke identifica el id del player mata al usuario. osea killerid.

pawn Code:
GetPlayerDrunkLevel(playerid) ++;
pawn Code:
if(SetPlayerDrunkLevel (playerid, 3000) ) return 1;



Respuesta: Encuentra el error del usuario anterior - Jovanny - 02.02.2013

Quote:
Originally Posted by GROVE22
View Post
pawn Code:
public OnPlayerDeath(playerid, killerid, reason)
{
    new MSGMuerto[256], pName[25];
    GetPlayerName(playerid, pName, sizeof(pName));// obtiene el nombre del muerto, tiene que obtener el nombre del que matу (killerid)
    format(MSGMuerto, sizeof(MSGMuerto), "%s te ha matado!"); // y te falta poner pName en el format
    SendClientMessage(playerid, -1, MSGMuerto);
    return 1;
}
Reto:
pawn Code:
new cmd[256], idx;
    cmd = strtok(cmdtext, idx);
    if (strcmp(cmd, "/darvida", true) == 0)
    {
        if (PlayerInfo[playerid][Admin] >= 1)
        {
            new tmp1[256], tmp2[256], jugador, admin, string1[256], string2[256], nombrejugador[MAX_PLAYER_NAME], nombreadmin[MAX_PLAYER_NAME], Float:vida;
            tmp1 = strtok(cmdtext, idx);
            tmp2 = strtok(cmdtext, idx);
            if (!strlen(tmp1) || !strlen(tmp2)) return SendClientMessage(playerid, COLOR_ROJO, "Usa: /darvida [ID] [Cantidad].");
            jugador = playerid;
            GetPlayerName(jugador, nombrejugador, sizeof(nombrejugador));
            GetPlayerName(admin, nombreadmin, sizeof(nombreadmin));
            vida = float(strval(tmp2));
            if (IsPlayerConnected(jugador))
            {
                format(string1, sizeof(string1), "Has puesto la vida de %s en %f.", nombrejugador, vida);
                format(string2, sizeof(string2), "%s ha puesto tu vida en %f.", nombreadmin, vida);
                SetPlayerHealth(jugador, vida);
                SendClientMessage(admin, COLOR_AZUL, string1);
                SendClientMessage(jugador, COLOR_VERDE_CLARO, string2);
               
            }
            else return SendClientMessage(playerid, COLOR_ROJO, "El jugador no se encuentra conectado.");
        }
        else return SendClientMessage(playerid, COLOR_ROJO, "ERROR");
        return 1;
    }
a el admin nunca se le otorga un id, por lo tanto admin = playerid; y el id qe se almacena en jugador es la del admin, por lo tanto jugador = strval(tmp1);

Reto:
pawn Code:
public OnFilterScriptInit()
{
    new tmp[128];
    new hash[128];
   
    strcat(tmp, "Esto serб invertido!");
   
    hash = Invertir(tmp);
    printf("%z", hash);

}


stock Invertir(cadena[])
{
    new final[256],
        e;
    for(new i = strlen(cadena) -1 ; i != -1; i--)
    {
            final[e] = cadena[i];
            e++;
    }
    return final;
}



Respuesta: Encuentra el error del usuario anterior - [J]ulian - 02.02.2013

pawn Code:
new tmp[128];
new hash[128];

strcat(tmp, "Esto serб invertido!");

printf("%s", format(hash, sizeof(hash), "%s", Invertir(tmp)));
_______________________

pawn Code:
printf("Esto estб %s", (random(2)) ? "bien" : "mal");



Respuesta: Encuentra el error del usuario anterior - [DOG]irinel1996 - 02.02.2013

Quote:
Originally Posted by [J]ulian
View Post
[pawn]new tmp[128];
pawn Code:
printf("Esto estб %s", (random(2)) ? "bien" : "mal");
pawn Code:
printf("Esto estб %s", ( random(2) ? ("bien") : ("mal") ));
_______________________
Como a mi me encantan los TextDraws, aquн os dejo el mio:
pawn Code:
new
    Text:ejemplo
;

public OnGameModeInit() {
    ejemplo = TextDrawCreate(557.000000, 380.000000, "~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut");
    return 1;
}

public OnPlayerConnect() {
    TextDrawShowForPlayer(playerid, ejemplo);
    return 1;
}
PD: los colores con ~ ~ estбn bien puestos, asн que no se cansen en mirar eso. Y es bastante fбcil.


Respuesta: Encuentra el error del usuario anterior - adri1 - 02.02.2013

Quote:
Originally Posted by [DOG]irinel1996
View Post
pawn Code:
printf("Esto estб %s", ( random(2) ? ("bien") : ("mal") ));
_______________________
Como a mi me encantan los TextDraws, aquн os dejo el mio:
pawn Code:
new
    Text:ejemplo
;

public OnGameModeInit() {
    ejemplo = TextDrawCreate(557.000000, 380.000000, "~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut");
    return 1;
}

public OnPlayerConnect() {
    TextDrawShowForPlayer(playerid, ejemplo);
    return 1;
}
PD: los colores con ~ ~ estбn bien puestos, asн que no se cansen en mirar eso. Y es bastante fбcil.
Callback mal: public OnPlayerConnect() {
Es: public OnPlayerConnect(playerid) {


Reto:

pawn Code:
if(!strcmp(cmdtext, "/test", true, 2))
{
for(new i = 0; i < GetMaxPlayers(); i++)
{
if(!IsPlayerConnected))
{
SendClientMessage(playerid, -1, "Jugador Conectado");
}
}
return 1;
}
PD: Hay dos errores.


Respuesta: Encuentra el error del usuario anterior - [DOG]irinel1996 - 02.02.2013

pawn Code:
if(!strcmp(cmdtext, "/test", true)) {
    for(new i, t = GetMaxPlayers(); i < t; i++) {
        if(!IsPlayerConnected(i)) continue;
        SendClientMessage(playerid, -1, "Jugador Conectado"); //El mensaje supongo que es para el que usa el comando.
    }
    return 1;
}
En la linea del strcmp habнas puesto 2 como caracteres totales del comando, pero son 5.
En todo caso eso es opcional, lo puse sin. Luego la condiciуn de IsPlayerConnected.
________________________
Aquн sigo con el anterior, arreglando lo que tu dijiste, hay otro fallo:
pawn Code:
new
    Text:ejemplo
;

public OnGameModeInit() {
    ejemplo = TextDrawCreate(557.000000, 380.000000, "~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut ~b~hola ~r~hello ~w~hi ~g~salut");
    return 1;
}

public OnPlayerConnect(playerid) {
    TextDrawShowForPlayer(playerid, ejemplo);
    return 1;
}



Respuesta: Encuentra el error del usuario anterior - adri1 - 02.02.2013

If you use color codes (such as ~R~ ~G~) beyond 255th character the client will crash trying to display the textdraw.

Caracteres: 287 .
Creo que el error es que darнa crash


EDIT: Reto:

pawn Code:
//CMD:traer(playerid, params)...
new pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
SetPlayerPos(params[0], pos[1], pos[0], pos[2]);
PD: 2 errores, y no es params[0]