Ir para conteúdo

Natanael Beckman

Conde
  • Total de itens

    554
  • Registro em

  • Última visita

  • Dias Ganhos

    7

Tudo que Natanael Beckman postou

  1. FezZinN orbigado pela ajuda ae... Seria mais eu corrigir esses erros se eles acontececem comigo... Mais o problema é que instalo perfeitamente e não acontece nenhum error.
  2. Vou baixar e conferir acredito que esteja muito bom. Desde já parabéns pelo seu esforço. Rep+
  3. Já estou ajustando agora é só ter paciência ;x
  4. Bom, eu vou explicar o sistema... A maior parte do sistema vip usar o globalevent para remover um dia de vip a cada 24 horas, mas, e se o seu serv tem 23 horas de uptime é um problema. O dia não poderia ser removido, até eu fixar ele, agora o dia de vip será removido em uma hora específica, se você configurá-lo para duas horas, o dia vip será removido em duas horas por isso, se o serv cair para ele como 3 minutos ainda irá remover os dias vip em duas horas. Ele funciona para toda a conta, assim como uma conta premium. Testado em TheForgottenServer 0.3.6 / 0.4 Este sistema VIP contém: Próprias funções Lua Automática removedor dia. OnLogin script para verificar vip. Remover Comando Dias Vip. Adicionar comando Dias Vip. Auto teleporter templo quando vipdays mais!. Agora vamos da incio ao nosso Tutorial. 1° Execute isso no seu phpmyadmin. ALTER TABLE `accounts` ADD `vipdays` int(11) NOT NULL DEFAULT 0; 2° Vai até data/lib/function.lua e adicione isto na primeira linha: --- Vip functions by Kekox function getPlayerVipDays(cid) local Info = db.getResult("SELECT `vipdays` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1") if Info:getID() ~= LUA_ERROR then local days= Info:getDataInt("vipdays") Info:free() return days end return LUA_ERROR end function doAddVipDays(cid, days) db.executeQuery("UPDATE `accounts` SET `vipdays` = `vipdays` + " .. days .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";") end function doRemoveVipDays(cid, days) db.executeQuery("UPDATE `accounts` SET `vipdays` = `vipdays` - " .. days .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";") end 3° Vai até data/creaturescript/scripts/login.lua e registrar esse coder: registerCreatureEvent(cid, "VipCheck") E logo após crie um arquivo com o nome vipcheck.lua dentro de data/creaturescript/scripts/ e adicione dentro do arquivo criado este coder: --- Script by Kekox function onLogin(cid) if getPlayerVipDays(cid) >= 1 then doPlayerSendTextMessage(cid, 19, "You have ".. getPlayerVipDays(cid) .." vip days left.") end return true end E em data/creaturescript/creaturescripts.xml: <event type="login" name="VipCheck" event="script" value="vipcheck.lua"/> 4° Agora vei até data/globalevents/scripts/ crie um arquivo.lua com o nome daysremover.lua e adicione este coder ao arquivo criado: --- Script by Kekox function onTimer() db.executeQuery("UPDATE accounts SET vipdays = vipdays - 1 WHERE vipdays > 0;") return true end E logo após em data/globalevents/globalevents.xml adicione: <globalevent name="VipDaysRemover" time="00:01" event="script" value="daysremover.lua"/> Você pode alterar o tempo quando: (hora = "00:01"). Se você tem um dia a mais ou a menos de vip, quando você fizer login vai receber uma mensagem: VIP Tile 5º Agora vamos até data/movements/scripts/viptile.lua Adicione este coder: --- Script by Kekox function onStepIn(cid, item, position, fromPosition) if getPlayerVipDays(cid) == 0 then doTeleportThing(cid, fromPosition, FALSE) end return true end E logo após em data/movements/movements.xml <movevent type="StepIn" actionid="13500" event="script" value="viptile.lua"/> VIP days command 6° Vai até data/talkactions/scripts/adddays.lua Adicone este coder: --- Script by Kekox. function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local t = string.explode(param, ",") t[1] = tonumber(t[1]) if(not t[1]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.") return true end local pid = cid if(t[2]) then pid = getPlayerByNameWildcard(t[2]) if(not pid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[2] .. " not found.") return true end end if(t[1] > 365) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You can only add max 365 vip days.") return true end sender = getPlayerByNameWildcard(cid) doAddVipDays(pid, t[1]) doPlayerSendTextMessage(cid, "You have added ".. t[1] .." vip days to ".. t[2]) doPlayerSendTextMessage(pid, sender .." just added you ".. t[1] .." vip days.") return true end Em data/talkactions/talkactions.xml/ adicione: <talkaction log="yes" words="/adddays" access="5" event="script" value="adddays.lua"/> Remove VIP days command 7° Em data/talkactions/scripts/removedays.lua adicione: --- Script by Kekox fixed by Shawak. function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local t = string.explode(param, ",") t[1] = tonumber(t[1]) if(not t[1]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.") return true end local pid = cid if(t[2]) then pid = getPlayerByNameWildcard(t[2]) if(not pid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[2] .. " not found.") return true end end if(t[1] > 365) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You can only add max 365 vip days.") return true end sender = getPlayerByNameWildcard(cid) doRemoveVipDays(pid, t[1]) doPlayerSendTextMessage(cid, "You have removed ".. t[1] .." vip days to ".. t[2]) doPlayerSendTextMessage(pid, sender .." just removed you ".. t[1] .." vip days.") return true end E em data/talkactions/scripts/talkactions.xml/ adicione: <talkaction log="yes" words="/removedays" access="5" event="script" value="removedays.lua"/> VIP Door 8° Em data/actions/scripts/vipdoor.lua adicione: function onUse(cid, item, frompos, item2, topos) if getPlayerVipDays(cid) >= 1 then pos = getPlayerPosition(cid) if pos.x == topos.x then if pos.y < topos.y then pos.y = topos.y + 1 else pos.y = topos.y - 1 end elseif pos.y == topos.y then if pos.x < topos.x then pos.x = topos.x + 1 else pos.x = topos.x - 1 end else doPlayerSendTextMessage(cid,22,"Stand in front of the door.") return true end doTeleportThing(cid,pos) doSendMagicEffect(topos,12) else doPlayerSendTextMessage(cid,22,'Only VIP Account can go there.') end return true end Em data/actions/actions.xml adicione: <action actionid="2112" event="script" value="vipdoor.lua"/> Effect only for VIP players 9° Em globalevents/scripts/vipEffect.lua adicione: function onThink(interval, lastExecution) for _, name in ipairs(getOnlinePlayers()) do local cid = getPlayerByName(name) if getPlayerVipDays(cid) >= 1 then doSendMagicEffect(getPlayerPosition(cid), 27) doSendAnimatedText(getPlayerPosition(cid), "VIP!", TEXTCOLOR_RED) end end return true end Em data/globalevents/globalevents.xml adicione: <globalevent name="vipEffect" interval="2" script="vipEffect.lua"/> Auto temple teleporter quando VIP days acabar! 10° Em data/creaturescripts/scripts/templeteleport.lua adicione: function onLogin(cid) if getPlayerVipDays(cid) > 0 then setPlayerStorageValue(cid, 20500, 1) elseif getPlayerVipDays(cid) == 0 and getPlayerStorageValue(cid, 20500) == 1 then doTeleportThing(cid, getPlayerMasterPos(cid)) setPlayerStorageValue(cid, 20500, -1) end return true end Em data/creaturescripts/scripts/login.lua register: registerCreatureEvent(cid, "TempleTeleporter") E em data/creaturescripts/creaturescripts.xml adicione: <event type="login" name="TempleTeleporter" event="script" value="templeteleport.lua"/> Functions usadas: getPlayerVipDays(cid) --- Usá-lo para verificar quantos dias vip o jogador tem. doAddVipDays(cid, days) --- Use-o para adicionar dias vip para alguém. doRemoveVipDays(cid, days) --- Use-a para remover dias vip para alguém. Creditos: Kekox
  5. Beleza eu não estava ciente disto mais irei verificar e em breve a solução.
  6. @ExlasH Nunca vi isso ;x Mais o site ta funcionando né? @TheSleeper Obrigado pelo comentario ;D
  7. use esse servidor: http://www.xtibia.com/forum/topic/133830-oficial-real-server-patch-225-854-857/
  8. Não consegui entrar, mais você tem certeza que no config.lua todas as informações osbre a database estão corretas? Abre htdocs/config/config.ini e me mostra o que tem dentro dele.
  9. Cara tem alguma coisa que você está fazendo de errado reveja com calma. Isso é muito simples isso ae é só falta de atenção reveja tudo novamente tem algo errado nos seus procedimentos. Mais uma vez eu digo faça tudo do zero.
  10. Mano faz o seguinte faz um teste, pega um real server, cria uma nova database importar o sql do realserver e ajuste tudo corretamente no config.lua: sqlType = "mysql" sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "xxxx" sqlDatabase = "xxxxx" sqlFile = "forgottenserver.s3db" sqlKeepAlive = 0 mysqlReadTimeout = 5000 mysqlWriteTimeout = 5000 encryptionType = "sha1" E ver o que da mano.
  11. Cara, faça tudo novamente nova database tudo do zero. Normalmente está havendo alguma interferencia devido alguma ação sua irregular que você não está lembrado. Aqui eu instalo normalmente e assim como varios também instalam normalmente.
  12. Faz assim data/movements/scripts/azerusdeath.lua Bota assim: function onStepIn(cid, item, position, fromPosition) local yalahar = {x=32780, y=31168, z=14, stackpos=253} if item.itemid == 9738 then doTeleportThing(cid, yalahar, TRUE) doSendMagicEffect(yalahar,12) end return TRUE end Ae após isso abre o items.xml procura por ctrl+f o id 9708 modifica todos porque se não modificar vai ficar dando como item duplicado mais o principal é o 9738. <item fromid="9708" toid="9713" name="burnt wall" /> <item fromid="9729" toid="9730" article="a" name="small window" /> <item fromid="9739" toid="9740" article="a" name="ghost charm"> <attribute key="weight" value="900" /> </item> <item id="9737" article="a" name="ghost charm"> <attribute key="weight" value="900" /> </item> <item id="9738" article="a" name="Magic Forcefield"> <attribute key="decayTo" value="0"/> <attribute key="duration" value="120"/> </item>
  13. Muito bom mesmo aprovado ;p Pena que não é compativél com vip_time apenas storage ninguém usa mais isso então modifiquei com a ajuda do tatu hunter. <?PHP $zapytanie = $SQL->query('SELECT p.name, p.online, p.level FROM players p JOIN accounts a ON a.id = p.account_id WHERE a.vip_time > 0;')->fetchall(); foreach($zapytanie as $zap) { $kolor++; if(is_int($kolor / 2)) $bgcolor = $config['site']['lightborder']; else $bgcolor = $config['site']['darkborder']; if($zap['online'] == 0) $player_list_status = '<font color="red"><b>Offline</b></font>'; else $player_list_status = '<font color="green"><b>Online</b></font>'; $tresc .= '<TR BGCOLOR='.$bgcolor.'><TD><center><a rel="nofollow" href="?subtopic=characters&name='.urlencode($zap['name']).'">'.$zap['name'].'</a></TD><TD><center>'.$zap['level'].'</TD><TD><center>'.$player_list_status.'</center></TD></TR>'; } $main_content .= '<center><hr/><b>Jogadores Vip Do '.$config['server']['serverName'].'.</b><hr/><br><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><TR BGCOLOR="'.$config['site']['vdarkborder'].'"><TD CLASS=white WIDTH=32%><b><center>Name</center></b></TD><TD class="white" WIDTH=32%><b><center>Level</center></b></TD><TD class="white" WIDTH=32%><b><center>Status</center></b></TD></TR>'.$tresc.'</TABLE>'; $main_content .= '<div align="right"><small><b></small></div><br />'; ?>
  14. Muito bom gostei também mais tarde irei adicionar. FezZinN obrigado pela recomendação.
  15. Cara solucionar é facíl você não está fazendo correto!
  16. Cara vai na pasta mods e ver se tem algo relacionado a isso firstitems se tiver deleta eu estava com esse problema porem sulicionei mais enqaunto n solucionava fiz um quest bem no templo. function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, 19881) < 1 then doPlayerSendTextMessage(cid,22,"Voce acabou de conseguir os FristItems!") local bag = doPlayerAddItem(cid, 2000, 1) doAddContainerItem(bag, 2152, 50) doAddContainerItem(bag, 2389, 1) doAddContainerItem(bag, 2190, 1) doAddContainerItem(bag, 2182, 1) doAddContainerItem(bag, 2525, 1) doAddContainerItem(bag, 2383, 1) doAddContainerItem(bag, 2430, 1) doAddContainerItem(bag, 2643, 1) doAddContainerItem(bag, 2457, 1) doAddContainerItem(bag, 2647, 1) doAddContainerItem(bag, 2463, 1) doAddContainerItem(bag, 2789, 100) setPlayerStorageValue(cid, 19881, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.") end return TRUE end <action uniqueid="19881" event="script" value="quests/templeinicio.lua"/> Actions.
  17. kkkkkkkkkkkkkkkkk Não sabe o que é source. Concordo com o Tryller cadê a source?
  18. lol man.... Fecha esse tópico aqui abre o outro, shynzo bota tua source la e acabo já vimos que o otland está incorreto se o problema é só source shynzo noob bota la e fim de papo. Dgprado passou do cumulo da infantilidade oMg, tava indo até bem com o discurso dele mais no final o homen se cagou todin.
  19. Use esse: local firstItems = {} firstItems[0] = { 2525, 3965, 2124, 2457, 2647, 2643 } firstItems[1] = { 2525, 2190, 2124, 2457, 2647, 2643 } firstItems[2] = { 2525, 2182, 2124, 2457, 2647, 2643 } firstItems[3] = { 2525, 2389, 2124, 2457, 2647, 2643 } firstItems[4] = { 2525, 2428, 2124, 2457, 2647, 2643 } function onLogin(cid) if getPlayerStorageValue(cid, 30001) == -1 then for i = 1, table.maxn(firstItems[getPlayerVocation(cid)]) do doPlayerAddItem(cid, firstItems[getPlayerVocation(cid)][i], 1) end if getPlayerSex(cid) == 0 then doPlayerAddItem(cid, 2463, 1) else doPlayerAddItem(cid, 2463, 1) end local bag = doPlayerAddItem(cid, 2000, 1) doAddContainerItem(bag, 2152, 100) doAddContainerItem(bag, 2554, 1) doAddContainerItem(bag, 2120, 1) doAddContainerItem(bag, 7618, 1) setPlayerStorageValue(cid, 30001, 1) end return TRUE end E no login.lua ver se isso ake ta registrado: registerCreatureEvent(cid, "FirstItems")
  20. Diz que a um erro em data/globalevents/scripts/shop.lua Apaga o que tem la e bota isso: -- ### CONFIG ### -- message send to player by script "type" (types you can check in "global.lua") SHOP_MSG_TYPE = 19 -- time (in seconds) between connections to SQL database by shop script SQL_interval = 30 -- ### END OF CONFIG ### function onThink(interval, lastExecution) local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';") if(result_plr:getID() ~= -1) then while(true) do id = tonumber(result_plr:getDataInt("id")) action = tostring(result_plr:getDataString("action")) delete = tonumber(result_plr:getDataInt("delete_it")) cid = getCreatureByName(tostring(result_plr:getDataString("name"))) if isPlayer(cid) == TRUE then local itemtogive_id = tonumber(result_plr:getDataInt("param1")) local itemtogive_count = tonumber(result_plr:getDataInt("param2")) local container_id = tonumber(result_plr:getDataInt("param3")) local container_count = tonumber(result_plr:getDataInt("param4")) local add_item_type = tostring(result_plr:getDataString("param5")) local add_item_name = tostring(result_plr:getDataString("param6")) local received_item = 0 local full_weight = 0 if add_item_type == 'container' then container_weight = getItemWeightById(container_id, 1) if isItemRune(itemtogive_id) == TRUE then items_weight = container_count * getItemWeightById(itemtogive_id, 1) else items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count) end full_weight = items_weight + container_weight else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) if isItemRune(itemtogive_id) == TRUE then full_weight = getItemWeightById(itemtogive_id, 1) else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) end end local free_cap = getPlayerFreeCap(cid) if full_weight <= free_cap then if add_item_type == 'container' then local new_container = doCreateItemEx(container_id, 1) local iter = 0 while iter ~= container_count do doAddContainerItem(new_container, itemtogive_id, itemtogive_count) iter = iter + 1 end received_item = doPlayerAddItemEx(cid, new_container) else local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) received_item = doPlayerAddItemEx(cid, new_item) end if received_item == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.') db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.') end end if not(result_plr:next()) then break end end result_plr:free() end return TRUE end Vai até /xampp/htdocs/config/config.php $config['site']['shop_system'] = 0 Troque por: $config['site']['shop_system'] = 1 vai ate data/lib/constant.lua: Add: InitShopComunication = 0 Execute in phpmyadmin: CREATE TABLE IF NOT EXISTS `z_ots_comunication` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `param1` varchar(255) NOT NULL, `param2` varchar(255) NOT NULL, `param3` varchar(255) NOT NULL, `param4` varchar(255) NOT NULL, `param5` varchar(255) NOT NULL, `param6` varchar(255) NOT NULL, `param7` varchar(255) NOT NULL, `delete_it` int(2) NOT NULL default '1', PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_offer` ( `id` int(11) NOT NULL auto_increment, `points` int(11) NOT NULL default '0', `itemid1` int(11) NOT NULL default '0', `count1` int(11) NOT NULL default '0', `itemid2` int(11) NOT NULL default '0', `count2` int(11) NOT NULL default '0', `offer_type` varchar(255) default NULL, `offer_description` text NOT NULL, `offer_name` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_history_item` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `offer_id` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `z_shop_history_pacc` ( `id` int(11) NOT NULL auto_increment, `to_name` varchar(255) NOT NULL default '0', `to_account` int(11) NOT NULL default '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL default '0', `price` int(11) NOT NULL default '0', `pacc_days` int(11) NOT NULL default '0', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL default '0', `trans_real` int(11) NOT NULL default '0', PRIMARY KEY (`id`) ); ready
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...