SA-MP Forums Archive
[AYUDA] Error de skin en spawn - 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: [AYUDA] Error de skin en spawn (/showthread.php?tid=564496)



[AYUDA] Error de skin en spawn - RobertinoColombo - 21.02.2015

Bueno lo que pasa es que cuando selecciono cualquiera de los 3 equipos, me spawnea siempre con el mismo skin (206). Aca les dejo el GM para ver donde esta el problema:

Код:
#include <a_samp>
#include <core>
#include <float>
#include <string>
#include <file>
#include <time>
#include <datagram>
#include <a_players>
#include <a_vehicles>
#include <a_objects>
#include <a_sampdb>
#pragma tabsize 0

#define COLOR_AZUL 0x0000FFFF
#define COLOR_BLANCO 0xFFFFFFFF
#define COLOR_NEGRO 0x000000FF
#define COLOR_ROJO 0xFF0000FF
#define COLOR_AMARILLO 0xFFFF00FF
#define COLOR_NARANJA 0xFFC200FF
#define COLOR_VERDE 0x00FF00FF
#define COLOR_VIOLETA 0xFF00FFFF
#define COLOR_CELESTE 0x00FFFFFF
#define Dialogo_Equipos  (423) // definimos la id del diбlogo que aparecera para escoger un equipo
#define Dialogo_Argentina  (424) // definimos la id del diбlogo que aparecera al escoger un equipo
#define Dialogo_Chile  (425)
#define Dialogo_Brasil  (426)


new Equipo[MAX_PLAYERS];
new string[64], NombreJugador[MAX_PLAYER_NAME];


#define TEAM_ARGENTINA 0
#define TEAM_CHILE 1
#define TEAM_BRASIL 2


public OnGameModeInit()
{

	SetGameModeText("TDM v0.0.1 ESPAСOL");
	UsePlayerPedAnims();
    AddPlayerClass(206, 2043.6832,1352.4706,10.6719,91.6490, 0, 1, 0, 1, 0, 1); //ARGENTINA
	AddPlayerClass(121, 2044.8971,1282.7948,10.6719,185.0232, 0, 1, 0, 1, 0, 1); //CHILE
	AddPlayerClass(109, 2043.6832,1352.4706,10.6719,91.6490, 0, 1, 0, 1, 0, 1); //BRASIL
	return 1;
}


public OnPlayerConnect(playerid)
{
ShowPlayerDialog(playerid, Dialogo_Equipos, DIALOG_STYLE_LIST, "Selecciona un equipo", "{0000FF}Argentina\n{FF0000}Chile\n{FFFF00}Brasil", "Seleccionar", "Cerrar");
SendClientMessage(playerid, COLOR_BLANCO, "Bienvenido al servidor, si no estбs registrado utiliza /registrarse [Contraseсa] para guardar tus datos.");
SendClientMessage(playerid, COLOR_NARANJA, "Para comenzar a jugar usa /ayuda.");
SendClientMessage(playerid, COLOR_ROJO, "No te olvides de leer las /reglas para evitar ser baneado.");
	return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case Dialogo_Equipos:
        {
            if(!response) return Kick(playerid);
            if(response) // Si seleccionу uno de los equipos
            {
                switch(listitem)
                {
                    case 0: SetPlayerTeam(playerid,TEAM_ARGENTINA),ShowPlayerDialog(playerid, Dialogo_Argentina, DIALOG_STYLE_LIST, "Selecciona una clase", "Asalto\nSniper\nComandante", "Seleccionar", "Atrбs"); // Si la opciуn fue Equipo A
                    case 1: SetPlayerTeam(playerid,TEAM_CHILE),ShowPlayerDialog(playerid, Dialogo_Chile, DIALOG_STYLE_LIST, "Selecciona una clase", "Asalto\nSniper\nComandante", "Seleccionar", "Atrбs"); // Si la opciуn fue Equipo B
                    case 2: SetPlayerTeam(playerid,TEAM_BRASIL),ShowPlayerDialog(playerid, Dialogo_Brasil, DIALOG_STYLE_LIST, "Selecciona una clase", "Asalto\nSniper\nComandante", "Seleccionar", "Atrбs"); // Si la opciуn fue Equipo C
                }
            }
            return true;
        }
        case Dialogo_Argentina: // CLASES DE EQUIPO A
        {
            if(response)
            {
                switch(listitem)
                {
                    case 0:SendClientMessage(playerid,COLOR_AZUL,"*SPAWN* Equipo: Argentina / Clase: Asalto."); //SE ENVIARA UN
                    case 1:SendClientMessage(playerid,COLOR_AZUL,"*SPAWN* Equipo: Argentina / Clase: Sniper."); // MENSAJE SI SELECCIONA
                    case 2:SendClientMessage(playerid,COLOR_AZUL,"*SPAWN* Equipo: Argentina / Clase: Comandante."); // TAL CLASE
                }
            }
            return true;
        }
        case Dialogo_Chile: // CLASES DE EQUIPO B
        {
            if(response)
            {
                switch(listitem)
                {
                    case 0:SendClientMessage(playerid,COLOR_ROJO,"*SPAWN* Equipo: Chile / Clase: Asalto."); //SE ENVIARA UN
                    case 1:SendClientMessage(playerid,COLOR_ROJO,"*SPAWN* Equipo: Chile / Clase: Sniper."); // MENSAJE SI SELECCIONA
                    case 2:SendClientMessage(playerid,COLOR_ROJO,"*SPAWN* Equipo: Chile / Clase: Comandante."); // TAL CLASE
                }
            }
            return true;
        }
        case Dialogo_Brasil: // CLASES DE EQUIPO B
        {
            if(response)
            {
                switch(listitem)
                {
                    case 0:SendClientMessage(playerid,COLOR_AMARILLO,"*SPAWN* Equipo: Brasil / Clase: Asalto."); //SE ENVIARA UN
                    case 1:SendClientMessage(playerid,COLOR_AMARILLO,"*SPAWN* Equipo: Brasil / Clase: Sniper."); // MENSAJE SI SELECCIONA
                    case 2:SendClientMessage(playerid,COLOR_AMARILLO,"*SPAWN* Equipo: Brasil / Clase: Comandante."); // TAL CLASE
                }
            }
            return true;
        }

    }
    return false;
}

