Er lädt da statt die Money_icon.sub etwas anderes...
Beiträge von DarthNeno
-
-
Bitte melden Sie sich an, um diesen Link zu sehen.
-
szDurationPoly, szDurationPoly2 in der skill_proto
-
Bitte melden Sie sich an, um dieses Bild zu sehen.
-
Tut mir leid aber finde ich nur richtig! Dein Kolleg hat es einfach weitergegeben und jetzt erwartest du Support?!
-
start_position.cpp
-
Ich habe z.b auch zwei Items die Dss/Fks verbessern..
Bsp. du switcht dir 45 dss dann kannst du das eine Item draufziehen und es werden immer random 1-2 Dss hinzugefügt,bis zu einem Limit von 65dss/30Fks
-
einmal create_all danach dann immer create_by_name
-
Code
- item_addon.cpp
- void CItemAddonManager::ApplyAddonTo(int iAddonType, LPITEM pItem)
- {
- if (!pItem)
- {
- sys_err("ITEM pointer null");
- return;
- }
- // TODO ÀÏ´Ü ÇϵåÄÚµùÀ¸·Î ÆòŸ ½ºÅ³ ¼öÄ¡ º¯°æ¸¸ °æ¿ì¸¸ Àû¿ë¹Þ°ÔÇÑ´Ù.
- int iSkillBonus = MINMAX(-30, (int) (gauss_random(0, 5) + 0.5f), 30);
- int iNormalHitBonus = 0;
- if (abs(iSkillBonus) <= 20)
- iNormalHitBonus = -2 * iSkillBonus + abs(number(-8, 8) + number(-8, 8)) + number(1, 4);
- else
- iNormalHitBonus = -2 * iSkillBonus + number(1, 5);
- pItem->RemoveAttributeType(APPLY_SKILL_DAMAGE_BONUS);
- pItem->RemoveAttributeType(APPLY_NORMAL_HIT_DAMAGE_BONUS);
- pItem->AddAttribute(APPLY_NORMAL_HIT_DAMAGE_BONUS, iNormalHitBonus);
- pItem->AddAttribute(APPLY_SKILL_DAMAGE_BONUS, iSkillBonus);
- }
-
soll er auch gleich die passwörter übernehmen?
es geht darum die account id von account.account nach account.account_premium zu übertragen... nichts mit klauen oder irgendeinem kindergarten
-
Abend zusammen,
Ich wollte mal fragen ob mir evtl jemand einen Mysql Trigger erstellen könnte?!
Aufgabe von diesem Trigger wäre jede Account_ID die neu ist einmalig in eine andere table einzutragen..
Wichtig ist das jede Account_ID nur einmal dort übernommen werden darf.. -
Fliegex3 idk
Code- quest fblager begin
- state start begin
- when login begin
- cmdchat("fblager qid|"..q.getcurrentquestindex())
- end
- function getEmptyStoragePos(vnum)
- local fb_type = fblager.getBookType(vnum)
- local res = mysql_query("SELECT slot_pos FROM player.fblager WHERE fb_type="..fb_type.." AND pid="..pc.get_player_id()..";")
- if type(res) == "nil" then
- return 0
- end
- local check = 0
- for j = 0, 11 do
- for i = 1, table.getn(res) do
- if tonumber(res[i][1]) == j then
- check = 1
- break
- end
- end
- if check == 0 then
- return j
- end
- check = 0
- end
- return -1
- end
- function getBookStorePos(vnum, count)
- local max_books = 201-count
- return mysql_query("SELECT slot_pos FROM player.fblager WHERE fb_vnum="..tonumber(vnum).." AND count<"..max_books.." AND pid="..pc.get_player_id()..";")[1]
- end
- function getBookType(vnum)
- if tonumber(vnum) >= 50401 and tonumber(vnum) <= 50420 then return 1
- elseif tonumber(vnum) >= 50431 and tonumber(vnum) <= 50450 then return 2
- elseif tonumber(vnum) >= 50461 and tonumber(vnum) <= 50481 then return 3
- elseif tonumber(vnum) >= 50491 and tonumber(vnum) <= 50511 then return 4 end
- end
- function addBook(vnum, count, pickup)
- local fb_type = fblager.getBookType(vnum)
- local tab = {"Krieger", "Ninja", "Sura", "Schamanen"}
- if not pickup then
- if pc.getqf("fbsafeboxpage") != fb_type then
- syschat("Du kannst kein "..tab[fb_type].." Buch im "..tab[pc.getqf("fbsafeboxpage")].." Lager rein tun.")
- return
- end
- end
- local pos = fblager.getBookStorePos(vnum, count)
- if pos == nil then
- pos = fblager.getEmptyStoragePos(vnum)
- if pos == -1 then
- syschat("Du hast kein Platz mehr in deinem FB Lager.")
- return
- end
- mysql_query("INSERT INTO player.fblager (fb_vnum,count,slot_pos,fb_type,pid) VALUES ("..tonumber(vnum)..","..tonumber(count)..","..pos..","..fb_type..","..pc.get_player_id()..");")
- else
- pos = tonumber(pos[1])
- mysql_query("UPDATE player.fblager SET count=count+"..tonumber(count).." WHERE fb_vnum="..tonumber(vnum).." AND slot_pos="..tonumber(pos).." AND pid="..pc.get_player_id()..";")
- end
- fblager.refreshStorage()
- item.remove()
- end
- function refreshStorage()
- cmdchat("fblager CLEARSLOTS")
- local fblagerslots = mysql_query("SELECT slot_pos, fb_vnum, count FROM player.fblager WHERE fb_type="..tonumber(pc.getqf("fbsafeboxpage")).." AND pid="..pc.get_player_id().." ORDER BY slot_pos DESC ;")
- table.foreachi(fblagerslots,function(nr,player)
- cmdchat("fblager SETSLOTINFO|"..nr.."|"..player[1].."|"..player[2].."|"..player[3])
- end)
- end
- when getitem with item.get_value(1) == 1337 begin
- fblager.addBook(item.get_vnum(), item.get_count(), true)
- end
- when 20092.chat."FB-Lager" begin
- pc.setqf("fbsafeboxpage", 1)
- fblager.refreshStorage()
- cmdchat("fblager OPENGUI")
- setskin(NOWINDOW)
- end
- when button or info begin
- cmdchat("getinputbegin")
- local cmd = split(input(cmdchat("fblager SENDREQUEST|")), "|")
- cmdchat("getinputend")
- if cmd[1] == "storage" then
- item.select_cell(cmd[2])
- if item.get_value(1) != 1337 then
- syschat("Du kannst nur Fertigkeitsbücher einlagern.")
- return
- end
- fblager.addBook(item.get_vnum(),item.get_count(), false)
- elseif cmd[1] == "setpage" then
- pc.setqf("fbsafeboxpage",tonumber(cmd[2]))
- fblager.refreshStorage()
- elseif cmd[1] == "removeitem" then
- local fb = mysql_query("SELECT fb_vnum, count from player.fblager WHERE slot_pos = "..tonumber(cmd[2]).." AND fb_type = "..pc.getqf("fbsafeboxpage").." AND pid="..pc.get_player_id()..";")[1]
- pc.give_item2(fb[1], fb[2])
- mysql_query("DELETE FROM player.fblager WHERE slot_pos = "..tonumber(cmd[2]).." and fb_type= "..pc.getqf("fbsafeboxpage").." AND pid="..pc.get_player_id()..";")
- fblager.refreshStorage()
- end
- end
- end
- end
-
Also ich besitze auch seit längerer Zeit das full-projekt mit .psd usw aber releasen halte ich für nicht richtig
Plechito verkauft einige Sachen die dort drin sind noch z.b die Runs...Ansonsten ist dort nur Crap drin.. und das FB Lager ist mit Quest gelöst -.-
-
char_battle.cpp
static void GiveExp(LPCHARACTER from, LPCHARACTER to, int iExp) suchen
damit ersetzen:
Code- #define NEW_GET_LVDELTA(me, victim) aiPercentByDeltaLev[MINMAX(0, (victim + 15) - me, MAX_EXP_DELTA_OF_LEV - 1)]
- typedef long double rate_t;
- static void GiveExp(LPCHARACTER from, LPCHARACTER to, int iExp)
- {
- if (test_server && iExp < 0)
- {
- to->ChatPacket(CHAT_TYPE_INFO, "exp(%d) overflow", iExp);
- return;
- }
- // decrease/increase exp based on player<>mob level
- rate_t lvFactor = static_cast<rate_t>(NEW_GET_LVDELTA(to->GetLevel(), from->GetLevel())) / 100.0L;
- iExp *= lvFactor;
- // start calculating rate exp bonus
- int iBaseExp = iExp;
- rate_t rateFactor = 100;
- if (distribution_test_server)
- rateFactor *= 3;
- rateFactor += CPrivManager::instance().GetPriv(to, PRIV_EXP_PCT);
- if (to->IsEquipUniqueItem(UNIQUE_ITEM_LARBOR_MEDAL))
- rateFactor += 20;
- if (to->GetMapIndex() >= 660000 && to->GetMapIndex() < 670000)
- rateFactor += 20;
- if (to->GetPoint(POINT_EXP_DOUBLE_BONUS))
- if (number(1, 100) <= to->GetPoint(POINT_EXP_DOUBLE_BONUS))
- rateFactor += 30;
- if (to->IsEquipUniqueItem(UNIQUE_ITEM_DOUBLE_EXP))
- rateFactor += 50;
- switch (to->GetMountVnum())
- {
- case 20110:
- case 20111:
- case 20112:
- case 20113:
- if (to->IsEquipUniqueItem(71115) || to->IsEquipUniqueItem(71117) || to->IsEquipUniqueItem(71119) ||
- to->IsEquipUniqueItem(71121) )
- {
- rateFactor += 10;
- }
- break;
- case 20114:
- case 20120:
- case 20121:
- case 20122:
- case 20123:
- case 20124:
- case 20125:
- rateFactor += 30;
- break;
- }
- if (to->GetPremiumRemainSeconds(PREMIUM_EXP) > 0)
- rateFactor += 50;
- if (to->IsEquipUniqueGroup(UNIQUE_GROUP_RING_OF_EXP))
- rateFactor += 50;
- if (to->GetPoint(POINT_PC_BANG_EXP_BONUS) > 0)
- {
- if (to->IsPCBang())
- rateFactor += to->GetPoint(POINT_PC_BANG_EXP_BONUS);
- }
- rateFactor += to->GetMarriageBonus(UNIQUE_ITEM_MARRIAGE_EXP_BONUS);
- rateFactor += to->GetPoint(POINT_RAMADAN_CANDY_BONUS_EXP);
- rateFactor += to->GetPoint(POINT_MALL_EXPBONUS);
- rateFactor += to->GetPoint(POINT_EXP);
- // useless (never used except for china intoxication) = always 100
- rateFactor = rateFactor * static_cast<rate_t>(CHARACTER_MANAGER::instance().GetMobExpRate(to))/100.0L;
- // apply calculated rate bonus
- iExp *= (rateFactor/100.0L);
- if (test_server)
- to->ChatPacket(CHAT_TYPE_INFO, "base_exp(%d) * rate(%Lf) = exp(%d)", iBaseExp, rateFactor/100.0L, iExp);
- // you can get at maximum only 10% of the total required exp at once (so, you need to kill at least 10 mobs to level up) (useless)
- iExp = MIN(to->GetNextExp() / 10, iExp);
- // it recalculate the given exp if the player level is greater than the exp_table size (useless)
- iExp = AdjustExpByLevel(to, iExp);
- if (test_server)
- to->ChatPacket(CHAT_TYPE_INFO, "exp+minGNE+adjust(%d)", iExp);
- // set
- to->PointChange(POINT_EXP, iExp, true);
- from->CreateFly(FLY_EXP, to);
- // marriage
- {
- LPCHARACTER you = to->GetMarryPartner();
- if (you)
- {
- // sometimes, this overflows
- DWORD dwUpdatePoint = (2000.0L/to->GetLevel()/to->GetLevel()/3)*iExp;
- if (to->GetPremiumRemainSeconds(PREMIUM_MARRIAGE_FAST) > 0 ||
- you->GetPremiumRemainSeconds(PREMIUM_MARRIAGE_FAST) > 0)
- dwUpdatePoint *= 3;
- marriage::TMarriage* pMarriage = marriage::CManager::instance().Get(to->GetPlayerID());
- // DIVORCE_NULL_BUG_FIX
- if (pMarriage && pMarriage->IsNear())
- pMarriage->Update(dwUpdatePoint);
- // END_OF_DIVORCE_NULL_BUG_FIX
- }
- }
- }
Das hat bei mir sämtliche exp bugs beim Metin gefixxt. Tipp: Du musst all deine EXP von Monstern stark anpassen. Teste es aber vorher.
Besitze die selbe Funktion
Also habe gerade mal einiges getestet.. beim Lv90 Metin passiert es z.b nicht .. nur die Metins darüber buggen!
Aber auch wenn ich den 90er kopiere und wirklich nur die Vnum ändere, spinnt es trotzdem wieder! -
Bringt dein Metin EXP? Hab bis jetzt immer mal die Erfahrung gemacht wenn der Metin selber EXP bringt buggt es.
Habe es versucht mit 0 EXP, 1 EXP und auch verschiedene tausender Zahlen
-
Es buggt nur in der Gruppe.. alleine funktioniert alles
-
Moinsen,
Habe aktuell ein kleines Problem:
Wenn man in einer Gruppe normal levelt, funktioniert alles aber wenn man einen Metin in der Gruppezerstört, wird die EXP beider auf 0 gesetzt..
Habe bereits versucht verschiedene EXP dem Metin zu geben und sogar den Gruppen-EXP-Bonus zu entfernen..
Evtl hat ja jemand eine Lösung dafürdanke im voraus
-
also leute iwas stimmt nicht mit der property
Bitte melden Sie sich an, um diesen Link zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
Bekomme diesen fehler
Du musst die property halt richtig erstellen.. nicht nur packen sondern auch die liste in der root updaten
-
Moinsen,
Da sie nicht von mir ist, gebe ich kein Support dazu.
Allerdings habe ich zusätzlich ein Python-Script zum Clientbereinigen und eine Txt mit Erklärungen...
Sie funktioniert zu 100% Servios hat sie damals auch von mir bekommen und für seine Files genutzt. -
Ich lade es dir gleich hoch