Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 141 reacties

In World of Warcraft blijkt een limiet te bestaan voor de hoeveelheid geld die een speler kan bezitten. Twee gamers van het virtuele spel zijn, onafhankelijk van elkaar, tegen deze limiet aangelopen.

World of Warcraft heeft een goudlimiet Een medewerker van uitgever Blizzard Entertainment heeft tegenover een Duitse speler toegegeven dat er een limiet is aan de hoeveelheid geld die een karakter in het spel kan verzamelen. De grens blijkt te liggen op 214.748 goudstukken, 36 zilverstukken en 48 koperen muntjes. Omdat honderd koperstukken even veel waard zijn als een zilverstuk en honderd zilverstukken een goudstuk opleveren, is duidelijk dat Blizzard een signed integer van vier bytes, met een maximale waarde van 2.147.483.648, voor de spelersportemonnee gebruikt.

Hoewel er een limiet is aan de hoeveelheid goud die een karakter kan bezitten, is het maximale bedrag ruimschoots toereikend om alles te kopen wat los en vast zit. Zo is het voldoende om voor 43 spelers de felbegeerde Epic Flying Mount te kopen. Er werd al langer gespeculeerd over de maximale hoeveelheid geld die een karakter kan bezitten, maar Blizzard heeft het bestaan van een limiet niet eerder willen bevestigen.

Moderatie-faq Wijzig weergave

Reacties (141)

http://forums.wow-europe....=612224183&sid=1&pageNo=1

die gast had meer dan een miljoen (op de testrealm), het 'nieuws' hier is dat een gm heeft gezegt dat die limiet er is, maar dat die limiet er was, en op die hoeveelheid lag was al tijden bekent.

Overigens kunnen de chinezen er ook wel wat van: http://www.wowinsider.com...t-for-190k-gold-in-china/
Als je dat topic verder doorleest, zie je dat er een scriptcode is die de waarde van 1gold ten overstaande van silver kunt aanpassen. 1 gold is dan niet meer 100silver, maar je zorgt dat 1 gold 100000 silver waard is. Dan heb je je gold met een factor 1000 verhoogd. Al het spul dat je overigens bij de vendor koopt is dan ook duurder uiteraard.

Kortom, het is een soort hack.
Je kunt bij WoW toch niet rood staan? En in dat geval is het eigenlijk gewoon slecht geprogrammeerd. Ze leren bij ons altijd, denk welke waardes je kunt hebben, en als je geen negatieve hebt gebruik dan altijd een Uint omdat je anders een hoop ruimte weg gooit.

(Uint bevat geen negatieve waardes, voor de niet programmeurs).

Daarbij zou ik in zo'n geval als dit altijd een Uint64 (U-Long) hebben gepak om problemen te voorkomen, want dit was te voorzien.

Kans is uiteraard niet zo groot dat je ooit die waarde haalt (in dit geval), maar als je er van uit gaan dat er expansion-packs komen waarbij duurdere materialen komen en quests waarbij je meer kunt verdiennen was dit toch echt te voorzien geweest.

Over is het wel te verklaren waarom ze juist een "signed integer 32" hebben gebruikt, dit is namelijk de standaart int. Oftewel, asl je int in typt krijgt je de "signed integer 32" voor de andere integers moet je bv Uint64 int16 enz intypen.

[Reactie gewijzigd door Devata op 19 januari 2008 19:59]

Of je programmeert de servers 64 bits... in dat geval is een integer net een paar maatjes groter (2^63 ipv 2^31, dus ongeveer 18.500.000.000.000.000.000 ipv 2,100.000.000). Ik denk dat het wel even duurt voordat iemand die hoeveelheid heeft ;-).
Krijgen ze nou ook een overflow?

Speler heeft 214.748 goudstukken, 36 zilverstukken en 48 koperen muntjes. Pakt één koperen munt aan loot op en heeft niks meer :D

[Reactie gewijzigd door Sijmen op 18 januari 2008 12:51]

Een oud spel, MuOnline, had dit probleem daadwerkelijk - en niet alleen voor geld, maar ook voor eigenschappen als strength, intelligence, etc.

Op zich op de officiele servers geen probleem, maar er was een heftige underground aan private servers die mensen lieten 'resetten', char naar level 0 met behoud van stats, als je dan maar lang genoeg wacht komen mensen over de limiet heen. Die was trouwens 32.768, ergo een signed 16 bit integer.

