Mensajes: 1,191
Temas: 41
Registro en: Jun 2014
Reputación:
8
Hay veces que loguea de spec y es cuando solo hay un player vivo de algun equipo! Que puede ser?
Código PHP: public func_login_success( id ) { switch(g_modo) { case WESKER: engclient_cmd(id, "jointeam", "1") case ASSASSIN: engclient_cmd(id, "jointeam", "2") case SNIPER: engclient_cmd(id, "jointeam", "1") case SURVIVOR: engclient_cmd(id, "jointeam", "1") case NEMESIS: engclient_cmd(id, "jointeam", "2") case PRIMER_ZOMBIE: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) case SWARM: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) case MULTIPLE_INFECCION: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) case LEON: engclient_cmd(id, "jointeam", "1") case PLAGUE: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) } if(!g_hudmodoON) engclient_cmd(id, "jointeam",(getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) engclient_cmd(id, "joinclass", "1") g_estado[id] = CONECTADO if((g_modo == PRIMER_ZOMBIE || g_modo == MULTIPLE_INFECCION) && g_hudmodoON) set_task(0.1, "Respawn" , id) }
Mensajes: 1,867
Temas: 57
Registro en: Oct 2014
Reputación:
16
En vez de usar engclient_cmd () pasalos al equipo con fm_set_user_team (estoy del cel) fijate como lo hace el zp
Mensajes: 417
Temas: 53
Registro en: May 2014
03/04/2017, 02:39 PM
(Última modificación: 03/04/2017, 02:44 PM por Ipolito.)
Código PHP: new g_random[ 33 ];
public func_login_success( id ) { static random_team; random_team = random_num(0, 1)
if(random_team) g_random[ id ] = CS_TEAM_T else g_random[ id ] = CS_TEAM_CT
switch( g_modo ) { case WESKER, SNIPER, SURVIVOR, LEON: ForceJoinTeam( id, CS_TEAM_CT ) case ASSASSIN, NEMESIS: ForceJoinTeam( id, CS_TEAM_T ) case PRIMER_ZOMBIE, SWARM, MULTIPLE_INFECCION, PLAGUE: ForceJoinTeam( id, (getHumans() >= getZombies()) ? g_random[ id ] : (getHumans() == 1 ? CS_TEAM_CT : CS_TEAM_T)) } if(!g_hudmodoON) ForceJoinTeam( id, (getHumans() >= getZombies()) ? g_random[ id ] : (getHumans() == 1 ? CS_TEAM_CT : CS_TEAM_T)) }
const m_iVGUI = 510;
public ForceJoinTeam( const id, const team ) { static iRestore; if ( ( iRestore = get_pdata_int( iId,m_iVGUI ) ) & 1<<0 ) set_pdata_int( iId, m_iVGUI, iRestore & ~(1<<0) ); set_msg_block( get_user_msgid( "ShowMenu" ), BLOCK_SET ); set_msg_block( get_user_msgid("VGUIMenu"), BLOCK_SET ); cs_set_user_team( id, team )
g_estado[id] = CONECTADO if((g_modo == PRIMER_ZOMBIE || g_modo == MULTIPLE_INFECCION) && g_hudmodoON) set_task(0.4, "Respawn" , id) set_msg_block( get_user_msgid( "ShowMenu" ), BLOCK_NOT ); set_msg_block( get_user_msgid("VGUIMenu"), BLOCK_NOT ); if ( iRestore & 1<<0 ) set_pdata_int( iId, m_iVGUI, iRestore ); }
No se me ocurre una mejor forma
Mensajes: 1,191
Temas: 41
Registro en: Jun 2014
Reputación:
8
Necesito saber por que pasa eso u.u
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
Veo el code y a vista se mira sin problemas....quizás sea en algunas verificaciones que salen malas. Igual yo lo haría así, lo mismo que lo tuyo, solo que mas ordenatito:
Código PHP: enum { JOIN_TEAM_ONE, JOIN_TEAM_TWO, JOIN_RANDOM_TEAM_MAYBE }
public func_login_success( id ) { new I_JoinType; switch (g_modo) { case WESKER: I_JoinType = JOIN_TEAM_ONE case ASSASSIN: I_JoinType = JOIN_TEAM_TWO case SNIPER: I_JoinType = JOIN_TEAM_ONE case SURVIVOR: I_JoinType = JOIN_TEAM_ONE case NEMESIS: I_JoinType = JOIN_TEAM_TWO case PRIMER_ZOMBIE: I_JoinType = JOIN_RANDOM_TEAM_MAYBE case SWARM: I_JoinType = JOIN_RANDOM_TEAM_MAYBE case MULTIPLE_INFECCION: I_JoinType = JOIN_RANDOM_TEAM_MAYBE case LEON: I_JoinType = JOIN_TEAM_ONE case PLAGUE: I_JoinType = JOIN_RANDOM_TEAM_MAYBE } switch (I_JoinType) { case JOIN_TEAM_ONE: engclient_cmd(id, "jointeam", "1") case JOIN_TEAM_TWO: engclient_cmd(id, "jointeam", "2") case JOIN_RANDOM_TEAM_MAYBE: { if (getHumans() >= getZombies()) engclient_cmd(id, "jointeam", "5") else { if (getHumans() == 1) engclient_cmd(id, "jointeam", "1") else engclient_cmd(id, "jointeam", "2") } } } // No se que tanta prioridad tenga la variable "g_hudmodoON", pero yo la dejo como lo tienes if(!g_hudmodoON) engclient_cmd(id, "jointeam",(getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) engclient_cmd(id, "joinclass", "1") g_estado[id] = CONECTADO if((g_modo == PRIMER_ZOMBIE || g_modo == MULTIPLE_INFECCION) && g_hudmodoON) set_task(0.1, "Respawn" , id) }
Mensajes: 1,191
Temas: 41
Registro en: Jun 2014
Reputación:
8
(03/04/2017, 05:24 PM)Chamo. escribió: Veo el code y a vista se mira sin problemas....quizás sea en algunas verificaciones que salen malas. Igual yo lo haría así, lo mismo que lo tuyo, solo que mas ordenatito:
Código PHP: enum { JOIN_TEAM_ONE, JOIN_TEAM_TWO, JOIN_RANDOM_TEAM_MAYBE }
public func_login_success( id ) { new I_JoinType; switch (g_modo) { case WESKER: I_JoinType = JOIN_TEAM_ONE case ASSASSIN: I_JoinType = JOIN_TEAM_TWO case SNIPER: I_JoinType = JOIN_TEAM_ONE case SURVIVOR: I_JoinType = JOIN_TEAM_ONE case NEMESIS: I_JoinType = JOIN_TEAM_TWO case PRIMER_ZOMBIE: I_JoinType = JOIN_RANDOM_TEAM_MAYBE case SWARM: I_JoinType = JOIN_RANDOM_TEAM_MAYBE case MULTIPLE_INFECCION: I_JoinType = JOIN_RANDOM_TEAM_MAYBE case LEON: I_JoinType = JOIN_TEAM_ONE case PLAGUE: I_JoinType = JOIN_RANDOM_TEAM_MAYBE } switch (I_JoinType) { case JOIN_TEAM_ONE: engclient_cmd(id, "jointeam", "1") case JOIN_TEAM_TWO: engclient_cmd(id, "jointeam", "2") case JOIN_RANDOM_TEAM_MAYBE: { if (getHumans() >= getZombies()) engclient_cmd(id, "jointeam", "5") else { if (getHumans() == 1) engclient_cmd(id, "jointeam", "1") else engclient_cmd(id, "jointeam", "2") } } } // No se que tanta prioridad tenga la variable "g_hudmodoON", pero yo la dejo como lo tienes if(!g_hudmodoON) engclient_cmd(id, "jointeam",(getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) engclient_cmd(id, "joinclass", "1") g_estado[id] = CONECTADO if((g_modo == PRIMER_ZOMBIE || g_modo == MULTIPLE_INFECCION) && g_hudmodoON) set_task(0.1, "Respawn" , id) }
Funciona correctamente, debería ser la forma rancia que lo hice jaja
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
Te funciona correctamente el tuyo o el que te di? aunque es lo miso
Ya se soluciono tu problema?
Mensajes: 1,191
Temas: 41
Registro en: Jun 2014
Reputación:
8
03/04/2017, 05:44 PM
(Última modificación: 03/04/2017, 05:45 PM por AGustiN.)
(03/04/2017, 05:39 PM)Chamo. escribió: Te funciona correctamente el tuyo o el que te di? aunque es lo miso
Ya se soluciono tu problema?
Uh, no... volvi a testear y pasa lo mismo, igual que el anterior jaja (el tuyo)
y esto me pasa cuando hay un solo player vivo en cualquiera de los 2 teams
Mensajes: 2,454
Temas: 14
Registro en: Oct 2013
Reputación:
51
¿Qué significa "Hay veces que loguea de spec"?
No hago trabajos privados. Si necesitás ayuda, abrí un nuevo tema.
¿Buscás un ejemplo o algún modo de juego? Podés echarle un vistazo a mis aportes.
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
03/04/2017, 05:56 PM
(Última modificación: 03/04/2017, 06:00 PM por Chamo..)
Pues no entiendo por que sucede.....mis sospechas según tus palabras, recaen en:
Pero no puedo decir nada, sin haber visto lo que hace/devuelve esa función.
En todo caso, quizás lo tomes en cuenta, podrías bloquear todo lo que tenga que ver con la selección de equipos.
Yo hice un post relacionado a ello, tal vez quieras darle una mirada
PD: @Treki, supongo que se refiere a que aveces el jugador se queda en spect, cuando debería entrar a un equipo.
Mensajes: 1,191
Temas: 41
Registro en: Jun 2014
Reputación:
8
(03/04/2017, 05:51 PM)Treki escribió: ¿Qué significa "Hay veces que loguea de spec"? No entra a ningun team, se queda de spec
Mensajes: 2,454
Temas: 14
Registro en: Oct 2013
Reputación:
51
Probaste la forma de Ipolito?
No hago trabajos privados. Si necesitás ayuda, abrí un nuevo tema.
¿Buscás un ejemplo o algún modo de juego? Podés echarle un vistazo a mis aportes.
Mensajes: 1,191
Temas: 41
Registro en: Jun 2014
Reputación:
8
(03/04/2017, 06:06 PM)Treki escribió: Probaste la forma de Ipolito?
Necesito que use el jointeam
Mensajes: 2,454
Temas: 14
Registro en: Oct 2013
Reputación:
51
(03/04/2017, 06:16 PM)AGustiN escribió: (03/04/2017, 06:06 PM)Treki escribió: Probaste la forma de Ipolito?
Necesito que use el jointeam
Lo usa, nada mas que en otra función aparte.
No hago trabajos privados. Si necesitás ayuda, abrí un nuevo tema.
¿Buscás un ejemplo o algún modo de juego? Podés echarle un vistazo a mis aportes.
Mensajes: 1,191
Temas: 41
Registro en: Jun 2014
Reputación:
8
03/04/2017, 06:19 PM
(Última modificación: 03/04/2017, 06:26 PM por AGustiN.)
(03/04/2017, 06:17 PM)Treki escribió: (03/04/2017, 06:16 PM)AGustiN escribió: (03/04/2017, 06:06 PM)Treki escribió: Probaste la forma de Ipolito?
Necesito que use el jointeam
Lo usa, nada mas que en otra función aparte.
Entonces no me funciona correctamente
Código PHP: public func_login_success( id ) { switch(g_modo) { case WESKER: engclient_cmd(id, "jointeam", "1") case ASSASSIN: engclient_cmd(id, "jointeam", "2") case SNIPER: engclient_cmd(id, "jointeam", "1") case SURVIVOR: engclient_cmd(id, "jointeam", "1") case NEMESIS: engclient_cmd(id, "jointeam", "2") case PRIMER_ZOMBIE: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) case SWARM: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) case MULTIPLE_INFECCION: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) case LEON: engclient_cmd(id, "jointeam", "1") case PLAGUE: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) } if(!g_hudmodoON) engclient_cmd(id, "jointeam", "5") engclient_cmd(id, "joinclass", "1") g_estado[id] = CONECTADO if((g_modo == PRIMER_ZOMBIE || g_modo == MULTIPLE_INFECCION) && g_hudmodoON) set_task(0.1, "Respawn" , id) }
getZombies() { static iZombies; static id; iZombies = 0; for(id = 1; id <= g_maxplayers; ++id) { if(is_user_alive(id) && g_zombie[id]) ++iZombies; } return iZombies; }
getHumans() { static iHumans; static id; iHumans = 0; for(id = 1; id <= g_maxplayers; ++id) { if(is_user_alive(id) && !g_zombie[id]) ++iHumans; } return iHumans; }
public message_VGUIMenu( iMsgid, iDest, id ) { if( g_estado[id] == CONECTADO || get_msg_arg_int(1) != 2) return PLUGIN_HANDLED; show_login_menu( id ); return PLUGIN_HANDLED; }
public message_ShowMenu( iMsgid, iDest, id ) { if( g_estado[id] == CONECTADO) return PLUGIN_CONTINUE; static sMenuCode[ 33 ]; get_msg_arg_string( 4, sMenuCode, charsmax( sMenuCode ) ); if( containi( sMenuCode, "Team_Select" ) != -1 ) return PLUGIN_HANDLED; return PLUGIN_CONTINUE; }
Mensajes: 2,105
Temas: 25
Registro en: Jan 2014
Reputación:
20
(03/04/2017, 06:19 PM)AGustiN escribió: Código PHP: if(!g_hudmodoON) engclient_cmd(id, "jointeam", "5")
Que hace eso?.
(25/03/2015, 10:35 PM)hud escribió: (25/03/2015, 10:30 PM)meTaLiCroSS escribió: *edit* puto
Cabe.
Mensajes: 417
Temas: 53
Registro en: May 2014
Código PHP: new g_random[ 33 ][2];
public func_login_success( id ) { static random_team; random_team = random_num(0, 1)
if(random_team) g_random[ id ] = "2" else g_random[ id ] = "1"
switch( g_modo ) { case WESKER, SNIPER, SURVIVOR, LEON: ForceJoinTeam( id, "1" ) case ASSASSIN, NEMESIS: ForceJoinTeam( id, "2" ) case PRIMER_ZOMBIE, SWARM, MULTIPLE_INFECCION, PLAGUE: ForceJoinTeam( id, (getHumans() >= getZombies()) ? g_random[ id ] : (getHumans() == 1 ? "1" : "2")) } if(!g_hudmodoON) ForceJoinTeam( id, (getHumans() >= getZombies()) ? g_random[ id ] : (getHumans() == 1 ? "1" : "2")) }
const m_iVGUI = 510;
public ForceJoinTeam( const id, const team[] ) { static iRestore; if ( ( iRestore = get_pdata_int( iId,m_iVGUI ) ) & 1<<0 ) set_pdata_int( iId, m_iVGUI, iRestore & ~(1<<0) ); set_msg_block( get_user_msgid( "ShowMenu" ), BLOCK_SET ); set_msg_block( get_user_msgid("VGUIMenu"), BLOCK_SET ); engclient_cmd(id, "jointeam", team) engclient_cmd(id, "joinclass", "1")
g_estado[id] = CONECTADO if((g_modo == PRIMER_ZOMBIE || g_modo == MULTIPLE_INFECCION) && g_hudmodoON) set_task(0.4, "Respawn" , id) set_msg_block( get_user_msgid( "ShowMenu" ), BLOCK_NOT ); set_msg_block( get_user_msgid("VGUIMenu"), BLOCK_NOT ); if ( iRestore & 1<<0 ) set_pdata_int( iId, m_iVGUI, iRestore ); }
Mensajes: 1,191
Temas: 41
Registro en: Jun 2014
Reputación:
8
03/04/2017, 09:27 PM
(Última modificación: 03/04/2017, 09:28 PM por AGustiN.)
(03/04/2017, 06:43 PM)Ipolito escribió: Código PHP: new g_random[ 33 ][2];
public func_login_success( id ) { static random_team; random_team = random_num(0, 1)
if(random_team) g_random[ id ] = "2" else g_random[ id ] = "1"
switch( g_modo ) { case WESKER, SNIPER, SURVIVOR, LEON: ForceJoinTeam( id, "1" ) case ASSASSIN, NEMESIS: ForceJoinTeam( id, "2" ) case PRIMER_ZOMBIE, SWARM, MULTIPLE_INFECCION, PLAGUE: ForceJoinTeam( id, (getHumans() >= getZombies()) ? g_random[ id ] : (getHumans() == 1 ? "1" : "2")) } if(!g_hudmodoON) ForceJoinTeam( id, (getHumans() >= getZombies()) ? g_random[ id ] : (getHumans() == 1 ? "1" : "2")) }
const m_iVGUI = 510;
public ForceJoinTeam( const id, const team[] ) { static iRestore; if ( ( iRestore = get_pdata_int( iId,m_iVGUI ) ) & 1<<0 ) set_pdata_int( iId, m_iVGUI, iRestore & ~(1<<0) ); set_msg_block( get_user_msgid( "ShowMenu" ), BLOCK_SET ); set_msg_block( get_user_msgid("VGUIMenu"), BLOCK_SET ); engclient_cmd(id, "jointeam", team) engclient_cmd(id, "joinclass", "1")
g_estado[id] = CONECTADO if((g_modo == PRIMER_ZOMBIE || g_modo == MULTIPLE_INFECCION) && g_hudmodoON) set_task(0.4, "Respawn" , id) set_msg_block( get_user_msgid( "ShowMenu" ), BLOCK_NOT ); set_msg_block( get_user_msgid("VGUIMenu"), BLOCK_NOT ); if ( iRestore & 1<<0 ) set_pdata_int( iId, m_iVGUI, iRestore ); }
Sigue pasando lo mismo :/
(03/04/2017, 06:41 PM)hud escribió: (03/04/2017, 06:19 PM)AGustiN escribió: Código PHP: if(!g_hudmodoON) engclient_cmd(id, "jointeam", "5")
Que hace eso?.
cuando no hay modos g_hudmodoON esta en 0
Mensajes: 158
Temas: 6
Registro en: Mar 2017
Reputación:
10
Why you dont use cs_set_user_team ?
Mensajes: 1,191
Temas: 41
Registro en: Jun 2014
Reputación:
8
03/04/2017, 11:03 PM
(Última modificación: 03/04/2017, 11:04 PM por AGustiN.)
(03/04/2017, 10:24 PM)CrazY. escribió: Why you dont use cs_set_user_team ?
I've done it as a last resort
use jointeam "5" y luego use cs_set_user_team() no quedaba otra.
Gracias a todos
Mensajes: 2,105
Temas: 25
Registro en: Jan 2014
Reputación:
20
(03/04/2017, 10:24 PM)CrazY. escribió: Why you dont use cs_set_user_team ?
Because, he set the player when is in the UNASSIGNED team, if you use cs_set_user_team native, the cam player and origins, not be refreshed, and the player will be BUG. Using jointeam command, isn't happen.
@AGustiN
No entiendo exactamente el problema. Podes explicarlo mejor?. Cuando es que sucede, como y que es lo que queres hacer?.
(25/03/2015, 10:35 PM)hud escribió: (25/03/2015, 10:30 PM)meTaLiCroSS escribió: *edit* puto
Cabe.
Mensajes: 1,191
Temas: 41
Registro en: Jun 2014
Reputación:
8
03/04/2017, 11:50 PM
(Última modificación: 03/04/2017, 11:52 PM por AGustiN.)
(03/04/2017, 11:04 PM)hud escribió: (03/04/2017, 10:24 PM)CrazY. escribió: Why you dont use cs_set_user_team ?
Because, he set the player when is in the UNASSIGNED team, if you use cs_set_user_team native, the cam player and origins, not be refreshed, and the player will be BUG. Using jointeam command, isn't happen.
@AGustiN
No entiendo exactamente el problema. Podes explicarlo mejor?. Cuando es que sucede, como y que es lo que queres hacer?.
El sistema de cuentas, al loguear llama a esa funcion, lo que pasa es que hay veces que no entra a ningun team, se queda de spectador!. Esto sucede cuando hay 1 player vivo en cualquiera de los 2 teams.
Mensajes: 3,284
Temas: 41
Registro en: Jan 2014
Reputación:
28
Prueba esto:
(03/04/2017, 02:05 PM)AGustiN escribió: Código PHP: public func_login_success( id ) { set_pdata_int(id, 125, (get_pdata_int(id, 125, 5) & ~(1<<8)), 5)
switch(g_modo) { case WESKER: engclient_cmd(id, "jointeam", "1") case ASSASSIN: engclient_cmd(id, "jointeam", "2") case SNIPER: engclient_cmd(id, "jointeam", "1") case SURVIVOR: engclient_cmd(id, "jointeam", "1") case NEMESIS: engclient_cmd(id, "jointeam", "2") case PRIMER_ZOMBIE: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) case SWARM: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) case MULTIPLE_INFECCION: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) case LEON: engclient_cmd(id, "jointeam", "1") case PLAGUE: engclient_cmd(id, "jointeam", (getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) } if(!g_hudmodoON) engclient_cmd(id, "jointeam",(getHumans() >= getZombies()) ? "5" : (getHumans() == 1 ? "1" : "2")) engclient_cmd(id, "joinclass", "1") g_estado[id] = CONECTADO if((g_modo == PRIMER_ZOMBIE || g_modo == MULTIPLE_INFECCION) && g_hudmodoON) set_task(0.5, "Respawn" , id) // Ponlo así, evitaras bugs (créeme xD) }
Mensajes: 417
Temas: 53
Registro en: May 2014
(03/04/2017, 11:50 PM)AGustiN escribió: (03/04/2017, 11:04 PM)hud escribió: (03/04/2017, 10:24 PM)CrazY. escribió: Why you dont use cs_set_user_team ?
Because, he set the player when is in the UNASSIGNED team, if you use cs_set_user_team native, the cam player and origins, not be refreshed, and the player will be BUG. Using jointeam command, isn't happen.
@AGustiN
No entiendo exactamente el problema. Podes explicarlo mejor?. Cuando es que sucede, como y que es lo que queres hacer?.
El sistema de cuentas, al loguear llama a esa funcion, lo que pasa es que hay veces que no entra a ningun team, se queda de spectador!. Esto sucede cuando hay 1 player vivo en cualquiera de los 2 teams.
Algun plugin que haga interferencia ? Algun error en logs ?
Mensajes: 158
Temas: 6
Registro en: Mar 2017
Reputación:
10
Ok.. I think now I understand.. If you execute the function before of player Spawn, dont will work?
Try search about logevent round start..
|