public OnPlayerSpawn(playerid)
{
  if(Equipo[playerid] == TEAM_ARGENTINA)
  {
	SetPlayerPos(playerid, 2043.6832,1352.4706,10.6719);
    SetPlayerColor(playerid, COLOR_AZUL);
    SetPlayerSkin(playerid, 206);
    SetPlayerAmmo(playerid, 100.0)
    GivePlayerWeapon(playerid, 24, 500);
    GivePlayerWeapon(playerid, 27, 500);
    GivePlayerWeapon(playerid, 31, 500);
  }
  if(Equipo[playerid] == TEAM_CHILE)
  {
	SetPlayerPos(playerid, 2044.8971,1282.7948,10.6719);
    SetPlayerColor(playerid, COLOR_ROJO);
    SetPlayerSkin(playerid, 121);
    SetPlayerAmmo(playerid, 100.0)
    GivePlayerWeapon(playerid, 24, 500);
    GivePlayerWeapon(playerid, 27, 500);
    GivePlayerWeapon(playerid, 31, 500);
  }
  if(Equipo[playerid] == TEAM_BRASIL)
  {
	SetPlayerPos(playerid, 2043.6832,1352.4706,10.6719);
    SetPlayerColor(playerid, COLOR_AMARILLO);
    SetPlayerSkin(playerid, 109);
    SetPlayerAmmo(playerid, 100.0)
    GivePlayerWeapon(playerid, 24, 500);
    GivePlayerWeapon(playerid, 27, 500);
    GivePlayerWeapon(playerid, 31, 500);
  }

  if(Equipo[playerid] == Equipo[playerid])
  {
    GetPlayerName(playerid,NombreJugador,MAX_PLAYER_NAME);
    format(string,sizeof string,"**SERVER: %s ha entrado al servidor.**",NombreJugador); //Mensaje. Si lo vais a modificar no cambies %s (es el nombre del jugador).
    SendClientMessageToAll(COLOR_BLANCO, string);
  }

    SetPlayerInterior(playerid, 0);//Regresarlos al interior normal cada vez que spawneen
    SetPlayerVirtualWorld(playerid, 0);//Regresarlos al mundo normal cada vez que spawneen
}


public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid,reason,playerid); // para q se muestre como tu quieres
SetPlayerScore(killerid, GetPlayerScore(killerid) + 1); // esto le suma score cada jugador q mate
GivePlayerMoney(killerid,2500); // y esto le da 1000 $ cada vez q mata a un jugador
return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/ayuda", true))
    {
        SendClientMessage(playerid, COLOR_VERDE, "SERVER: Este es el comando de ayuda.");
        return 1;
    }
    if(!strcmp(cmdtext, "/guardardatos", true))
    {
        SendClientMessage(playerid, COLOR_VERDE, "Todas tus estadisticas han sido guardadas exitosamente.");
        return 1;
    }
    return SendClientMessage(playerid, COLOR_ROJO, "**Comando inexistente**, escribe /ayuda.");
}
Ademбs es raro, debido a que en AddPlayerClass y OnPlayerSpawn les setie el skin a cada equipo. (SetPlayerSkin)


Respuesta: [AYUDA] Error de skin en spawn - jotajeda - 21.02.2015

