Jump to content

Jancsi7

Inactive Member
  • Posts

    10
  • Joined

  • Last visited

  • Days Won

    1
  • Feedback

    0%

Posts posted by Jancsi7

  1. Sounds like a wrong path somewhere, what's in your atlasinfo?

    metin2_map_skipia_dungeon_02 153600 1203200 6 6

     

     

     

    1222 01:36:12721 :: CMapManager::LoadMap() Invalid Map Type

     

    Metin2 has two valid map type. It's "Outdoor" and "Indoor". You need to check it.
     

    1222 01:36:12722 :: CPythonBackground::SelectViewDistanceNum(int eNum=0) mc_pcurEnvironmentData is NULL

     

     

    I think that map hasn't environment (i mean skybox)

     

    Kind Regards

    Zerelth ~ Ellie

     

    In the mapproperty file:

    ScriptType MapProperty
     
    MapType "Outdoor"
     
     
     
    And also tried rename "mapproperty.txt" to "MapProperty.txt"
  2. Hey!

     

    My problem is with grotto 2 in my client. When i want to warp into the map, the client closes.

     

    Syserr:

    1222 01:36:12721 :: CMapBase::LoadProperty(FileName=metin2_map_skipia_dungeon_02MapProperty.txt) - LoadMultipleTextData ERROR ĆÄŔĎŔĚ ľřŔ» °ˇ´ÉĽşŔĚ ¸ą˝Ŕ´Ď´Ů.
    1222 01:36:12721 :: CMapManager::LoadMap() Invalid Map Type
    1222 01:36:12722 :: CPythonBackground::SelectViewDistanceNum(int eNum=0) mc_pcurEnvironmentData is NULL
     
     
    The map is in the client (settings.txt, mapproperty.txt too), its in the atlasinfo (locale, root too). 
     
    The problem when i log into the map, it starts loading, but in the begining it is closing the client.
     
    Thanks for answers
  3. The stat reset is bugged on 34083 (I'm told only if your maximum level is set high enough). Players don't receive all of their stat points when resetting. I want to re-write this quest to give them points.

     

    quest reset_scroll begin
    state start begin
    when 71002.use begin
    say_title("Reset Scroll")
    say("You can use this scroll to") 
    say("reset stats or skills.")
    say("")
    say("Want to proceed?")
    say("")
    
    local s = select("Yes", "No")
    if 2 == s then
    return
    end
    
    say_title("Choose your Type of reset!")
    
    local l = select("Reset Skills", "Reset Stats", "Cancel!")
    		if l == 1 then
    			char_log(0, "RESET_ALL", "USE_ITEM(71002)")
    			pc.remove_item(71002)
    
    			char_log(0, "RESET_ALL", "RESET_SKILL_POINTS")
    			pc.clear_skill()
    			pc.set_skill_group(0)
    			char_log(0, "RESET_ALL", "RESET_END")
    		elseif l == 2 then
    			char_log(0, "RESET_ALL", "USE_ITEM(71002)")
    			pc.remove_item(71002)
    
    			char_log(0, "RESET_ALL", "RESET_STAT_POINTS")
    			pc.reset_point()
    
    			char_log(0, "RESET_ALL", "RESET_END")
    		elseif l == 3 then
    			return
    end
    end

    So I want the "if l == 1" statement to set their status points to 380 or set DEX/INT/STR/CON to 95 each.

     

    I think the 2nd will change status points to default.

    If you want default points to 380 you have to edit in char.pp in this void:

    void CHARACTER::ResetPoint(int iLv)

    Search for this:

    PointChange(POINT_STAT, 270 - GetPoint(POINT_STAT));

    Change 270 to 380.

     

    Regards

  4. This code will block the account.

    <?php
    if($_POST['submit'])
    {
    	$delay = $_POST['delay'];
    	$account_id = 1234;
    	$start_date = date("Y-m-d H:i:s");
    	$end_date = date("Y-m-d H:i:s", strtotime("$delay day"));
    	$sql01 = mysql_query("INSERT INTO account.frozenaccounts (`account_id`, `start_date`, `end_date`) VALUES ($account_id, $start_date, $end_date)");
    	$sql02 = mysql_query("UPDATE account.account SET status = 'BLOCK' WHERE id = $account_id");
    	if($sql01 && $sql02)
    	{
    		echo "Your account is blocked for $delay days.<br><br>";
    	}
    	else
    	{
    		echo "sql error";
    	}
    }
    ?>
    
    <form action="page1.php" method="POST">
    	<select name="delay">
    		<option value="1">1 day</option>
    		<option value="2">2 day</option>
    		<option value="3">3 day</option>
    		<option value="7">1 week</option>
    	</select>
    	<input type="submit" name="submit" value="Submit"/>
    </form>

    This code will unblock the frozen chars which's delay has expired:

    <?php
    $now = date("Y-m-d H:i:s");
    $query = mysql_query("SELECT * FROM account.frozenaccounts WHERE end_date <= $now");
    if(mysql_num_rows($query) > 0)
    {
    	//there are minimum one account which is frozen, and you have to unfroze it
    	while($array = mysql_fetch_array($query))
    	{
    		$accountid = $array['account_id'];
    		$query2 = mysql_query("DELETE FROM account.frozenaccounts WHERE account_id = $accountid");
    		$query3 = mysql_query("UPDATE account.account SET status = 'OK' WHERE id = $accountid");
    	}
    }
    ?>
    

    If you won't open the page, where the second code is placed, it won't unfreeze the accounts. So you need to open it about once a day. If you open it for example 24 times a day, it will works perfectly, because if i freeze my account today at 8PM, and you will open it tomorrow at 7PM, my account won't unfreeze, so i have to wait to the next day. In my opinion 24 times per day would be ideal for this script.

  5. Hey!

     

    Create database table:

    CREATE TABLE `frozenaccounts` (
      `id` int(5) NOT NULL AUTO_INCREMENT,
      `account_id` int(10) NOT NULL,
      `start_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      `end_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1; 

    Create a dropdown menu, and a button. When he hit the button, read the data from the dropdown menu. 

    Put the account id and start, end date to that table.

    On the index page of admins, create a code which checks if the end date equals with this date. In this case unblock the account.

  6. Try this, maybe it will works:

    quest P_registration begin
        state start begin
            when GM_helper.chat."Player registration" begin
                say_title("GM helper")
                say("")
                say("Do you want register a player?")
                say("")
                local s = select("Yes", "No") 
                if s == 1 then
                    say_title(""..mob_name(npc.get_race).."")
                    say("")
                    say("Write the player name:")
                    say("")
                    local playername = input ()
                    if (playername == "" or playername == nil) then
                        say_title(""..mob_name(npc.get_race).."")
                        say("")
                        say("Not written the player name.")
                        say("")
                        return
                    end
                    local namecheck = mysql_query("SELECT name from event_test WHERE player_name = '".. playername .."'")
                    if table.getn(namecheck) > 0 then
                        say_title(""..mob_name(npc.get_race).."")
                        say("")
                        say("The player is already registered.")
                        say("Please, insert a new name.")
                        say("")
                        return
                    else
    					mysql_query("INSERT INTO event_test SET player_name='".. playername .."'")
                        say_title(""..mob_name(npc.get_race).."")
                        say("")
                        say("The player was registered successfully!")
                        say("")
                        return
                    end
                else
                    return
                end
            end
        end
    end
    • Love 2
  7. Hey!

     

    In questmanager.cpp you need to edit this line:

    m_mapNPC[npc].OnKill(*pPC);

    to this:

    if(npc > 0)
    {
    	m_mapNPC[npc].OnKill(*pPC);
    }

    All the quest functions will work, but when you use 'when kill begin', it will good just for pc. It won't work with mobs. 

    Examples:

    when 101.kill begin  -> for mob

    when kill with npc.get_race() == 101 begin -> for mob
    when kill begin -> for pc

    when kill with npc.is_pc() begin -> for pc

     

    They all counts once per kill.

     

    Kind regards

    • Love 12
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.