Altijd leuk om emailtjes te krijgen van spelers met compleet uitgemaxde characters die vragen of je asjeblieft hun char weer hun oude stats terug wilt geven :+
Dat is niet het probleem van Mu, dat is het probleem van de private servers. En tsja, Webzen gaat natuurlijk geen support op Private Servers leveren(Ook op hun eigen games geven ze slechte support, maar das een andere discussie).
Overigens waren die limieten aan te passen, er zijn zat private servers die doorliepen tot max stats van 65536. En dat je aan je goud limiet zat kwam niet omdat je resette, maar omdat private servers de droprate aanpassen en je dan soms met 1 kill al aan de max.
SimCity2000 en TransportTycoon2 hadden ook diezelfde euvels ;).
Volgens mij ging minimaal een van beiden dan naar -2 miljard.
Maar 't is een lange tijd geleden dat ik dat gespeeld heb.
Ze kunnen geen goud meer aannemen, zodra ze willen traden oid dan komt er te staan "At gold limit".

Bron: http://kotaku.com/346311/did-you-know-wow-has-a-gold-limit
En nog een screenshot van het gesprek dat die Duitser had met een GM toen hij de limiet bereikte.
Hij zegt dat 't geen bug is... Eigenlijk vind ik van wel. Er zijn te weinig bytes gebruikt voor 't geld.
Sterker nog, een schuld van -214.747... :X
Dus JUIST het negatieve getal. Unsigned bedoel je.
De tekst zegt het immers zelf ook signed 4 bytes:
2^32 / 2 = 2.147.483.648

Maar ik mag hopen dat WoW in ieder geval de overflow voorkomt.
overflow zou ik niet weten, heb nog nooit zoveel gold gehad, maar de andere kant op werkt het iig niet :+
Juist daarom! Er kan een + én een - voor. Was het een unsigned zou het 0 worden.
32 bit signed integers lopen van -2.147.483.648 tot -2.147.483.647
32 bit unsigned integers van 0 tot 4.294.967.296

Dus het artikel klopt niet, 2.147.483.648 past niet in de signed integer.

En voor unsigned zou het dus gewoon 2.147.483.649 worden
Kleine correcte: 32 bit unsigned integers lopen van 0 tot 4.294.967.295
En signed integers van -2.147.483.647 tot 2.147.483.648
Dat is niet zo, negatief heeft altijd 1 getal meer omdat de 0 positief is.
0 is neutraal oftewel ertussenin. Deze is niet positief maar ook niet negatief.
Probeer maar: met 0 euro iets gaan kopen of je tegoed van de bank halen omdat het positief is.
Zeker als je iets wil kopen terwijl je 0 euro hebt kan een behoorlijk negatieve ervaring zijn.
Hoe lang ben je dan wel niet bezig geweest om zoveel goudstukken bijéén te sprokelen?
Wel vreemd overigens dat Blizzard het nooit heeft bevestigd. Lijkt mij toch geen ramp, als je dit bevestigd.
als het bevestigd word is het niet meer leuk om er naar op zoek te gaan

zolang het onbekend blijft zijn er een boel mensen die dat limiet willen opzoeken
resulteerd in meer speluren
Aangezien de game 11 feb. 2005 gereleased is doe ik een wilde gok en zeg ik: 3 jaar? ;)
Das inderdaad een wilde gok; misschien zijn ze wel pas na 1 jaar begonnen...
Alsof tijd de absolute factor is. 'Hoe' is wellicht interessanter.
Daar heb je gelijk in hoor, maar ik zat er toch niet ver af met mijn voorspelling: :)
bron
Unowiel: Since when do you play WoW and how many hours do you approximately play each week?
Tyram: I am playing WoW since february 2005 and I play around 35-40 hours during the week.
Ik zou zeggen, (in de ogen van Blizzard) Als de limiet is bereikt, dan het aantal speluren opslaan. Wacht tot een bepaald aantal spelers de limiet hebben bereikt. Bijvoorbeeld 1000

Tel alle speluren van de 1000 spelers op en deel dat weer door 1000 en voila, het gemiddeld aantal speluren
als het dataformaat gekend is kan er misschien een exploit voor geschreven worden dmv een buffer overflow oid
Mijn point exactly, JorneB; en anders wel een ziek iemand met teveel IRL geld die dit aan in-game centjes wil uitgeven. Hence, ban for life lijkt me :)

Wat on-topic betreft; de gemiddelde speler komt niet eens over de 10k grens heen (ok, ik wel, maar de gemiddelde raider niet :P) dus waarom zouden ze zich eraan storen? :)

Ik kan hooguit een handjevol beroepsjankers bedenken die gaan zeiken dat ze in hun mogelijkheden gelimiteerd worden. Niet dat ze zelf er last van hebben, "maar het toont natuurlijk wel weer de macht en minachting van Blizzard!!!!11!!" :|
Nee, het was een Duitser, en hij heeft zelfs een GM ticket geopend om te vragen of hij een bug had omdat hij geen goud meer kon toevoegen. Bleek de limiet te zijn, en even later werd z'n account voor 2 uur dicht gedaan om uit te zoeken waar het geld vandaan kwam. Na die 2 uur kon 'ie weer verder spelen.
Ik snap niet waarom ze hiervoor n signed int gebruiken... Unsigned int is handiger, ivm toch geen negatieve waarden.

Naja. De twee brakste botters zijn iig bekend nu :P
Totdat je over de grens heen gaat, dan draait ie om van plus naar min, geloof ik. Zo ging het bij mij eens wanneer ik met een hex editor een savegame hackte die #ffffff teveel vond en oversloeg naar zoveel in de min.

edt: bij een unsigned uiteraard dat risico dan.

Even opgezocht wat dat dan betekent qua gevolgen voor beide versies van de integer en precies omgekeerd dus, van wat ik zei:

Geldt voor de progtaal C... (zie hier meer)
unsigned...
veroorzaakt een 'modulo a power of two' (mijn Engels is niet top qua wiskundige termen, maar een 'modulo' van de macht van twee als gevolg ??? wiki uitleg in engels hier )

signed...
veroorzaakt een niet vastgesteld gedrag. Er gebeuren dingen die niet makkelijk te voorspellen zijn, behalve dat het niet juist afloopt.
Dus voor allebei wil je een nette afhandeling.

[Reactie gewijzigd door Grrmbl op 19 januari 2008 18:37]

Signed ziet de int als een geheel. Met unsigned kan je een int opdelen.

Bv, je kan een datum doorsturen in 1 unsigned int
je reserveerd 5 bits voor de dagen ( 32 mogenljikheden, meer dagen zijn er nt in een maand)
de volgende 4 voor de maanden
en dan nog wat voor de jaren.
Bij het lezen van deze thread (ik heb nog nooit WoW gespeeld) zat ik me serieus af te vragen: "Waarom is er een Albert Heijn in WoW en waarom is die zo interessant?".
AH = Auction House.
Hoewel een Albert ook niet verkeerd zou zijn om te hebben, de maximale korting is anders slechts 20% ;)
50% met een rode hamster :P
Waarom zou je moeten speculeren dat er een maximum is :? Het is logisch dat er een maximum is. Muntjes moeten in een of andere aantal bits worden opgeslagen, en dus is er een max. Het in natuurlijk zeer onwaarschijnlijk dat ze opeens extra bitjes gaan gebruiken als ze in de buurt zouden komen.
Het is logisch dat er een maximum is, maar als deze op een paar miljard ligt door bijvoorbeeld een Double te gebruiken dan is er praktisch geen limiet.
Geld en aantallen moet je niet uitdrukken met floating point getallen, want ze hebben geen drijvende komma. Een double heeft trouwens maar 53 bits precisie (oftewel significante bits), itt een 64 bits int die er natuurlijk 64 heeft. De double kan natuurlijk wel grotere waarden aannemen door de komma op te schuiven, maar als je bijvoorbeeld 260 in een double stopt en je trekt er 1 vanaf, dan houd je gewoon 260 over. Niet erg handig als je een item wilt kopen dat 3 koper (ik noem maar iets) waard is.
Je gaat geen double voor currency spul gebruiken! Je kunt daar zeker heel grote, en heel kleine getallen mee maken, maar je verliest wel precisie in die heel grote en heel kleine getallen.
Je verliest geen precisie, het idee is nou juist dat de precisie constant is, ongeacht de orde van grootte van het getal ;). 10000 is net zo precies als 1,0000, en 1e5 is net zo precies als 1, maar 10000 is precieser dan 1.
Relatief is de precisie inderdaad erg goed, maar het verschil verschil tussen 10000000000000000000000000000000000000000 en 10000000000000000000000000000000000000001 kun je niet aangeven, en juist dat is bij geld heel belangrijk ;)

