AnonimoHSG 68 Posted June 5, 2012 Olá pessoal da Cyber-Gamers, esse é um tópico é direcionado para os comandos que ajudaram vocês a realizar missões entre outras coisas basta criatividade, sabendo o que o comando irá realizar, esse tópico é meio grande, por isso peço desculpas pela tamanho.São eles :affect.add ( Id do Apply ( ou texto que está no questlib.lua ex: apply.ATTACK_SPEED ) , Quantidade de Bónus( entre 1 e 250 ), Duração do Bónus(em segundos ) )-- Resultado : é dado um bónus ao jogador, no entanto, se o jogador já tiver esse próprio bónus não terá efeito, para isso há outro comandoaffect.add_collect_point( Id do Apply ( ou texto que está no questlib.lua ex: apply.ATTACK_SPEED ) , Quantidade de Bónus( entre 1 e 250 ), Duração do Bónus(em segundos ) )-- Resultado : Adiciona a Quantidade de bónus desejada ao Jogador, mesmo que já há o bónus adicionado.affect.add_collect( Id do Apply ( ou texto que está no questlib.lua ex: apply.ATTACK_SPEED ) , Quantidade de Bónus( entre 1 e 250 ), Duração do Bónus(em segundos ) )-- Resultado : Adiciona a Quantidade de bónus desejada ao Jogador, mesmo que já há o bónus adicionado.affect.add_hair ??????????affect.remove_hair () --- Resultado : Remove o Penteado do Jogadoraffect_remove_good ()-- Resultado : Remove todos Bónus bons no Jogadoraffect.remove_bad ()-- Resultado : Remove todos os Bónus maus no Jogadoraffect.remove ( Id do Apply ( ou texto que está no questlib.lua ex: apply.ATTACK_SPEED ))-- Resultado : Remove todos os pontos de um Bónus ( !CUIDADO!)affect_remove_all_collect ()-- Resultado : Remove todos os Bónus que foram adicionados através de .quest=============================================================================arena.start_duel ( name , rounds )--name = Nome de jogador em String . Ex : "ReBirTH"-- rounds = Quantidade de Rondas para eles Duelarem . Ex : 5arena.is_in_arena ( Pid )-- PID = Player_ID do jogador ( MYSQL : db : player , tabela : player )-- Devolve 1 Se o jogador estiver num mapa arena, devolve 0 se não estiver.arena_add_observer ()-- Incompletoarena_get_duel_list ()-- Incompletoquest__arena_add_map ( Map_Index , start_x , start_y , end_x , end_y )-- Map_Index = Index do Mapa que querem adicionar á lista de Mapas da Arena ( numero )-- Start_x = A Coordenada X do Inicio da Arena ( numero )-- Start_y = A Coordenada Y do Inicio da Arena ( numero )-- End_x = A Coordenada X do Fim da Arena ( numero )-- End_y = A Cooordenada Y do Fim da Arena ( numero )=============================================================================ba.start ( number )-- Battle Arena.-- number = Index do Mapa a Ser Criado (?)=============================================================================building_reconstruct ()building_set_land_ownerbuilding_get_land_infobuilding_get_land_idbuilding_has_land=============================================================================dance_event.go_home()Se o Jogador Estiver no Mapa Com Index 115, é teleportado para a Cidade 1=============================================================================d.getf( "string" )-- string = O Nome da Flag ( As flag's são valores virtuais que podem ser alterados através de função, o valor de uma flag que não tenha sido declarada é 0 )d.setf ( "string" , valor )-- string = O Nome da Flag que desejamos, não importa qual for o valor dela, pode sempre ser alterada.-- valor = O valor que desejamos que a Flag receba.d.notice( "Mensagem" )-- Mensagem = A Mensagem que desejamos que seja recebida como uma Notice que só será vista por quem estiver no d.d.purge ( "???????????" )d.kill_all ()-- Resultado: Mata todos os monstros no Piso/dd.exit_all()-- Faz com que todos que estejam no d, sejam teleportados para a entrada.d.exit ()-- Teleporta o Jogador para a Cidade.d.join ( numero )-- Resultado : O Jogador junta-se a um d, e se for lider da Party, os membros são teleportados tambémd.spawn_group ( numero , numero , numero , numero , boolean ( true or false ) , numero )-- Incompletod.count_monster ()-- Resultado : Assume o valor dos monstros que estão vivos no d ( local monstrosvivos = dcount_monster () )d.all_near_to ( numero , numero )-- Incompletad.select(get_server_timer_arg())d.set_warp_at_eliminate ( Delay , Map_Index , X , Y , "regen_file" )-- Delay = Tempo em Segundos até serem teleportados quando todos os monstros forem mortos-- Map_Index = Index do d para o qual vai ser teleportado-- X = A Coordenada X para a qual vai ser teleportado-- Y = A Coordenada Y para a qual vai ser teleportado-- regen_file = Ficheiro de Regen dos Monstros a contar do game . Ex : "data/d/regent1.txt"d.set_exit_all_at_eliminate( Delay )-- Delay = Tempo em Segundos até serem teleportados quando todos os monstros forem mortos.d.check_eliminated ()-- Resultado : Verifica se todos os monstros no d estão mortosd.clear_regen ()-- Pará o Regen dos Monstros e destrói os Vivosd.set_regen_file ( "locale/regenfile.txt" )-- locale/regenfiles.txt é o directório do Regen que desejam ser activado no d ( O dírectório apartir da localização do 'game' )d.regen_file ("locale/regenfile.txt" )-- locale/regenfiles.txt é o directório do Regen que desejam ser activado no d ( O dírectório apartir da localização do 'game' )d.get_map_index ()-- Resultado : Assume o Index do Mapa do d Actual . Ex: local Actual_Index = d.get_map_index ()d.spawn_goto_mob-- Incompletad.spawn_mob ( ID , X , Y )-- ID = ID do Mob/NPC-- X = A Coordenada X para o qual o Monstro vai ser Spawnado. ( Coordenadas Locais )-- Y= A Coordenada Y para o qual o Monstro vai ser Spawnado. ( Coordenadas Locais )d.set_unique ( "nomedounique" , vid )-- nomedounique = O nome que desejam 'dar' ao Monstro(Este Especifico)-- vid = A Vid(é como o ADN de um Monstro, nunca é igual de monstro para monstro, mesmo que seja o mesmo ID, o VID é diferente )-- A Maneira de descobrir o vid : « local vid = d.spawn_mob ( ID , X , Y ) »d.spawn ( "string" , Incompleta )/* Incompleta */d.spawn_unique ( "nome_do_unique" , vnum , "string" )-- Invoca um Monstro com ID de vnumd.spawn_move_unique ( )-- Incompleto=============================================================================game.web_mall() --Acede á Cash Shop / Item Shopgame.drop_item_with_ownership ( ID , Quantidade ) -- Dropa um Item cujo dono é quem activou o Quest Event.game.drop_item( ID , Quantidade ) -- Dropa um Item sem Dono.game.open_mall() -- Abre o Armazém-Mallgame.open_safebox() -- Abre o Armazém.game.set_safebox_level( Nivel ) -- Altera o Nível do Armazém do Jogador ( Slots ).game.get_safebox_level() -- Recebe o valor do Armazém do jogador ( usar como variável ).game.request_make_guild() --Envia pedido para criar Guild.=============================================================================oxevent.give_item ( vnum , quantidade ) -- Dá um Item ao Vencedor do OXoxevent.end_event_force () -- Termina o OX ( Colocando Status a 0 ) no istanteoxevent.get_attender () -- Devolve o Vencedor do OXoxevent.quiz( numero , numero ) -- Activa uma Pergunta de OXoxevent.close() -- Os jogadores deixam de poder entrar e começa o OX ( Status 2 )oxevent.open() -- Abre o OX para os jogadores poderem entrar ( Status 1 )-- Devolve o Valor de 0 caso o ficheiro oxquiz.lua não existir e o valor de 1 caso o oxquiz.lua existir.oxevent.end_event() -- Termina o OX com um intervalo de 5 * passes_per_second. ( Status 0 )=============================================================================find_pc_cond( -level , +level , job ) -- Devolve o VID de um jogador que esteja no mesmo mapa que quem activar-- com o nível entre -level e +level e cuja Classe seja job .find_pc ( "nomedojogador" ) -- VID do Jogador ( selecionar através de pc.select_vid() )find_npc_by_vnum ( vnum ) -- Devolve o VID do NPC ( Só usar para Target.vid ( "target_name" , vid , "" )pc.select_vid ( VID ) -- Devolve o VID do Jogador que activar esta qf . E seleciona o jogador através de VID.pc.select_pid ( PID ) -- Devolve o PID do Jogador que activar esta qf . E seleciona o jogador através de PID.=============================================================================server_timer ( "name" , time ) -- Activa um Temporizador no Servidor que será activado passado time(em segundos )-- deve ser usado desta maneira -> when name.server_timer begintimer( "nomedotimer" , tempo ) -- Activa um Temporizador ligado ao jogador , com o nome de "nomedotimer" e com duração de tempo.timer ( tempo ) -- Activa um Temporizador ligado ao jogador com duração de tempo.server_loop_timer ( "nomedotemporizador" , tempo ) -- Server Timer que se repete de tempo em tempo segundos.loop_timer ( "nomedotemporizador", tempo ) -- Timer que se repete de tempo em tempo segundos.=============================================================================oh.transfer2("nomedoplayer")-- Transfere ou é transferido para a localização do jogador.oh.bless()-- MonarchHealGold é a event flag que define o preço , caso seja 0, o valor é de 2.000.000 ou ( 2kk ) . Comando : /e MonarchHealGold 1000000 Caso queira que o preço seja 1.000.000 ( 1kk )-- Dá Heal aos jogadores do Reino.oh.powerup() -- Bónus de Ataque aos jogadores do Reino. ( Preço : 5.000.000 ( 5kk ) )oh.defenseup() -- Bónus de Defesa aos jogadores do Reino ( Preço : 5.000.000 ( 5kk ) )empire_info() -- Manda um Chat sobre as Informações dos Imperadores dos Reinos .frog_to_empire_money -- Evento de Castelo.spawn_guard -- Guarda ( Evento do Castelo ).oh.defenseup() -- Bónus de Defesa ( Preço : 5.000.000 ( 5kk ) ).oh.notice("texto") -- Envia um Notice para todos os jogadores do Reino.oh.warp("nomedoplayer") -- Custa 10.000 ( 10k )-- Teleporta o Imperador para a localização do Player.oh.transfer()takemonarchmoney( quantidade / 10000 ) -- Devemos colocar o quociente da quantidade que queremos por 10000.-- Visto que o valor que for colocado entre os () , é depois multiplicado por 10.000 e removido do Monarch, portanto para evitar-- erros de cálculos, dividam a quantidade que desejam retirar por 10000 e coloquem-na correctamente.-- P.S : O Dinheiro vai ser removido ao Imperador do Reino do Jogador que executar esta função.-- Portanto se o jogador que a executar for do reino Vermelho(Shinsoo) o dinheiro será removido ao Imperador-- do Reino Shinsoo.=============================================================================pc.get_name() -- Devolve o Nome do Jogador ( em "" ) Ex : "ReBirTH"pc.get_money() -- Devolve o Valor de Yang do Jogador.pc.get_alignment() -- Devolve o Alignment do Jogador.pc.get_empire() -- Devolve o Império do Jogador ( 1 - Shinsoo(Vermelho) , 2 - Chunjo(Amarelo) , 3 - Jinno (Azul) ).pc.get_level() -- Devolve o Nível do Jogador.pc.get_job() -- Devolve a Profissão do Jogador ( 0 = Warrior/Guerreiro , 1 = Ninja, 2 = Shura/Sura , 3 = Shaman )pc.get_max_sp() -- Devolve o SP Max do Jogador.pc.get_sp() -- Devolve o SP Actual do Jogador.pc.get_weapon() -- Devolve o ID ( vnum ) do Item na Posição da Arma.pc.get_armor() -- Devolve o ID ( vnum ) do Item na Posição da Armadura.pc.get_exp() -- Devolve experiencia a um jogadorpc.get_vid() -- Devolve o VID do Jogador.pc.get_playtime() -- Devolve o Tempo de Jogo do Jogador.pc.count_item(ID) -- Devolve a Quantidade do ID no Inventário/Equipamento do Jogador.pc.isguildmaster() -- Devolve o Valor caso o jogador seja Mestre da Guild ou não.pc.is_horse_alive() -- Devolve o Valor se o Cavalo Está Vivo ou Não.pc.get_horse_level() -- Devolve o Nível do Cavalo.pc.is_clear_skill_group() -- Devolve o Valor caso o jogador tenha algum ramo de skills escolhidos 1 , caso não, 0.pc.is_dead() -- Devolve o Valor caso o jogador estiver Morto ou não.pc.get_dx() -- Devolve o Valor de Dex do Jogador.pc.get_st() -- Devolve o Valor de STR do Jogador.pc.get_iq() -- Devolve o Valor de INT do Jogador.pc.get_ht() -- Devolve o Valor de STA do Jogador.pc.is_gm() -- Devolve caso o jogador seja GM .pc.get_player_id() -- Devolve o PID do Jogador ( MySQL : player->player . ID )pc.get_empty_inventory_count() -- Devolve a Quantidade de Espaços Vazios no Inventário.pc.get_sex() -- Devolve o Sexo da Personagem. ( 1 - MALE , 2 - FEMALE )pc.reset_point() -- Remove todos os pontos Status do Jogador, e permite redistribui-los.pc.mount( ID , Tempo(Opcional) -- Permite ao jogador montar o NPC ID durante Tempo( caso não seja incluido, é permanente ) .pc.give_exp2( EXP ) -- O Jogador recebe EXP de Experiência.( Não é percentagem ).pc.change_money( Yang_variable ) -- Aumenta ou altera o yang do jogador para Yang_variable( usar -Yang_variable caso deseja remover dinheiro ).pc.destroy_guild() -- Destroi a Guild do Jogador Actual ( só usar caso o Jogador seja Mestre da Guild ).pc.warp( x00 , y00 ) -- Teleporta o Jogador para as coordenadas x00 e y00 , devem substituir o x e o y pelas coordenadas para fazer /warp.-- Ex : pc.warp ( 999900 , 999900 ) .pc.give_item2( Vnum , Quantidade ) -- Dá um Item ao Jogador cujo Id seja VNUM e com a quantidade de Quantidade.pc.enough_inventory( vnum ) -- Verifica se o jogador tem espaço para o Item - vnum . Devolve 0 caso não tenha, devolove 1 caso tenha.pc.remove_from_guild() -- Remove o Próprio Jogador da Guild.pc.change_name("nome") -- Altera o nome do jogador para nome ( deve ser usado as "" ) . é necessário relogar.pc.change_empire(empire) -- Altera o Império do Jogador para empire.pc.set_skill_level( id_da_skill , nivel_desejado ) -- Altera o Nível da Skill - id_da_skill para nivel_desejado.pc.teleport("nome_do_player") -- Teleporta o Jogador actual para a localização do jogador . Necessário "" .pc.reset_status( ID ) -- Reseta os Valores de um Stat ( 0 -- STA, 1 -- Int , 2 -- STR , 3 -- DEX )pc.clear_sub_skill() -- Redistribui os Pontos de Skills e remove os pontos todos. O Ramo de Skills continua a ser o mesmo.pc.clear_skill() -- Remove o Ramo de Skills . Possiblitando a escolha de um Ramo de Skills Diferentes .pc.setqf("name" , counter ) -- Altera o Valor do Contador com nome de name ( com "" )-- E coloca-o a valor counter. ( O Valor de um Contador não declarado, é 0 )pc.getqf("name") -- Devolve o Valor do Contador com nome de name ( com as "" ).pc.change_alignment( valor ) -- Altera o Alignment do Player para valor.=============================================================================horse.get_name() -- Devolve o Nome do Cavalo ( Com "" )horse.set_name( "nome" ) -- Altera o Nome do Cavalo para name .-- Devolve 2 se o nome for alterado.-- Devolve 1 se o nome já estiver em uso.-- Devolve 0 caso a Personagem não tenha cavalo.horse.feed() -- Alimenta o Cavalo.horse.revive() -- Resusita o Cavalo.horse.is_dead() -- Devolve o Valor de 1 caso o cavalo esteja morto, e valor de 0 caso não esteja.horse.is_mine() -- Devolve o Valor de 1 caso o cavalo for deste Player, devolve 0 caso não seja.horse.unsummon() -- Manda o Cavalo para o Estábulo.horse.summon() -- Invoca o Cavalo ( Sem montar ) .horse.unride() -- Desmonta do Cavalohorse.ride() -- Monta o Cavalohorse.is_summon() -- Devolve 1 caso o Cavalo esteja visivel, e 0 caso não esteja.horse.is_riding() -- Devolve 1 caso o jogador estiver a Montar no Cavalo, e 0 caso não esteja.horse.get_grade() -- Devolve o Grade do Cavalo ( 1 -- Iniciante, 2 -- Armado, 3 -- Militar )horse.advance() -- Aumenta 1 Nível ao Cavalo.horse.get_level() -- Devolve o Nível do Cavalo.Exemplo : Bom pessoal se colocar pc.warp( x00 , y00 ) tem de por as coordenadas inteiras, assim, podendo colocar um say, say_title, antes para informar ao player onde ele irá teleportar colocando ali como exemplo 999900, 999900, assim podendo criar já um teleportador, também poderá adicionar level para teleportar para o mapa usando uma condição.Espero ter ajudado. 1 37 Valenza, WildEgo, conta apagada and 35 others reacted to this Share this post Link to post Share on other sites
Guest Origin. Posted June 5, 2012 Melhor tut que alguma vez vi sobre Quest !Meus parabéns, e claro meu http://cyber-gamers.org/public/style_emoticons/default/451960.gif xD 1 M2Kingdoms reacted to this Share this post Link to post Share on other sites
Mocas 228 Posted June 5, 2012 Excelente :D 1 DiogoCruz1111 reacted to this Share this post Link to post Share on other sites
AnonimoHSG 68 Posted June 5, 2012 Obrigado http://cyber-gamers.org/public/style_emoticons/default/espi28.gif 1 DiogoCruz1111 reacted to this Share this post Link to post Share on other sites
Valenza 855 Posted June 5, 2012 Nossa brother , esta de parabéns, irei deixar em destaque , pois nao tem nenhuma explicação tao detalhada sobre comandos de quest, alem de me ajudar muito tambem Deixo http://cyber-gamers.org/public/style_emoticons/default/451960.gif Claro ;D Cumprimentos, 1 DiogoCruz1111 reacted to this Share this post Link to post Share on other sites
animal 0 Posted June 16, 2012 Excelente. Muito bem detalhado. Share this post Link to post Share on other sites
Cryptic 22 Posted June 25, 2012 Como é que eu coloco uma quest de um npc só a aparecer apartir de lv 50 e a desaparecer a lvl 60?Tipo sou 50 a quest aparece na loja geralQuando passo de lvl 60 ela desapareceObrigado ;) Share this post Link to post Share on other sites
.тιαgσ 624 Posted July 2, 2012 when login or levelup with pc.level >= 50 beginEste é o de começar a 50E este é o de desaparecer a 60when login or levelup with pc.level >= 60 beginset_state(__complete)endendstate __complete beginendendNãp há um codigo para isso o que podes fazer é isto, espero ter ajudado Share this post Link to post Share on other sites
beka 1 Posted July 20, 2012 Tutorial muito bem organizado Obrigado por partilhares :DCumprimentos Beka Share this post Link to post Share on other sites
marcelino671 5 Posted August 27, 2012 Outra coisa muito boa para saber programar adequedamente é estudar programação LUA: http://www.lua.org/manual/5.1/pt/manual.html#2.4.5Fiz 1 NPC de Skill usando IF, WHILE, FOR, FUNCTION, VETORES, MATRIZES, o básico q eu aprendi de lógica com C, ficou muito legal o NPC, com apenas 520 linhas de código LOL Share this post Link to post Share on other sites
Guest Henrique Oliveira Posted September 13, 2012 Melhor tut que alguma vez vi sobre Quest !Meus parabéns, e claro meu http://cyber-gamers.org/public/style_emoticons/default/451960.gif xD Share this post Link to post Share on other sites
AnonimoHSG 68 Posted September 23, 2012 Primeiramente obrigado pelos http://cyber-gamers.org/public/style_emoticons/default/451960.gif, respondendo ao marcelinho671, a lógica C é muito útil sendo por exemplo utilizada em seu caso um do while ou if else, switch, etc.. são de grande ajuda como disse para verificar a condição exemplo se eu clicar em reino shinsoo então execute isso (no caso de teleporte por exemplo.) aqueles comandos pc. ... name money está escrito que devolve a você, o que quer dizer que se eu mandar mostrar (cout), aparecerá meu gold e nome, já aqueles horse pode ser criado um npc para mostrar o status do seu cavalo o que ele mesmo faz, não irei falar muito mais juntando os comandos básicos da lógica C e esses, da para se fazer várias coisas como disse basta criatividade, contudo pode mudar aquilo ou isso mas a estrutura é a mesma praticamente. Share this post Link to post Share on other sites
@seo™ 27 Posted September 23, 2012 Pois ^^ Falta ai alguns comandos ^^ Share this post Link to post Share on other sites