tibiaa4e 86 Postado Março 7, 2007 Share Postado Março 7, 2007 (editado) Quero lhes apresentar um code q a certo tempo o frerety(the.sharpest.horn) fez para mim Qdo queria fazer aquelas alavancas do tibia q qdo puxadas "concertavam" os teleports Breve postarei umas actions usando ela Lembrando q quem usa o zorzin ot ja tem ela + com outro nome pois o zorzin q fez ela E pode ser diferente Essa eu indico para quem usa evolutions,forgotten e outros go code em luascript.cpp nos includes add: #include "teleport.h" E no meio dos lua register: //doChangeTeleportPos(uid,newpos)lua_register(m_luaState, "doChangeTeleportPos", LuaScriptInterface::luaDoChangeTeleportPos); e no final add: int LuaScriptInterface::luaDoChangeTeleportPos(lua_State *L){ //doChangeTeleportPos(uid,newpos) Position pos; uint32_t stackpos; popPosition(L, pos, stackpos); uint32_t uid = popNumber(L); ScriptEnviroment* env = getScriptEnv(); Thing* tmp = env->getThingByUID(uid); Teleport* tp = NULL; if(tmp) tp = tmp->getItem()->getTeleport(); if(tp){ tp->setDestPos(pos); lua_pushnumber(L, LUA_NO_ERROR); } else{ reportErrorFunc(getErrorDesc(LUA_ERROR_THING_NOT_FOUND)); lua_pushnumber(L, LUA_ERROR); } return 1; } em luascript.h acima de: static int luaDoRemoveItem(lua_State *L); add: static int luaDoChangeTeleportPos(lua_State *L); usando: O jeito correto de se usar é faça um teleport no map editor com as coordenadas um sqm perto (igual no rl qdo num da q é tp pro sqm norte) Ai faça um script + - menos assim: function onUse(cid, item, frompos, item2, topos)gatepos = {x=79, y=36, z=7, stackpos=1} newpos ={x=78, y=36, z=7, stackpos=1} newpos1 ={x=57, y=31, z=7, stackpos=1} tp = getThingfromPos(gatepos) if item.uid == 8100 and item.itemid == 1945 then doChangeTeleportPos(tp.uid,newpos) doTransformItem(item.uid,item.itemid+1) elseif item.uid == 8100 and item.itemid == 1946 then doChangeTeleportPos(tp.uid,newpos1) doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end Vc puxa a alavanca com uid e ele checa a pos (vc pode ate fazer pra criar tp) e muda a pos dele facil naum ? Depois farei uma estilo tibia rl qdo se puxa umas 6 alavanca em ordem ele muda o tp flws Editado Julho 22, 2007 por tibiaa4e Link para o comentário https://xtibia.com/forum/topic/44680-trocando-posi%C3%A7%C3%A3o-de-teleport/ Compartilhar em outros sites More sharing options...
soulblaster 0 Postado Março 7, 2007 Share Postado Março 7, 2007 Hiho! aeeee ta4e ;D vlww por trazer a action pra ca ^_^ e vivaa frerety =] Cya... ^_^ Link para o comentário https://xtibia.com/forum/topic/44680-trocando-posi%C3%A7%C3%A3o-de-teleport/#findComment-264412 Compartilhar em outros sites More sharing options...
suboras 0 Postado Março 10, 2007 Share Postado Março 10, 2007 Hail OPEN TIBIA =) Hail frerety (esqueceu de min =/ ...) Hail Ta4e.... Chega de "hail" heuheuhe Otimo code.. mt obrigado por liberar =D Grato, //Suboras Link para o comentário https://xtibia.com/forum/topic/44680-trocando-posi%C3%A7%C3%A3o-de-teleport/#findComment-265768 Compartilhar em outros sites More sharing options...
GM Volcano 1 Postado Julho 21, 2007 Share Postado Julho 21, 2007 (editado) Tem uma parte errada la... nt LuaScriptInterface::luaDoChangeTeleportPos(lua_State *L) { //doChangeTeleportPos(uid,newpos) Position pos; uint32_t stackpos; popPosition(L, pos, stackpos); uint32_t uid = popNumber(L); ScriptEnviroment* env = getScriptEnv(); Thing* tmp = env->getThingByUID(uid); Teleport* tp = NULL; if(tmp) tp = tmp->getItem()->getTeleport(); if(tp){ tp->setDestPos(pos); lua_pushnumber(L, LUA_NO_ERROR); } else{ reportErrorFunc(getErrorDesc(LUA_ERROR_THING_NOT_FOUND)); lua_pushnumber(L, LUA_ERROR); } return 1; } O correto é int LuaScriptInterface::luaDoChangeTeleportPos(lua_State *L) { //doChangeTeleportPos(uid,newpos) Position pos; uint32_t stackpos; popPosition(L, pos, stackpos); uint32_t uid = popNumber(L); ScriptEnviroment* env = getScriptEnv(); Thing* tmp = env->getThingByUID(uid); Teleport* tp = NULL; if(tmp) tp = tmp->getItem()->getTeleport(); if(tp){ tp->setDestPos(pos); lua_pushnumber(L, LUA_NO_ERROR); } else{ reportErrorFunc(getErrorDesc(LUA_ERROR_THING_NOT_FOUND)); lua_pushnumber(L, LUA_ERROR); } return 1; } Tem so nt o certo eh int Editado Julho 21, 2007 por GM Volcano Link para o comentário https://xtibia.com/forum/topic/44680-trocando-posi%C3%A7%C3%A3o-de-teleport/#findComment-344763 Compartilhar em outros sites More sharing options...
frerety 7 Postado Outubro 22, 2007 Share Postado Outubro 22, 2007 LAFnÇAFJÁJFlpAF !$!@$!#%!#%!, nem me avisou que ia postar :B hey, para de jogar cs e entra no msn de vez enquando o/ #GM Volcano hey, anda aprendendo C++? o// parece que existem mais programadores que no começo do ano o/ (: falta o i mesmo, deve ter sido um erro de copiar/colar :B até mais (: Link para o comentário https://xtibia.com/forum/topic/44680-trocando-posi%C3%A7%C3%A3o-de-teleport/#findComment-409267 Compartilhar em outros sites More sharing options...
Nostradamus 6 Postado Outubro 22, 2007 Share Postado Outubro 22, 2007 Essa função hoje em dia é inútil, já que existe a doCreateTeleport Link para o comentário https://xtibia.com/forum/topic/44680-trocando-posi%C3%A7%C3%A3o-de-teleport/#findComment-409337 Compartilhar em outros sites More sharing options...
Posts Recomendados