[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(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);
}
else if(GetPlayerTeam(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);
}
else if(GetPlayerTeam(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])//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_BLANCO, string);
}
SetPlayerInterior(playerid, 0);//Regresarlos al interior normal cada vez que spawneen
SetPlayerVirtualWorld(playerid, 0);//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 0: SetPlayerTeam(playerid,TEAM_ARGENTINA),SpawnPlayer(playerid),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),SpawnPlayer(playerid),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),SpawnPlayer(playerid),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;
}
Espero que estudies mucho, lee la wiki samp allн aprendes mucho. Y sobre todo la practica.