ChuchoGamer Posted February 27, 2018 Report Share Posted February 27, 2018 buenas noches necesito de su ayuda cuando le pico al item no me llegan los coins alguien me dice como puedo solucionarlo los item tiene el type 18 dejare foto del error que me sale al no llegar los coins nose se me explique bien pero igual dejo foto aver se me pueden solucionarlo la quest quest mt2rayoferos_coins begin state start begin when 27992.use or 27993.use or 27994.use begin --------------------------------------------- local mysql_user = "root"; local mysql_pass = "daroo"; --------------------------------------------- coins = { [27992] = { "Moneda de Oro", 1000}, [27993] = { "Moneda de Plata", 500}, [27994] = { "Moneda de Bronce", 250} } say_title(""..coins[item.get_vnum()][1].."") say("Si utilizas esta moneda puedes obtener una") say("determinada cantidad de coins canjeables en la") say("ItemShop del servidor.") say("Con esta "..coins[item.get_vnum()][1].." obtendrás "..coins[item.get_vnum()][2].." coins.") say("") say("¿Quieres canjear la moneda por "..coins[item.get_vnum()][2].." coins?") local s = select("Si","No"); if s == 1 then if mt2rayoferos_coins.item_revision(item.get_count()) == true then os.execute("mysql -u '"..mysql_user.."' --password='"..mysql_pass.."' --execute='UPDATE account.account SET coins = coins + "..coins[item.get_vnum()][2].." WHERE id = "..pc.get_account_id()..";'") say_title(""..coins[item.get_vnum()][1].."") say("¡Felicidades!") say("Has obtenido "..coins[item.get_vnum()][2].." coins.") say("Entra en la ItemShop de nuestro servidor para") say("canjearlas.") item.remove() elseif mt2rayoferos_coins.item_revision(item.get_count()) == false then chat("ERROR") else chat("ERROR") end else return end end function item_revision(count) if count >= 1 then if item.get_vnum() == 0 or item.get_vnum() == nil then return false else return true end elseif count < 1 then return false else return false end end end end Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación. Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación. Link to comment Share on other sites More sharing options...
Dilong Posted February 27, 2018 Report Share Posted February 27, 2018 Esta mal, para empezar no veo la necesidad de tocar datos del MySQL para que una quest inserte una query Link to comment Share on other sites More sharing options...
Dilong Posted February 27, 2018 Report Share Posted February 27, 2018 Spoiler quest coins begin state start begin when 27992.use or 27993.use or 27994.use begin say_title("texto") say("Cual cupon deseas cambiarlo por Dr´s") local coin = {"1000","500","50","Salir"} local coin2 = select_table(coin) if coin2 >= table.getn(coin) or coin2 < 1 then return end local coins3 = { {27992, 1000}, {27993, 500}, {27994, 50}, } if pc.count_item(coins3[coin2][1]) < 1 then chat("No tienes este cupon") return end mysql_query("UPDATE account.account SET coins = coins + "..coins3[coin2][2].." WHERE id = "..pc.get_account_id()..";'") notice("Canjeado "..coins3[coin2][2].." Dr´s ") pc.remove_item(coins3[coin2][1]) end end end Link to comment Share on other sites More sharing options...
Jfirewall Posted February 27, 2018 Report Share Posted February 27, 2018 quest coins begin state start begin when 27992.use or 27993.use or 27994.use begin coins = { [27992] = { "Moneda de Oro", 1000}, [27993] = { "Moneda de Plata", 500}, [27994] = { "Moneda de Bronce", 250} } say_title(""..coins[item.get_vnum()][1].."") say("Si utilizas esta moneda puedes obtener una") say("determinada cantidad de coins canjeables en la") say("ItemShop del servidor.") say("Con esta "..coins[item.get_vnum()][1].." obtendras "..coins[item.get_vnum()][2].." coins.") say("") say("¿Quieres canjear la moneda por "..coins[item.get_vnum()][2].." coins?") local s = select("Si","No") if s == 2 then return end say_title(""..coins[item.get_vnum()][1].."") say("Felicidades!") say("Has obtenido "..coins[item.get_vnum()][2].." coins.") say("Entra en la ItemShop de nuestro servidor para") say("canjearlas.") pc.cambiar_coins(coins[item.get_vnum()][2]) item.remove() end end end questlua_pc.cpp #ifdef ENABLE_FUNCION_COINS int pc_cambiar_coins(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); const char * coins = lua_tostring(L, 1); char szQuerycoins[QUERY_MAX_LEN]; snprintf(szQuerycoins, sizeof(szQuerycoins), "UPDATE account.account SET coins=coins+'%s' WHERE id=%u", coins, ch->GetDesc()->GetAccountTable().login); DBManager::Instance().DirectQuery(szQuerycoins); db_clientdesc->DBPacket(HEADER_GD_RELOAD_ADMIN, 0, NULL, 0); return 0; } #endif { "cambiar_coins", pc_cambiar_coins }, service.h #define ENABLE_FUNCION_COINS Link to comment Share on other sites More sharing options...
Shang Posted February 27, 2018 Report Share Posted February 27, 2018 hace 1 hora, Jfirewall dijo: db_clientdesc->DBPacket(HEADER_GD_RELOAD_ADMIN, 0, NULL, 0); Link to comment Share on other sites More sharing options...
ChuchoGamer Posted February 27, 2018 Author Report Share Posted February 27, 2018 questlua_pc.cpp #ifdef ENABLE_FUNCION_COINS int pc_cambiar_coins(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); const char * coins = lua_tostring(L, 1); char szQuerycoins[QUERY_MAX_LEN]; snprintf(szQuerycoins, sizeof(szQuerycoins), "UPDATE account.account SET coins=coins+'%s' WHERE id=%u", coins, ch->GetDesc()->GetAccountTable().login); DBManager::Instance().DirectQuery(szQuerycoins); db_clientdesc->DBPacket(HEADER_GD_RELOAD_ADMIN, 0, NULL, 0); return 0; } #endif { "cambiar_coins", pc_cambiar_coins }, service.h #define ENABLE_FUNCION_COINS donde pongo esto Link to comment Share on other sites More sharing options...
ChuchoGamer Posted February 28, 2018 Author Report Share Posted February 28, 2018 hace 22 horas, Dilong dijo: Debes iniciar sesión para ver el contenido del enlace en esta publicación. Ocultar contenido quest coins begin state start begin when 27992.use or 27993.use or 27994.use begin say_title("texto") say("Cual cupon deseas cambiarlo por Dr´s") local coin = {"1000","500","50","Salir"} local coin2 = select_table(coin) if coin2 >= table.getn(coin) or coin2 < 1 then return end local coins3 = { {27992, 1000}, {27993, 500}, {27994, 50}, } if pc.count_item(coins3[coin2][1]) < 1 then chat("No tienes este cupon") return end mysql_query("UPDATE account.account SET coins = coins + "..coins3[coin2][2].." WHERE id = "..pc.get_account_id()..";'") notice("Canjeado "..coins3[coin2][2].." Dr´s ") pc.remove_item(coins3[coin2][1]) end end end la puse no pasa nda no me da el coins ni se va el item etcc Link to comment Share on other sites More sharing options...
Dilong Posted February 28, 2018 Report Share Posted February 28, 2018 Sirve, solo faltaba un pequeño tilde o punto en la parte del mysql_query Spoiler mysql_query("UPDATE account.account SET coins= coins + "..coins3[coin2][2].." WHERE id= '"..pc.get_account_id().."';") Debes iniciar sesión para ver el contenido del enlace en esta publicación. Link to comment Share on other sites More sharing options...
ChuchoGamer Posted February 28, 2018 Author Report Share Posted February 28, 2018 hace 4 minutos, Dilong dijo: Sirve, solo faltaba un pequeño tilde o punto en la parte del mysql_query Debes iniciar sesión para ver el contenido del enlace en esta publicación. Ocultar contenido mysql_query("UPDATE account.account SET coins= coins + "..coins3[coin2][2].." WHERE id= '"..pc.get_account_id().."';") Debes iniciar sesión para ver el contenido del enlace en esta publicación. otra cosa ya me jalo pero cuando le pico al 1000coins me lo da y todo pero lo que pasa es que me vuelve salir las opcion de 1000 y 500 y 250 de coins en vez de que me diga Gracias por Canejear y asi quest coins begin state start begin when 500231.use or 500231.use or 500231.use begin say_title("Bienvenido Aqui Puedes Escojer la opcion del coins que quieres que te demos") say("Lo cual cuando selecciones se te quitara el item y te daran coins") local coins = {"1000","500","250","Salir"} local coins2 = select_table(coins) if coins2 >= table.getn(coins) or coins2 < 1 then return end local coins3 = { {500231, 1000}, {500231, 500}, {500231, 250}, } if pc.count_item(coins3[coins2][1]) < 1 then chat("No tienes este cupon") return end mysql_query("UPDATE account.account SET coins = coins + "..coins3[coins2][2].." WHERE id = "..pc.get_account_id()..";'") notice("Has Recibido "..coins3[coins2][2].." Coins ") pc.remove_item(coins3[coins2][1]) end end end Link to comment Share on other sites More sharing options...
Dilong Posted February 28, 2018 Report Share Posted February 28, 2018 Yo puse que fuera asi, pero al final si no tienes los de 1000 o 500 te saldra que no lo tienes, es logica Link to comment Share on other sites More sharing options...
ChuchoGamer Posted February 28, 2018 Author Report Share Posted February 28, 2018 hace 6 minutos, Dilong dijo: Yo puse que fuera asi, pero al final si no tienes los de 1000 o 500 te saldra que no lo tienes, es logica si lo que me refiero es esto deja te mando foto Link to comment Share on other sites More sharing options...
ChuchoGamer Posted February 28, 2018 Author Report Share Posted February 28, 2018 si me da los coins y eso ya cheke que se me los dan pero me sale esto que esta en la foto dice que recibe si lo recibe pero me sale la tabla de las opciones de los coins yo supongo que cuando seleccionas las cantidad del coins te deve decir recibistes el coins y ya se cierra la opciones de donde seleccionamos eso que esta en la foto nose se me explique aqui esta la foto del problema Debes iniciar sesión para ver el contenido del enlace en esta publicación. Link to comment Share on other sites More sharing options...
Dilong Posted February 28, 2018 Report Share Posted February 28, 2018 Habras dañado el codigo, en mi caso si selecciono me dan los puntos, elimina el item correspondiente y se cierra le ventana Link to comment Share on other sites More sharing options...
ChuchoGamer Posted February 28, 2018 Author Report Share Posted February 28, 2018 hace 5 minutos, Dilong dijo: Habras dañado el codigo, en mi caso si selecciono me dan los puntos, elimina el item correspondiente y se cierra le ventana entonces que hago amigo ayudame xD toy bien pendejoo yo xD Link to comment Share on other sites More sharing options...
Dilong Posted February 28, 2018 Report Share Posted February 28, 2018 Vuelve a editarlo de nuevo, pondre la quest ya con el detalle arreglado del mysql_query() Spoiler quest coins begin state start begin when 27992.use or 27993.use or 27994.use begin say_title("texto") say("Cual cupon deseas cambiarlo por Dr´s") local coin = {"1000","500","50","Salir"} local coin2 = select_table(coin) if coin2 >= table.getn(coin) or coin2 < 1 then return end local coins3 = { {27992, 1000}, {27993, 500}, {27994, 50}, } if pc.count_item(coins3[coin2][1]) < 1 then chat("No tienes este cupon") return end mysql_query("UPDATE account.account SET coins= coins + "..coins3[coin2][2].." WHERE id= '"..pc.get_account_id().."';") notice("Canjeado "..coins3[coin2][2].." Dr´s ") pc.remove_item(coins3[coin2][1]) end end end Link to comment Share on other sites More sharing options...
Recommended Posts