Domanda [SCRIPT] NPC per Warp

Stato
Discussione chiusa ad ulteriori risposte.

TwlightTavern

Utente Silver
26 Novembre 2010
69
23
0
80
Ciao, stavo provando a creare uno script per un NPC che ti warpa nella terra dei giganti
quando sei al livello 70, se no ti dice che non puoi ancora entrare
Ho fatto questo che vedete qui sotto ma mi da errore
qualcuno sa come posso correggerlo?

(probabilmente lo script è bruttissimo, non ne ho mai fatti e volevo imparare un po)

Codice:
quest terra_giganti begin
    state start begin
        when login or levelup with pc.level >0 begin
            set_state(to_terra_giganti)
        end
    end
        
    state to_terra_giganti begin
        when 20083.chat."Terra dei Giganti" begin
            if pc.get_level <= 69 then
            say_title("Terra dei Giganti")
            say("Devi raggiungere il livello 70")
            say("per entrare in questa mappa.")
            say("Torna quando sarai piu forte")
            return
            end
            elseif pc.get_level => 70 then
            say_title("Terra dei Giganti"
            say("Salve, sei sicuro di volere")
            say("entrare in questa mappa?")
            local a= select("Si","No")
            if 1==a then
                say("Stai per entrare nella")
                say_color("rosso", "Terra dei Giganti!")
                wait()
                pc.warp(828300, 763500)
                return
            end
            say("E' molto pericolosa quella terra..")
            say("hai fatto la scelta piu saggia")
            say("")
        end
            

    end

end
 
cosi come hai fatto te è orrendo...prova cosi:


Codice:
say_title("terra giganti")
say("Ciao,vuoi essere teletrasportato nella terra dei giganti?")
local a = select ("Si","No")
if a == 1 then
if pc.get_level >= 70 then
say_title("terra giganti")
say("buonafortuna")
pc.warp(828300, 76350)
return
else
say("sei troppo debole")
end --chiusura if
elseif a == 2 then
say("torna do vuoi")
end --chiusura local
 
Codice:
quest terra_giganti begin
state start begin
when 20083.chat."Terra dei Giganti" begin
say_title("Terra dei Giganti")
say("Salve, sei sicuro di volere")
say("entrare in questa mappa?")
local a = select ("Si","No")
if a == 1 then
if pc.get_level >= 70 then
say("Stai per entrare nella")
say_color("rosso", "Terra dei Giganti!")
pc.warp(828300, 76350)
return
else
say("Devi raggiungere il livello 70")
say("per entrare in questa mappa.")
say("Torna quando sarai piu forte")
end
elseif a == 2 then
say("Torna quando ti sentirai pronto")
end
end

Ho provato a mettere questa ma mi da errore
 
Codice:
quest terra_giganti begin
state start begin
when 20083.chat."Terra dei Giganti" begin
say_title("Terra dei Giganti")
say("Salve, sei sicuro di volere")
say("entrare in questa mappa?")
local a = select ("Si","No")
if a == 1 then
if pc.get_level >= 70 then
say("Stai per entrare nella")
say_color("rosso", "Terra dei Giganti!")
pc.warp(828300, 76350)
return
else
say("Devi raggiungere il livello 70")
say("per entrare in questa mappa.")
say("Torna quando sarai piu forte")
end
elseif a == 2 then
say("Torna quando ti sentirai pronto")
end
end

Ho provato a mettere questa ma mi da errore

aggiungimi su skype cosi ti aiuto sennò non ci capiamo

skype: xx007xx95
 
Ultima modifica:
Ecco a te un codice decisamente migliore da cui poter prendere esempio.
Lo puoi trovare in questo pacchetto: http://www.inforge.net/community/me...ati/347986-release-locale-royalsword-org.html
Ah per l'appunto, il codice è migliorabile ulteriormente, ma già così è ottimo.

PHP:
quest map_warp begin
    state start begin
        when 9012.chat."Vuoi viaggiare?" begin
            local index = pc.get_map_index()
            if index==1 or index==2 or index==21 or index==22 or index==41 or index==42 then
                map_warp.teleport_intro()
            else
                map_warp.menu3()
            end
        end
        
        function teleport_intro()
            say_npc_name(9012)
            say_fast("E' un villaggio carino...")
            say_fast("Ma non succede mai nulla qui?")
            say_fast("Ci sono sicuramente posti più interessanti")
            say_fast("da visitare, ma non tutti sono pacifici")
            say_fast("come questo bel villaggio...")
            say_fast("Vuoi che ti mostri qualche luogo, dunque?")
            local s = select("Si","No")
            if s==2 then return end
            map_warp.main_menu()
        end
        
        function main_menu()
            say_npc_name(9012)
            
            local maps_table = {
                {20, "Valle di Seungryong", {{4021, 6739}, {2704, 7399}, {3213, 8080},},},
                {20, "Deserto di Yongbi", {{2178, 6272}, {2219, 5027}, {3440, 5025},},},
                {30, "Monte Sohan", {{4342, 2906}, {3752, 1749}, {4918, 1736},},},
                {40, "Doyyumhwan", {{5994, 7563}, {5978, 6222}, {7307, 6898},},},
                {40, "Torre dei demoni", {5905, 1105},},
                {50, "Cava dei ragni", {600, 4961},},
                {60, "Bosco fantasma", {2887, 57},},
                {60, "Bosco rosso", {11199, 708},},
                {65, "Terra dei giganti", {8282, 7634},},
                {75, "Atlantide", {2843, 8106},},
                {100, "Deserto della morte", {11225, 7248},},
                {130, "Castello dei troll", {6861, 92},},
                {180, "Rupe del drago", {4704, 7346},},
            }
            
            local available_maps = {}
            
            for i=1, table.getn(maps_table) do
                local map = maps_table[i]
                local map_level = map[1]
                
                if map_level <= pc.get_level() then
                    local map_name = map[2]
                    local count_index = table.getn(map[3])
                    local my_coordinates = map[3]
                    if count_index == 3 then    -- Sono presenti 3 tipi di coordinate, quindi un tipo per regno
                        my_coordinates = my_coordinates[pc.get_empire()]
                    end
                    
                    table.insert(available_maps, {map_name, my_coordinates})        -- {nome della mappa, {coordinata X, coordinata Y}}
                    -- test_chat(map_name..": "..my_coordinates[1].." "..my_coordinates[2])
                end
            end
            
            local maps_name = {}
            for i=1, table.getn(available_maps) do
                table.insert(maps_name, available_maps[i][1])
            end
            table.insert(maps_name, "Chiudi")
            
            if table.getn(maps_name)==1 then
                say_reward("Le prime mappe saranno disponibili")
                say_reward("da livello 20. Sei ancora troppo giovane!")
                return
            end
            
            local menu = select_table(maps_name)
            if menu!=table.getn(maps_name) then
                local x = available_maps[menu][2][1]
                local y = available_maps[menu][2][2]
                -- test_chat(x.." "..y)
                pc.warp(x*100, y*100)
            end
            return
        end
        
        function menu3()
            say_npc_name(9012)
            say_fast("Ehi! Mi ricordo di te!")
            say_fast("Ma cosa ci fai qui?")
            say_fast("Dai su, scegli una destinazione che")
            say_fast("ti riporto a casa!")
            
            local maps_table = {
                {"Zona Yongan",      1, {4693, 9642},},
                {"Zona Jayang",      1, {3608, 8776},},
                {"Zona Joan",      2, { 557, 1580},},
                {"Zona Bokjung",  2, {1377, 2346},},
                {"Zona Pyungmoo", 3, {9694, 2785},},
                {"Zona Bakra",      3, {8731, 2426},},
            }
            
            local available_maps = {}
            
            for i=1, table.getn(maps_table) do
                local map = maps_table[i]
                local map_name = map[1]
                local map_empire = map[2]
                local map_coordinates = map[3]
                
                if map_empire == pc.get_empire() then
                    table.insert(available_maps, {map_name, map_coordinates})    -- {nome della mappa, {coordinata X, coordinata Y}}
                end
                -- test_chat(map_name..": "..map_coordinates[1].." "..map_coordinates[2])
            end
            
            local maps_name = {}
            for i=1, table.getn(available_maps) do
                table.insert(maps_name, available_maps[i][1])
            end
            table.insert(maps_name, "Chiudi")
            
            local menu = select_table(maps_name)
            if menu!=table.getn(maps_name) then
                local x = available_maps[menu][2][1]
                local y = available_maps[menu][2][2]
                -- test_chat(x.." "..y)
                pc.warp(x*100, y*100)
            end
            return
        end
     end
end
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom