Jump to content

Search the Community

Showing results for tags 'system'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Community
    • Announcements
    • Feedback
  • Metin2
    • General
    • Questions and Answers
    • Guides & HowTo
    • Design
    • Private Servers
    • Services
    • Videos
  • Releases
    • General
    • Tools
    • Programming / Scripts
    • Quests
    • Binaries & Clients/Serverfiles
    • 3D Models
    • 2D Graphics
    • Operating Systems
  • Safe Zone
    • Offtopic
    • Games Talk
    • Music/Videos/Art


There are no results to display.

There are no results to display.

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Website URL





Found 62 results

  1. Denny2399

    Belt system

    Hello, I'm searching for "full" & "fixed" belt system like this one: http://wiki.metin2.co.uk/index.php/Belt_System If anyone doesn't mind to share it, thanks in advance. (Sorry for not posting this into file requests, no one seems to read those)
  2. Hello everyone. It's a good day to share an old code with you. First of all you need to know: I don't help to install it. Don't even take the contact with me about it. The whole code is written by me, and reversed from official binaries. At the beginning do a backup for your files(srcs+pys) and READ CAREFULLY the readme. W/o brain.exe please close this tab, or your browser, thank you for your understanding. Preview: Download.exe Enjoy & #h4v3fun, pngr
  3. Good afternoon, I have the following error https://pastebin.com/n09eEV4U Can anyone help me? uinewshop.py
  4. The Bank has the following facilities: Create a account Login on account Add money Withdraw money Send money Change password 1.) Create account: Length of characters allowed for the account name is 12 characters (as with login). Characters allowed for password length is 4 characters. You can generate a random password automatically in case you have not a good idea for a password, for security on your account we advise you to generate a random password, but take great care not to forget your password, so you have to contact the server team. You can not create an account already exists with that name. You can not enter special symbols in the same account name and password. Account name and password accept any type of data, such as numbers and 2.) Login on account : Timeout for logging into your account is a timer for 3 sec. The password will be secret in the edit window. During logging can detect the following: Connection success Connection Failed: The account name is wrong. Connection Failed: The password is wrong. 3.) Add money : You can not enter a smaller amount as in 1. You can not enter an amount less than or greater than that of the inventory. You can enter up to 10 numbers. (Ex: 1999999999) can change. 4.) Withdraw money: You can not enter a smaller amount as in 1. You can not enter an amount less than or greater than that of the bank. You can not withdraw an amount from the bank that exceeds the maximum limit of the server, for example if you have in inventory 1.3kkk, you can withdraw from the bank only 300kk, because GOLD_MAX = 2kkk. You can enter up to 10 numbers. (Ex: 1999999999) can change. 5.) Send money: You can not send money to an account that does not exist in the database. You can not send a smaller amount as 1. You can not send a larger amount of deposit that the banks. To transfer money from one account to another you need the account name asks that person to do that. An example conversation: A: Hello, i am your brother, send me 444 Yang please. B: Ok bro, give me your name account from bank for can do this. A: Here is my account name from bank: girl123 B: Done, already i send you 444 Yang, please check your account and you will see in logs. My name account is vegas123, check and you will see, good luck my brother. PHOTO FROM ACCOUNT GIRL123 6.) Change password: The new password must have a maximum of 4 characters. New password must be the same as repeating the password field of safety. You can not put the same password as current. Example: Old Password: psw8 New Password: psw8 It is not allowed entry same as the old password. Other informations: For every action that you take in your bank account logs exist, such as: Time action was taken. The time when the action was taken. The action that was taken. Ip from who make action. To / From is when you received, or sending money to another bank account. Amount sent or received. For every action there is a set time to run once the action 10 seconds, which means you can not withdraw / etc add money to your account within 10 seconds, you have to wait for each action separately this time. There can be no bug in the bank. You can not connect to another account if you do not account name and its password. You can not enter characters that go nowhere to exploit. You can enter the account name and truncate or drop etc. Logs are displayed depending on the new date, which means that the latest logs will always be displayed first. When you receive money from another person (another account) ip it will be removed. (Why this? Because we do not want players to have the chance to learn real ip a player, you can see only ip for your action.) Every action has a special type with a separate color. Everything is in real time. Causes no problems in server functions that communicate with the database are not very well optimized that will allow you to do any exploits or a flood that overloads the database. Date and time are taken in real time server, you must have time to FreeBSD updated in real time, it can test the console ssh “data”. How to change date and Timezone The maximum limit for logs is 1,000 logs which are set to 40 pages. Everything communicate with packet and everything is written in c ++. It is compatible with any version of the source. #
  5. Hey, which one is the best public Acce-System?
  6. Hi, I dont know if its a bug.. Anyway when a mob have more than 1 race/flag like this: MILGYO,ATT_WIND on target info i get: Race: None and subspecies: None There is any way to fix this?
  7. Zorke

    solved Solved

  8. ICDev

    System save account

    Extract root and open intrologin.py At the beginning add: import os from _winreg import * Search: self.loginExitButton = GetObject("LoginExitButton") Add: self.saveLoginButton = GetObject("SaveLoginButton") self.loadCredentialButton = GetObject("LoadCredentials") Finally at the end add: def ICDev_ECRYPT(self,data): Data = '' for l in data: Data = Data+str(int(ord(l) + 2) * 2)+' ' return Data def ICDev_DECRYPT(self,data): Data = '' data = data.split() for l in data: Data = Data+chr((int(l) / 2) - 2) return Data def __OnClickSaveLoginButton(self): id = self.idEditLine.GetText() pwd = self.pwdEditLine.GetText() if (len(id) != 0 and len(pwd) != 0): if not os.path.exists("SOFTWARE\ICDev"): key = CreateKey(HKEY_CURRENT_USER,"SOFTWARE\ICDev") SetValueEx(key, "UserID", 0, REG_SZ, self.ICDev_ECRYPT(id)) SetValueEx(key, "Passwd", 0, REG_SZ, self.ICDev_ECRYPT(pwd)) CloseKey(key) self.PopupNotifyMessage("Datele au fost salvate!",self.SetIDEditLineFocus) def __OnClickLoadInfoButton(self): try: key = OpenKey(HKEY_CURRENT_USER, "SOFTWARE\ICDev", 0, KEY_ALL_ACCESS) self.Connect(self.ICDev_DECRYPT(QueryValueEx(key, "UserID")[0]),self.ICDev_DECRYPT(QueryValueEx(key, "Passwd")[0])) except: self.PopupNotifyMessage("Nu exista nici un account salvat!",self.SetIDEditLineFocus) Extract locale_xx and open loginwindow.py Search: "text" : uiScriptLocale.LOGIN_CONNECT, }, ), }, Add: ## userDataBoard { "name" : "UserDataBoard", "type" : "thinboard", "x" : (SCREEN_WIDTH - 208) / 2, "y" : (SCREEN_HEIGHT - 355), "width" : 205, "height" : 55, "children" : ( { "name" : "SaveLoginButton", "type" : "button", "x" : 10, "y" : 0, "vertical_align" : "center", "default_image" : "d:/ymir work/ui/public/large_button_01.sub", "over_image" : "d:/ymir work/ui/public/large_button_02.sub", "down_image" : "d:/ymir work/ui/public/large_button_03.sub", "text" : uiScriptLocale.LOGIN_SAVE_BUTTON, }, { "name" : "LoadCredentials", "type" : "button", "x" : 105, "y" : 0, "vertical_align" : "center", "default_image" : "d:/ymir work/ui/public/large_button_01.sub", "over_image" : "d:/ymir work/ui/public/large_button_02.sub", "down_image" : "d:/ymir work/ui/public/large_button_03.sub", "text" : uiScriptLocale.LOGIN_LOAD_BUTTON, }, ), }, In local_interface.txt (local_xx) add: LOGIN_SAVE_BUTTON Save LOGIN_LOAD_BUTTON Load Now add in YourClient/lib: MEGA
  9. [DEV]Bughy

    open Problema Skill Over P

    *Problemă: Skill Over PTipologie server: PvP*Resursă folosită: Skill Uber P (il aveam in cloud nu stiu de unde)*ServerFiles utilizat: GNS TWIX*Syserr: Sysser client golSysser ch1: Gol la felSysser db: Salut, dupa cum zice si titlul am o problema cu systemul acela care iti creste skill-urile dupa P. Am implementat systemul in sursa game/client si in puthon fara nici o problema. Am pus noul game in locul celui vechi, am pus permisiuni 0777 si am dat reboot. Pornesc serverul din putty fara probleme dar in client imi spune Eroare la conectare. Ca o adaugare, systemul are si functiile pentru skill-urie lykan-ului iar eu nu am lykan in sursa. Nu stiu daca aia poate ii problema pentru ca sursa s-a compilat fara probleme Aici aveti char_skill si char_skilltutorial adica cel dupa care m-am luat. Daca cineva poate sa il faca fara partea de lykan raman dator. Multumesc anticipat https://mega.nz/#F!4upARKbC!Elg_DeKJEWwarlCmlzFQxA
  10. monarchis2

    open New pet system 99% EXP

    I have a problem with new pet system. When the pet is 40 lvl and goes 99% exp stops to getting experience. I want to stop in 100% and no 99%. Sorry for my english.
  11. .Rise

    open Mounts double bonus

    Hello, I have Mount costume system. When I log off while sitting on a mount and then login in, my apply bonuses are x2. There is only 1 bonus in affect, but that mount bonus gives me bonus x2. Quest: Could you help me, please? Thanks.
  12. Monkey Dungeon

    open Offi Pet System Complie error

    Hello Devs, i need ur Help.. If i complie my Client, i got this Error : https://gyazo.com/1e5d0d29e47eedafe4310ad879d17db1 and when i click on "PythonSkillPet.cpp/h" i got this error : https://gyazo.com/c9240bf36ca0d0a2918f9da7fee9bb6d thx guys
  13. Hi , i want to know how could i implement this system with buttons , i tried someting but doesnt work , cause i need to add some width , and use buttons , but there is an transparent board along inventory , and i dont know how could i put these buttons, and use the belt inventory too , but without transparent board wich can move the inventory
  14. Cyclone_DE

    A little bug on sash system

    Hello community! I have recently installed the sash system (only the equip part, not the compine e.t.c) and i have a little problem on refreshing the model when I unequip. If i mount something, or if i die and respawn, if i remove my armor, the sash part refreshes and being removed. Take care that the bug of non Unequiping, is shown to everyone. Thanks a lot for your time, hope someone will be my hero.... Just some pictures of what I mean, just in case you didnt understand: Equipped Sash - Unequiped sash
  15. Hello to all here is a system I created just recently because I wanted to do it simply It is only the first part of the system that allows to select the Local pack according to the IP address of the player automatically! The next part will be available in a second tutorial. System Description: This system allows a player to be linked to a script hosted on your website, the web script will analyze the location of the player's IP and return the acronym of his Country (example: FR) according to the acronym the client Va This will pass from the client's locale.cfg and read the pack file corresponding to the acronym received seamlessly and quickly. Step 1: Open the file Locale_inc.h and add y this line: #define ENABLE_MULTILANGUE_SYSTEM Then open your UserInterface.cpp file and locate the following line: LocaleService_LoadConfig("locale.cfg"); And replace it with: #ifdef ENABLE_MULTILANGUE_SYSTEM LocaleService_LoadMultilangue(M_VerifLangue()); #else LocaleService_LoadConfig("locale.cfg"); #endif Then add the following method by replacing the web link with the one of your choice: std::string M_VerifLangue(){ // Méthode vérifiant la langue string versionActuel = "fr"; string url = "https://ping-hosting.com/langue.php"; string destination = "langue.php"; char buffer[MAX_LINE]; dl = URLDownloadToFile(NULL, url.c_str(), destination.c_str(), NULL, NULL); if (dl == S_OK) { std::ifstream infile("langue.php"); std::string line; while (std::getline(infile, line)) { std::istringstream iss(line); int a, b; if (!(iss >> a >> b)) { break; } } infile.close(); remove("langue.php"); return line; } else if (dl == E_OUTOFMEMORY) // En cas de surcharge, ferme le lanceur. { exit(0); } else // Ferme le lanceur si aucun des cas n'a été franchis. { exit(0); } return ""; } Step 2: Now open the file Locale.h and look for the following line: void LocaleService_LoadConfig(const char* fileName); Add the following lines: #ifdef ENABLE_MULTILANGUE_SYSTEM void LocaleService_LoadMultilangue(std::string langue); #endif Open your Locale.cpp now and add the following function: #ifdef ENABLE_MULTILANGUE_SYSTEM void LocaleService_LoadMultilangue(std::string langue) { MULTI_LOCALE_REPORT_PORT = 10000; MULTI_LOCALE_CODE = 1252; strcpy(MULTI_LOCALE_NAME, langue.c_str()); sprintf(MULTI_LOCALE_PATH, "locale/%s", MULTI_LOCALE_NAME); } #endif Web Part: Download the attached file in the article and upload it in your web hosting corresponding to the link you have chosen. The GeoIP.dat file can be updated regularly by uploading it to the official GeoIP site. Link of the file: File Creator of the system : Me Source link of the System: Online-Game The second part (for the Server) will be created soon, you can use another server part for complete it if you want. Cordialy
  16. Hello community! Earlier i install this Shop Search system and works pretty good. But with offline shop doesn't work.. can someone help me?
  17. Hello comunity, I´m searching one professional/ good coder for do one multilanguage sistem for my Server. Requirements: -Have to change language in login interface; -Have to can translate: protos, locale_string.txt, translate.lua (Quests), and cliente locale(locale_game.txt, locale_interface.txt and etc...) -In chat show the name of country and a mini banner of country. Payment with Paypal or Bank Transfer. Without bugs. If you have or can do this send me a PM With the best regards
  18. Constantinos

    open Weapon Costume System

    Hello community ! Can anyone explain step by step how insert weapon costumes in your server? i have found some i'm not sure if i am allowed to upload them. The files contains Halloween Weapons that you put in Ymir Folder. But how can i find them in-game ? Anyone has tutorials ? PHP CODE:santhia.eu Halloween Weapon costumes.rar
  19. markx202

    New league system

    I want to introduce the decorum system that will be present on our server named Alyon.Let's start with the features:We have decided to include 3 types of arenas: Arena 2vs2 Arena 3vs3 Arena 5vs5 To take part in an arena you just go to the Battle Administrator or click on the button: Here you can participate or create a lobby. There is also the possibility of starting a random lobby that will automatically search for the number of participants needed. Challenges will only take place between players with a maximum difference of 4 leagues. Teams, are automatically generated by trying to make them as homogeneous as possible. The arena will start when all participants have logged into the arena map. Players of opposite kingdoms can stay in team together. In the arena, it will be a first points calculation . If the player logs off, it will lose the amount of calculated points.We have decided this to avoid the Rage Quit. If a player has problem with login, and then doesn't log into the map, the arena will not start.All participants can push without losing points. The arena ends when one of the two teams arrives at the limit score (in 2vs2 it is 2, in 3vs3 is 3 and in 5vs5 is 5), the consecutive kills of the same player are valid. If an arena ends in parity, or a team left the arena, the winners will not win any Decor. At the time of the victory, the Decors will be re-calculated, evaluating the disparity of Decors between teams, the killings and deaths of each participant and the percentage of each participant's victory for that particular arena. Every weekend from Friday to Sunday, from 8am to 11pm, you will be able to make classified matches Through the ELO RATING system you will be able to create a mechanism that can create combat rooms by calculating the winning / defeat / kills / dead / inflicted damage / league / level of each player and combining matches in a balanced way. System delle LegheDecors work as a progress score of your PG.Leagues are the division of the Player according to the amount of Decors obtained during his career. Each League provides the player with a distinctive symbol beside the name. To start collecting Decors you have to go to the Battalion Administrator at Level 80 with 5,000,000 Yang. He will enroll you on the Iron IV League and will give you 40,000 Decors. To get Decors there are 2 ways: Custom Arena Random Arena To start an arena you have to be in the exact number of participants.The calculation of the Decors earned is calculated by evaluating the difference between the Decors among the challengers, the rate of wins / participations in that date type of PvP and the Rate of Kill / Death of the Pg.In this way farm Decors is impossible because after 2/3 matches with "ghost pg",you will not receive Decors.With this button: You can check your stats and decide which arenas to be available.By clicking on a Decorated Player you will also be able to consult other Player stats, compare and process strategies. Here you can see a video preview:
  20. monarchis2

    Won system problem

    Hello community! I have a problem (that i dont understand) with Won-System. The problem is ITEM_WON. Here is what i have and my problem is db syserr. SYSERR: Feb 22 20:47:00.342761 :: Set_Proto_Item_Table: ItemProto Reading Failed : Invalid value. (index: 2, col: 2, value: ITEM_WON) SYSERR: Feb 22 20:47:00.342810 :: Set_Proto_Item_Table: 0 ~ 2 Values: 80020,0, Item_proto.txt 80020 Won ITEM_WON 0 1 NONE NONE NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 0 0 0 0 0 0 0 0 0 0 And here are ProtoReader.cpp and item_length.h
  21. mogulul

    open Mob Target Info-Bug

    Hello,i have a problem with system mob target info.I clean entire mob_drop_item.txt but when i push right click on mob and i want to see what droped,always i see that things.
  22. Hello devs Today I would like to present you a new solution that can make you feel more safe with your GMs. This is my first release and it's very simple to do, I'm just posting it here for the newbies and those who don't know how to start searching and other shit like that WHAT IS THIS SYSTEM? This system is a number of preventions for GameMaster characters about certain interractions with normal players in the game. The functions you are about to see are blocking GMs from: Trading items with normal players (and the opposite) Invite normal players to parties (and the opposite) Invite normal players to guilds (and the opposite) Adding normal players as friend contacts (I would say and the opposite but it already exists by default ) Drop items to the ground Build their own private shops with the Bundle item Buy items from a private shop Block a GM from buffing normal players Using the commands /set, /a and /setskillother to normal players WHO IS THIS SYSTEM FOR? I believe we can all agree that trust in partnership is a rare thing these days. This system is released from me for the Admins out there that cannot trust their GMs (and many times their self) so much. Imagine having a server and your GM just gives away items for free to everyone. Bad huh? I thought so... So with this system you are sure that your GMs will do their job properly and won't violate any game rules behind your backs. Your server has rules (as all games out there) and if you wanted people to have some items for free you can easily put those items for sale into the town vendors. People who do this kind of things behind your backs are not authorized by you to do it but I believe that it happened (if not happening yet) to the best of you guys, that's why I'm releasing it. It's time to set some things right in your servers, GMs exist to answer questions and not helping players cheat without any authorization from the administrators, so without further ado, let's get started. SORRY AGAIN, ONE MORE THING I BELIEVE THIS QUESTION IS IN THE MIND OF A DEVELOPER WHO READS THIS GUIDE: MIND RAPIST, WHY DO YOU USE THE IsGM() BOOLEAN TO CHECK IF A PLAYER IS A GM AND NOT USE THE TRADITIONAL CHECK GetGMLevel() > GM_PLAYER? In this tutorial, we will be using the bool IsGM() instead of the usual check because some of the guys who see this may have added @Alina's GM Elevation system. In that case, GetGMLevel() won't work before the character elevates, so our GMs will be able to bypass the check and just create a perfect item, relog and give it away before they elevate. We don't want that don't we? So who ever wants to use GetGMLevel() > GM_PLAYER instead of IsGM() there is no difference you can do that guys, except if you did the elevation system, then you need to use my function in order to work. So let's get the party started. PARTY INVITATION BLOCK In char.cpp search for the function "void CHARACTER::PartyInvite(LPCHARACTER pchInvitee)" and under add this: Done with party block, let's continue BUNDLE USAGE BLOCK FOR CREATING PRIVATE SHOPS In char_item.cpp search for the function "bool CHARACTER::UseItemEx(LPITEM item, TItemPos DestCell)" and under add this: Done, let's continue ITEM DROP BLOCK Still in char_item.cpp search for the function "bool CHARACTER::DropItem(TItemPos Cell, BYTE bCount)" and under add this: Done with that one, you can close char_item.cpp. Let's move on BUFF BLOCK In char_skill.cpp find this: and paste this under it: Done with that, next! /SET COMMAND BLOCK FOR PLAYERS In cmd_gm.cpp search for the function "ACMD(do_set)" and under add this: Done, but do not close, we have more commands to block! /A COMMAND BLOCK FOR PLAYERS Still in cmd_gm.cpp, search for the function "ACMD(do_advance)" and under add this: Do not close that file yet, one more command left to block /SETSKILLOTHER COMMAND BLOCK FOR PLAYERS Still in this file, search for the function "ACMD(do_setskillother)" and under add this: Done with the commands, you may close cmd_gm.cpp and move on EXCHANGE BLOCK In exchange.cpp search for the function "bool CHARACTER::ExchangeStart(LPCHARACTER victim)" and under (if you have sash system in your source, the top line may be "if ( IsOpenSafebox() || GetShopOwner() || GetMyShop() || IsCubeOpen() || IsAcceOpen() )") add this: Done with the exchange, moving on! GUILD INVITATION BLOCK In guild.cpp search for the function "void CGuild::Invite( LPCHARACTER pchInviter, LPCHARACTER pchInvitee )" and under add this: Here goes the guild invitation, let's move forward FRIEND LIST BLOCK In input_main.cpp search for the function "int CInputMain::Messenger(LPCHARACTER ch, const char* c_pData, size_t uiBytes)" and find this line: change it like this: Still in the same function, find this line in "case MESSENGER_SUBHEADER_CG_ADD_BY_NAME:": and add this: Friends are done. Let's move on to the last one! BUYING ITEMS FROM PRIVATE SHOPS BLOCK In shop_manager.cpp search for the function "void CShopManager::Buy(LPCHARACTER ch, BYTE pos)" and under add this: Done It's not something hard to do, I just gathered everything in one place, you can now sleep at night knowing that your GMs cannot fraud you. I would like to give special thanks to @VegaS who wrote the blocks for buffs, party and guild invitation, thanks so much buddy Note: These will block any interraction between a GM and a normal player, but a GM will be able to interract with another GM (example trade GM with GM). And before someone asks yes I thought about a safebox block for GMs but there is no need for that since you can login to his account and create 3 players, then logout and delete them directly from their database, leaving 3 warriors with Level 0 that cannot login to the game. Let the poor GMs have their safebox it's the only thing left to them after that I think xD So I hope I helped some folks here the tutorial is done Kind regards ~ Mind Rapist
  23. Hello Dev's, I'm here to ask to if someone can help me solve this litle big problem, my crafting system dont show item's and i can't solved it. What happends in this error? Images of items on cube.txt doesn't appear Also it only gives me a chance to put 1 item on crafting system What i already did? Replaced cube.cpp and cube.h for other Replaced Quest's Replaced some files in client And nothing works... I'll let a video explaining better my error, also i'll leave all the files from client, server and source. Video All cube files Quest's Client Files Server Files Source Files ---> Cube.rar <--- - - I'm using .Kori 1.5 Serverfiles&Client -- Hope you guys can help me, i really need this bug solved, Best Regard's Red
  24. SeXpL0SiVe

    Sash system bug... HELP!

    Hey guys i installed the SSS and i dont know what is wrong but when i login all players are warriors lvl 0 without names and i have this syserr in channel 1 SYSERR: Nov 5 14:44:27.112682 :: GetServerLocation: location error name mapindex 0 0 x 0 empire 3 SYSERR: Nov 5 14:44:27.113866 :: GetServerLocation: location error name mapindex 0 0 x 0 empire 3 SYSERR: Nov 5 14:44:27.114680 :: GetServerLocation: location error name mapindex 0 0 x 0 empire 3 SYSERR: Nov 5 14:44:27.115485 :: GetServerLocation: location error name mapindex 0 0 x 0 empire 3 SYSERR: Nov 5 14:44:27.116204 :: GetServerLocation: location error name mapindex 0 0 x 0 empire 3 SYSERR: Nov 5 14:44:40.823802 :: GetServerLocation: location error name mapindex 0 0 x 0 empire 3 SYSERR: Nov 5 14:44:40.824705 :: GetServerLocation: location error name mapindex 0 0 x 0 empire 3 SYSERR: Nov 5 14:44:40.825413 :: GetServerLocation: location error name mapindex 0 0 x 0 empire 3 SYSERR: Nov 5 14:44:40.826048 :: GetServerLocation: location error name mapindex 0 0 x 0 empire 3 SYSERR: Nov 5 14:44:40.826649 :: GetServerLocation: location error name mapindex 0 0 x 0 empire 3Please someone help me i know its in source somewhere i just dont know what is it and how to fix it