############################################################# defineyi serviceye filan eklersiniz #define ENABLE_CLLECTIVE_STATUS_SYSTEM ################## cmd_general.cpp ######################### arat ve değiştir : ACMD(do_stat) ACMD(do_stat)//KONTROL { char arg1[256]; #ifdef ENABLE_CLLECTIVE_STATUS_SYSTEM char arg2[256]; two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); #else one_argument(argument, arg1, sizeof(arg1)); #endif if (!*arg1) return; #ifdef ENABLE_CLLECTIVE_STATUS_SYSTEM unsigned short stat_value = 1; //ch->ChatPacket(CHAT_TYPE_INFO, "Stat value degeri varsayılan %d", stat_value); if (*arg2) { str_to_number(stat_value, arg2); //ch->ChatPacket(CHAT_TYPE_INFO, "Stat value Yeni degeri %d", stat_value); } #endif if (ch->IsPolymorphed()) { //ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("µĞ°© Áß¿¡´Â ´É·ÂÀ» ¿Ã¸± ¼ö ¾ø½À´Ï´Ù.")); return; } unsigned short point_stat = ch->GetPoint(POINT_STAT); if (point_stat <= 0) return; #ifdef ENABLE_CLLECTIVE_STATUS_SYSTEM if (point_stat < stat_value) { stat_value = point_stat; //ch->ChatPacket(CHAT_TYPE_INFO, "Stat value degeri pointten büyük point stat degerini aldı stat value %d",stat_value); } #endif BYTE idx = 0; if (!strcmp(arg1, "st")) idx = POINT_ST; else if (!strcmp(arg1, "dx")) idx = POINT_DX; else if (!strcmp(arg1, "ht")) idx = POINT_HT; else if (!strcmp(arg1, "iq")) idx = POINT_IQ; else return; unsigned short point_idx = ch->GetRealPoint(idx); #ifdef ENABLE_CLLECTIVE_STATUS_SYSTEM unsigned short point_all = point_idx + stat_value; //ch->ChatPacket(CHAT_TYPE_INFO, "Point all değeri %d", point_all); unsigned short get_point = ch->GetPoint(idx); //ch->ChatPacket(CHAT_TYPE_INFO, "Get point fonksiyon değeri %d", get_point); #endif if (point_idx >= MAX_STAT) { return; } #ifdef ENABLE_CLLECTIVE_STATUS_SYSTEM if (point_all > MAX_STAT) { stat_value -= (point_all - MAX_STAT); //ch->ChatPacket(CHAT_TYPE_INFO, "Point all max statü den büyük stat value yeni deger %d", stat_value); } #endif ch->SetRealPoint(idx, ch->GetRealPoint(idx) + stat_value); ch->SetPoint(idx, ch->GetPoint(idx) + stat_value); ch->ComputePoints(); ch->PointChange(idx, 0); if (idx == POINT_IQ) { ch->PointChange(POINT_MAX_HP, 0); } else if (idx == POINT_HT) { ch->PointChange(POINT_MAX_SP, 0); } ch->PointChange(POINT_STAT, -stat_value); ch->ComputePoints(); } ################## uicharacter.py #################### arat ve değiştir : __OnClickStatusPlusButton fonksiyonunukomple seç ve alttakiyle komple değiştir def ChooseCountPlusStat(self, statusKey): inputDialog = uiCommon.InputDialog() inputDialog.SetTitle("Verilecek Statu Degeri Max = 90") inputDialog.SetMaxLength(2) inputDialog.SetNumberMode() inputDialog.SetFocus() inputDialog.SetAcceptEvent(lambda arg1=statusKey: self.ChooseCountPlusStatConfirm(arg1)) inputDialog.SetCancelEvent(self.ChooseCountPlusStatHide) inputDialog.Open() self.inputDialog = inputDialog def ChooseCountPlusStatHide(self): self.inputDialog.Hide() def ChooseCountPlusStatConfirm(self, statusKey): self.ChooseCountPlusStatHide() try: count = int(self.inputDialog.GetText()) if count <= 0: chat.AppendChat(chat.CHAT_TYPE_INFO, "0 dan Kucuk Deger Girdiniz.") return if count > 1: statusPlusCommand=self.statusPlusCommandDict[statusKey]+str(count) net.SendChatPacket(statusPlusCommand) else: net.SendChatPacket(statusPlusCommand) except ValueError: chat.AppendChat(chat.CHAT_TYPE_INFO, "Girilen Deger Hatali") def __OnClickStatusPlusButton(self, statusKey): try: statusPlusPoint=player.GetStatus(player.STAT) if statusPlusPoint > 1: self.ChooseCountPlusStat(statusKey) else: statusPlusCommand=self.statusPlusCommandDict[statusKey] net.SendChatPacket(statusPlusCommand) except KeyError, msg: dbg.TraceError("CharacterWindow.__OnClickStatusPlusButton KeyError: %s", msg)