Jump to content

[C++] Ayuda con 2 funciones.


Rafa23Alzira

Mensajes recomendados

Bueno chicos, como de c++ no tengo ni puta idea pregunto esto antes de testearlo, ya que me tiro 5 o 6 horas para compilar el source xd

 

He creado dos funciones para recibir y cambiar el yang del gremio, instantáneamente, ya que por función en questlib y eso no se cambia. Quiero saber si alguien que sepa un poco me puede decir si está bien, se puede hacer de otra manera mejor o cualquier cosa al respecto. Gracias.

 

guild.get_gold (recibir el yang)

	int guild_get_gold(lua_State* L)
	{
		luaL_checknumber(L, 1);

		CGuild * pkGuild = CGuildManager::instance().FindGuild((DWORD) lua_tonumber(L, 1));

		if (pkGuild)
			lua_pushnumber(L, pkGuild->GetGuildMoney());
		else
			lua_pushnumber(L, 0);

		return 1;
	}

guild.change_gold (cambiar el yang)

	int guild_change_gold(lua_State * L)
	{
		int gold = (int)lua_tonumber(L, -1);
		
		CGuild * pkGuild = CGuildManager::instance().FindGuild((DWORD) lua_tonumber(L, 1));

		if (gold + pkGuild->GetGuildMoney() < 0)
			sys_err("QUEST wrong ChangeGold %d (now %d)", gold, pkGuild->GetGuildMoney());
		else{
			/*DBManager::instance().SendMoneyLog(MONEY_LOG_QUEST, pkGuild->GetName(), gold);*/
			DBManager::instance().Query("UPDATE guild%s SET gold=%d WHERE name = %s", get_table_postfix(), gold, pkGuild->GetName());

		}

		return 0;
	}
Enlace para comentar
Compartir en otros sitios

POINT_GOLD Esta creado en pkguild?

Sabes a lo que me refiero?

 

Tampoco entiendo esto, de donde lo has cogido?

((DWORD) lua_tonumber(L, 1));

 

GetGuildMoney Esto esta creado? 

Edite unas cosas que se me habían colado. Lo de 

int gold = (int)lua_tonumber(L, -1);
lo he cogido del pc.get_gold
Enlace para comentar
Compartir en otros sitios

El de cambiar el gold lo habria hecho así (no lo e probado)

int guild_change_gold(lua_State* L)
{
	if(!lua_isnumber(L,1) || !lua_isnumber(L,2))
	{
		lua_pushboolean(L,false);
		return 0;
	}

	int guild = lua_tonumber(L,1);
	int gold = lua_tonumber(L,2);
	
	
	if (gold + pkGuild->GetGuildMoney() < 0)
	{
		lua_pushboolean(L,false);
        return 0;
	}

	DBManager::instance().Query("UPDATE guild%s SET gold=%d WHERE id = %s", get_table_postfix(), gold, guild);
	lua_pushboolean(L,true);
	return 1;
}
En quest sería

guild.change_gold(pc.get_guild(),cantidad)
Enlace para comentar
Compartir en otros sitios

El de cambiar el gold lo habria hecho así (no lo e probado)

int guild_change_gold(lua_State* L)
{
	if(!lua_isnumber(L,1) || !lua_isnumber(L,2))
	{
		lua_pushboolean(L,false);
		return 0;
	}

	int guild = lua_tonumber(L,1);
	int gold = lua_tonumber(L,2);
	
	
	if (gold + pkGuild->GetGuildMoney() < 0)
	{
		lua_pushboolean(L,false);
        return 0;
	}

	DBManager::instance().Query("UPDATE guild%s SET gold=%d WHERE id = %s", get_table_postfix(), gold, guild);
	lua_pushboolean(L,true);
	return 1;
}
En quest sería

guild.change_gold(pc.get_guild(),cantidad)

Si no me sirve la manera 1 probaré la tuya, gracias ^^

Enlace para comentar
Compartir en otros sitios

Vale, ya me funcionan las dos, resulta que era así:

guild.change_money(pc.get_guild(),4000)
chat(guild.get_gold(pc.get_guild()))

Pero me queda un problemilla con la primera función, la del cambio, cuando la uso el gold cambia en la base de datos pero no en el juego, y si uso la de get me devuelve el valor antiguo, vamos que no se guarda y no cambiará.

Enlace para comentar
Compartir en otros sitios

Vale, ya me funcionan las dos, resulta que era así:

guild.change_money(pc.get_guild(),4000)
chat(guild.get_gold(pc.get_guild()))

Pero me queda un problemilla con la primera función, la del cambio, cuando la uso el gold cambia en la base de datos pero no en el juego, y si uso la de get me devuelve el valor antiguo, vamos que no se guarda y no cambiará.

Tienes que hacer refresh en binario

Enlace para comentar
Compartir en otros sitios

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...