Edit: precies wat je hieronder zegt dus :+

[Reactie gewijzigd door voodooless op 18 januari 2008 17:12]

Er is nu ook praktisch geen limiet. Wie heeft er nou weer 200.000 gold... Het duurste in het spel is de epic flying mount skill (5000 gold), en dat is voor de meeste spelers al een flinke investering (voor sommigen nauwelijks haalbaar, en laten het gewoon zitten).
Gold zelf doet niet zo veel als je het in je bank laat liggen, dus als je een paar 1000 hebt wil je er normaal iets mee kopen.
Het is helemaal niet zo dat er een maximum moet zijn. Is er een maximum aan karakters wat ik in een verhaal kan gebruiken? Nee. Gewoon de hoeveelheden in strings opslaan en hopla je kan "oneindig" doorgroeien.
Moet jij de server load eens indenken als het oppakken van een paar silver (een handeling die per player toch wel een aantal keer per minuut plaats vind) niet als integer berekent wordt maar als string manipulatie... Mogen ze wel eens hun serverpark verdubbelen bij blizzard, alleen om het gold te berekenen :+
Duidelijk gevalletje van een wannabe-but-should-not-be developer..... : 8)7

"in strings opslaan"....
De hele wereld draait niet om PHP hoor.. Dat daar toevallig erg makkelijk aan type-casting gedaan kan worden, wil niet zeggen dat je overal maar gelijk met strings kunt (proberen te) rekenen....

En ja, er zijn anno 2008 programmeurs die het nog enigzins processorefficient proberen te doen :)

En los van het string-int verhaal... Een string is ook niet oneindig...
(afhankelijk van de definitie daarvan)
Sowieso hoeft je currency niet in een signed int te staan. Aangezien je toch geen negatief saldo kan hebben is het efficienter om het in een unsigned op te slaan. Dan spreek je vervolgens een nieuwe munteenheid af die extreem veel waard is om de "overflow" in op te slaan. 1 int erbij en je kan 2^64 erin kwijt.
Precies, dat wilde ik ook juist zeggen... Zie het nut van signed idd ook niet.
Voor het representeren van de waarde is de sign inderdaad niet nuttig. Echter in de praktijk brengt het weglaten van de sign meer risico op bugs met zich mee.
Tsssk.. En daar boor je al de mogelijkheid om een krediet bij de bank af te sluiten bij spelers door de neus.

Zoals altijd met het ontwikkelen van games: Je moet niet alleen kijken naar wat er in het initiele eindproduct moet komen, maar altijd rekening houden met toekomstige modificaties/extensies en dergelijke.
En ja, er zijn anno 2008 programmeurs die het nog enigzins processorefficient proberen te doen :)
het is spel is in 2003/2004 gemaakt :Y) (nu alleen nog uitbreidings pakketten)

