Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Quest Eventowy Teleport dla Gildii


Rekomendowane odpowiedzi

Opublikowano

Cześć

Wpadł mi pomysł dla zrealizowania eventów dla najlepszej gildii miesiąca można to różnie organizować w zależności jak kogo wyobraźnia poniesie.

 

Quest nie jest testowany jeśli coś nie zadziała proszę o post z błędem lub pomysłem udoskonalającym quest,a chętnie go zrealizuje.

 

Mini Instrukcja dla zielonych:

 

Quest jest wykonany na funkcji mysql_direct_query jest to query działające na source oczywiście trzeba sobie to dodać temat gdzieś lata po forum :)

 

 

 

Event Teleport GUILD:

 

 

quest event_guild begin
    state start begin
        function check_player()
            local q1, dane = mysql_direct_query("SELECT guild, status FROM player.event_guild WHERE guild='"..guild.name().."' and status='ACTIVE';")
            if dane[1].guild == guild.name() then
                return true
            else
                return false
            end
        end
        when id_npc.chat."Wejdź na Event Gildyjny" with game.get_event_flag("event_guild") == 1 begin
            say_title("Lee Chung")
            say("Witaj "..pc.get_name().." chciałbyś się wejść na event ")
            say("gildijny lecz musisz być w odpowiedniej gildii ")
            say("Sprawdźmy Wymagania..")
            wait()
            if event_guild.check_player() == true then
                say_title("Event Gildijny")
                say("Event dla gildi "..guild.name().." jest aktywny")
                say("Czy chciałbyś się tam dostać ?")
                local s = select("Teleportuj mnie !", "Rezygnuję ")
            if s == 1 then
                pc.warp(x, y)
            else
                syschat("<"..guild.name().."> Przyjdź jak zmienisz zdanie..")
                return
            end
            return
        else
            say_title("Lee Chung")
            say_reward("Event dla twojej gildii nie jest aktywowany!")
            return
        end
        when id_npc.chat."<EVENT> Event Gildijny" with pc.is_gm() begin
            if game.get_event_flag("event_guild") == 0 then
                say_title("Lee Chung")
                say("Event jest wyłaczony czy chciałbyś go aktywować ?")
                local s = select("Event Aktywuj", "Wyjdź")
                if s == 1 and game.get_event_flag("event_guild") == 0 then
                    game.set_event_flag("event_guild", 1)
                    say("Wpisz Nazwę Gildii dla której aktywujesz Event")
                    local name_guild = input()
                    mysql_direct_query("INSERT INTO player.event_guild VALUES('"..name_guild.."', '"..pc.get_name().."', 'ACTIVE', now(), '0';")
                    return
                else
                    return
                end
            elseif game.get_event_flag("event_guild") == 1 then
                say("Event jest aktywowany czy chcesz go wyłączyć ?")
                local s1 = select("Wyłącz", "Wyjdź ")
                if s1 == 1 then
                    game.set_event_flag("event_guild", 0)
                    mysql_direct_query("UPDATE player.event_guild SET status='OFFLINE', data_off = now() WHERE status='ACTIVE';")
                    syschat("<EVENT> Pomyślnie zakończyłeś event ")
                    return
                else
                    return
                end
            end
        end
        when login or enter with game.get_event_flag("event_guild") == 0 and pc.get_map_index() == id_mapy_eventowej begin
            syschat("<EVENT> Event Gildijny nie jest aktywowany zostaniesz teleportowany")
            warp_to_village()
        end
    end
end

 

 

http://wklej.to/xr0eG

Tabeli SQL player:

 

 

 

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `event_guild`
-- ----------------------------
DROP TABLE IF EXISTS `event_guild`;
CREATE TABLE `event_guild` (
  `guild` varchar(24) DEFAULT NULL,
  `gm_name_active` varchar(24) DEFAULT NULL,
  `status` varchar(24) DEFAULT NULL,
  `data_start` datetime DEFAULT NULL,
  `data_off` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of event_guild
-- ----------------------------
INSERT INTO `event_guild` VALUES ('MlexiGuild', 'Mlexi', 'OFFLINE', '2015-04-23 13:53:23', '2015-04-23 13:53:11');

 

 

        
 Musicie uzupełnić:

1. id_npc

2.pc.warp(x, y) => Kordy mapy na którą ma teleportować

3.id_mapy_eventowej => Index mapy na której będzie organizowany event

 

Jest to quest banalny pisany w 5 minut mogą być błędy więc proszę o wyrozumiałość i poinformowanie mnie o tym :)

Opublikowano

Quest jest banalny, imo niepotrzebne użycie query (wszystko można oprzeć na event_flagu), poza tym wstawianie questów z teleportacją+kilka warunków nieco zaśmieca dział, ale inicjatywa przejdzie.

QufL90L.png


 

Opublikowano

@Vengard.pl

Sądze że query jest tu lepszym rozwiązaniem gdyż zapisuje nam pare ważnych informacji do bazy .

 

fae0g6.jpg

Stringi zastępujesz guild_id oraz pid, a daty timestampem i niepotrzebne tutaj query.

 

Opublikowano

Dokładnie można to zapisać eventflagami

Pliki GladoR s1/ Divine / GladoR'a s2 medium/hard

Możemy się jakos dogadać w sprawie plików PW

 

New Project Start Workout

Opublikowano

@Vengard.pl

Sądze że query jest tu lepszym rozwiązaniem gdyż zapisuje nam pare ważnych informacji do bazy .

 

fae0g6.jpg

Wszystko to jesteś w stanie zapisać do questflagów, bezpieczniejsza metoda i pewniejsza.

@Edit

I parafrazując @Endymion 'a to lepszym rozwiązaniem są gidy i pidy, bo nazwy można zmienić i może to kolidować, a id to raczej ciężko.

QufL90L.png


 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...