Obvio que te va a dar if(Equipo[playerid] == TEAM_ARGENTINA) porque TEAM_ARGENTINA es igual a 0, y si comparas Equipo[playerid] con TEAM_ARGENTINA, va a dar lo mismo porque al player nunca se le dio la variable Equipo por lo tanto es cero. una de las formas correctas serнa asн:

PHP код:
#define TEAM_ARGENTINA 1
#define TEAM_CHILE 2
#define TEAM_BRASIL 3
public OnPlayerSpawn(playerid)
{
       if(
GetPlayerTeam(playerid) == TEAM_ARGENTINA)
      {
    
SetPlayerPos(playerid2043.6832,1352.4706,10.6719);
    
SetPlayerColor(playeridCOLOR_AZUL);
    
SetPlayerSkin(playerid206);
    
SetPlayerAmmo(playerid100.0)
    
GivePlayerWeapon(playerid24500);
    
GivePlayerWeapon(playerid27500);
    
GivePlayerWeapon(playerid31500);
  }
  else if(
GetPlayerTeam(playerid) == TEAM_CHILE)
  {
    
SetPlayerPos(playerid2044.8971,1282.7948,10.6719);
    
SetPlayerColor(playeridCOLOR_ROJO);
    
SetPlayerSkin(playerid121);
    
SetPlayerAmmo(playerid100.0)
    
GivePlayerWeapon(playerid24500);
    
GivePlayerWeapon(playerid27500);
    
GivePlayerWeapon(playerid31500);
  }
  else if(
GetPlayerTeam(playerid) == TEAM_BRASIL)
  {
    
SetPlayerPos(playerid2043.6832,1352.4706,10.6719);
    
SetPlayerColor(playeridCOLOR_AMARILLO);
    
SetPlayerSkin(playerid109);
    
SetPlayerAmmo(playerid100.0)
    
GivePlayerWeapon(playerid24500);
    
GivePlayerWeapon(playerid27500);
    
GivePlayerWeapon(playerid31500);
  }
  if(
Equipo[playerid] == Equipo[playerid])//wtf, esto es como poner if(0 == 0){}
  
{
    
GetPlayerName(playerid,NombreJugador,MAX_PLAYER_NAME);
    
format(string,sizeof string,"**SERVER: %s ha entrado al servidor.**",NombreJugador); //Mensaje. Si lo vais a modificar no cambies %s (es el nombre del jugador).
    
SendClientMessageToAll(COLOR_BLANCOstring);
  }
    
SetPlayerInterior(playerid0);//Regresarlos al interior normal cada vez que spawneen
    
SetPlayerVirtualWorld(playerid0);//Regresarlos al mundo normal cada vez que spawneen




Re: [AYUDA] Error de skin en spawn - RobertinoColombo - 21.02.2015

Puse lo que me dijiste pero sigue spawneando con el mismo skin 206, y a parte no me da ningun arma.


Respuesta: [AYUDA] Error de skin en spawn - jotajeda - 21.02.2015

Copiaste y pegaste o sobrescribiste? si entendiste el problema que tenнas?


Respuesta: [AYUDA] Error de skin en spawn - RobertinoColombo - 21.02.2015

La verdad no entendi el concepto completo, soy nuevo en este programa.

Copie y pegue lo que me distes.


Respuesta: [AYUDA] Error de skin en spawn - jotajeda - 21.02.2015

No tienes que copiar y pegar, almenos lee, bueno sea como sea, copia y reemplaza lo que te di.

reemplaza esto tambien:
PHP код:
case Dialogo_Equipos:
        {
            if(!
response) return Kick(playerid);
            if(
response// Si seleccionу uno de los equipos
            
{
                switch(
listitem)
                {
                    case 
0SetPlayerTeam(playerid,TEAM_ARGENTINA),SpawnPlayer(playerid),ShowPlayerDialog(playeridDialogo_ArgentinaDIALOG_STYLE_LIST"Selecciona una clase""Asalto\nSniper\nComandante""Seleccionar""Atrбs"); // Si la opciуn fue Equipo A
                    
case 1SetPlayerTeam(playerid,TEAM_CHILE),SpawnPlayer(playerid),ShowPlayerDialog(playeridDialogo_ChileDIALOG_STYLE_LIST"Selecciona una clase""Asalto\nSniper\nComandante""Seleccionar""Atrбs"); // Si la opciуn fue Equipo B
                    
case 2SetPlayerTeam(playerid,TEAM_BRASIL),SpawnPlayer(playerid),ShowPlayerDialog(playeridDialogo_BrasilDIALOG_STYLE_LIST"Selecciona una clase""Asalto\nSniper\nComandante""Seleccionar""Atrбs"); // Si la opciуn fue Equipo C
                
}
            }
            return 
true;
        } 
Espero que estudies mucho, lee la wiki samp allн aprendes mucho. Y sobre todo la practica.