Ontopic:
Maar zoals je al zegt kent PHP geen echte grense tussen INT/String/Float. Dit heeft wel voordelen, zo worden de waardes dus automatische gecovert. In tegenstelling tot (bijna) alle andere programmeer talen. En zoals je ook zegt willen ze wel graag besparen op CPU kracht, zodat er meer gebruikers in 1 server kunnen.
Het "maken" van goud in WoW is erg gemakkelijk. De meesten denken dat "farmen" het meeste rendement heeft. Dit is niet waar. Wanneer je het slim aanpakt laat je de chinezen "farmen" en jij verdient er gold aan. heel simpel. 10000 goud per week is erg eenvoudig. Dit kost echter wel een uur of 2 per dag. Doe je het rustig dan verdien je met een gemiddelde van 30 minuten per dag al 2000-3000 goud per week. Je hoeft geen stap buiten Ironforge te doen. Je moet alleen de juiste beroepen hebben.
Je bent erg onduidelijk. Je bedoelt dat je gold koopt van de chinezen die farmen of dat je chinezen gold voor jouw laten farmen? Beide methodes zijn hoe dan ook niet toegestaan en verpesten de economie van de server.
Hij bedoelt dat het meeste g zit in het (ver)handelen op de auction hall, een beetje speculeren, en een beetje de concurrentie gewoon uitkopen zodat jij je prijs kunt bepalen, gecombineerd met professions die makkelijk verhandelbare items creeeren, zoals jewelcrafting en enchanting (met name disenchanting). Nog meer hints nodig.. google eens op auctioneer, een goedbedoelde plugin die meteen het beste gereedschap is van de gemiddelde gold'farmer' met $$$ in zijn ogen. Een farmende chinees heeft niet echt impact op de economie, niet meer als een farmende 'speler' (en er zijn zat toffe farmende chinesen en ik kan die jongens amper ongelijk geven als zij met WoW spelen het broodnodige geld voor zichzelf of hun familie verdienen - ik verafschuw de kopers van het g die hun epic mount van hun zakgeld hebben gekocht, niet de chinees). Een paar speculanten op AH zijn daarentegen rampzalig voor de 'grindende' speler, met als gevolg dat een hoop spelers zelf maar alle mats grinden omdat AH toch overpriced is.
Chinezen farmen vaak maar langs één factie op een server en om geld over te zetten verkopen ze dan dure dunnen voor 1c of zo. De andere zijde verkoopt die dure dingen dan voor veel geld en zo krijg je op een server verkopers langs beide kanten.
Als jij nu toevallig die dag AH constant zit te scannen, kan je dus gouden zaken doen.
Ik denk dat hij eerder bedoeld: Laat hun maar farmen, want dankzij hun hebben de mensen die gold bij hun inkopen MEER te besteden en dus zullen ze eerder de producten kopen die hij aanbied (enchanting etc.).

Nog een ander voordeel van goldfarmers is dat ze er voor zorgen dat het gold zijn emotionele waarde verliest. Als jij 4 weken bezig bent geweest om 1000G bij elkaar te sprokkelen is een dure uitgave een moeite. Als jij 1000G binnen 5 seconden verdiend door 30 euro over te maken valt je een grote uitgave een stuk minder zwaar, want voor nog eens 30 euro heb je je getalletje weer netjes op 1000 staan.

Zo moet je het een beetje zien.
Als je op lvl70 nog 4 weken bezig bent om 1000g te farmen moet je je toch eens achter de oren krabben hoor.. Of je had je karakter niet moeten laten powerlevelen ;o
1000g is ongeveer een dagje (stevig) grinden voor een beetje dps. Verder snap ik wel wat je bedoeld, maar degenen die dan slecht zijn voor de economie zijn dus die mensen die g inkopen bij 'de chinees' om vervolgens blind veel te veel te betalen voor de spullen die ze nodig hebben => prijsopdrijving door 'emotionele inflatie'.
Hij bedoelt dat hij goedkoop materialen koopt bij de auctioneer en deze omzet in andere producten en deze dan weer verkoopt bij de auctioneer ;) Mensen die geld kopen bij de farmers kopen op hun beurt zijn producten dan weer.
Die 2 gasten hebben echt tijd te veel gehad. Ik denk ook niet dat het heel erg nuttig is wanneer ze er nu iets aan gaan veranderen, aangezien dit soort types dan gewoon domweg verder goud gaan farmen.
1 van die gasten heeft bevestigd dat hij het spel zag als een trading game, hij heeft zn karakter tot het maximale lvl gebracht nu dus lvl 70 en is daarna dingen gaan op kopen van de AH en heeft er spul van gecraft en weer verkocht om daar profit mee te maken dus eindeloos farmen neej.

"Met gold kan je gold maken" zeg ik altijd maar :)
Ik denk eerder dat dat gasten zijn die de hele dag bij de auction hall staan - wellicht eea craften, en verder alles wat concurrentie heet gewoon uitkopen en zo kunstmatig de prijs hoog houden. Tegen deze 2 heren (of dames) kan ik alleen maar zeggen: ga een keer wat leuks doen, zoek een goede raidguild of ga lekker pvp'en.. want met gold is niet alles te koop ;p En ja, kunstmatig hoge prijzen zijn een issue, ook op 'mijn' realm.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True