Forum nowy adres forum www.gfb.yoyo.pl Strona Główna
 Forum
¤  Forum nowy adres forum www.gfb.yoyo.pl Strona Główna
¤  Zobacz posty od ostatniej wizyty
¤  Zobacz swoje posty
¤  Zobacz posty bez odpowiedzi
nowy adres forum www.gfb.yoyo.pl
nowy adres forum www.gfb.yoyo.pl
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie  RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 
 
sklepy i podaż - popyt

Napisz nowy temat   Odpowiedz do tematu    Forum nowy adres forum www.gfb.yoyo.pl Strona Główna -> Pomysly dotyczace gry / Forum przeniesione na adres www.gfb.yoyo.pl Zobacz poprzedni temat :: Zobacz następny temat  
sklepy i podaż - popyt
Autor Wiadomość
plit




Dołączył: 01 Wrz 2006
Posty: 25
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Śro 16:08, 04 Paź 2006    Temat postu: sklepy i podaż - popyt
 
Co sądzicie o możliwości wprowadzenia do sklepów cen rynkowych, na razie na metal.

Obecnie metal można kupić "znikąd" za stała cenę. Gdy pojawił się bug umożliwiający zarabianie sporo kasy można było kupować miliony jednostek metalu i budować bez ograniczeń.. gdyby były ceny rynkowe, cena metalu poszybował by w górę a zarabiane kredyty nie były by aż tak wartościowe.

Metal byłby produkowany tylko przez graczy a nie jak obecnie również przez sklep z nieograniczonymi możliwościami "produkcyjnymi" Wink a tym samym było by bardziej opłacalne stawianie ekstraktorów bo na metal jak wiadomo jest wieczne zapotrzebowanie Wink
Sklep pełnił by rolę giełdy czy raczej rynku, od tego czy gracze sprzedają czy kupują metal zależała by cena i od ceny zależało by czy opłaca się inwestować w metal czy go kupować. W czasach wojny ceny metalu naturalnie by szły w górę a po zgruzowaniu kilku koloni zapotrzebowanie na metal by malało i ceny wracały do normy Wink
Zalet można by wymieniać na kilka stron ale najważniejszy jest mechanizm który będzie sterował cenami.
Kolonie mają pewną produkcje metalu (podaż) oraz potrzebują go do budowy, produkcji jednostek czy też utrzymywania budynków (popyt) od tego jak te dwie wartości wyglądają zależeć będzie cena i w tym miejscu należało by przedstawić jakieś algorytmy... macie jakieś pomysły? Razz



Post został pochwalony 0 razy
Powrót do góry Zobacz profil autora
tapsy




Dołączył: 19 Cze 2006
Posty: 52
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Śro 22:38, 04 Paź 2006    Temat postu:
 
plit oki ale tez by przydalo sie zdobywac wiecej zrodel metalu!
metal jest no1 w rasie ludzkiej.



a co o pomyslu to napisze za pare dni do musze wyjechac i ie bde mia neta



Post został pochwalony 0 razy
Powrót do góry Zobacz profil autora
plit




Dołączył: 01 Wrz 2006
Posty: 25
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pią 21:34, 06 Paź 2006    Temat postu:
 
Ok na -----> linie.ovh.org <----- odpalilem starsza wersje GF w której przerobilem troche kod i ceny metalu zaleza od podazy i popytu, dokladnie co zrobilem wygląda tak:

dodalem nowa tabele w bazie galaxy_exachange w niej są przechowywane 2 wartosci: volumen_credits i volumen_metal te dwie liczby dzielimy i z tego jest cena metalu:
price = volumen_credits / volumen_metal

Wartość jest liczona za kazdym razem gdy cos kupujemy albo sprzedajemy w sklepie, wygląda to np tak:

w sklepie jest cena 10[!] za 1 szt [M] (10M / 1M -> v_credits / v_metal )
- sprzedajemy 10k metalu
- do volumen_metal jest dodawana ilosc ktora sprzedajemy czyli 10 000
-otrzymujemy nową cenę: 10 000 000 / 1 010 000 = 9,901[!]
- i po tej cenie opylamy metal, razem 9,901[!] * 10k[M] = 99 010[!]


Ktoś inny kupuje metal - bo jest tani Wink
-kupuje 10k [M]
- od volumen_metal jest ODEJMOWANA ilosc ktora kupujemy czyli 10 000
-otrzymujemy nowa cene: 10 000 000 / 1 000 000 = 10[!]
- i po tej cenie kupujemy metal, razem 10[!] * 10k[M] = do zapaty 100k [!]

ROZNICA ktora wynika z tego co zaplacil kupujacy i dostal sprzedajacy 100k [!] - 99,01k ---> 990[!] ta kasa to prowizja sklepu Wink


Od wielkosci tych 2 wolumenow zalezy jak ceny beda sie zmienialy, czym wieksze tym wolniej i dlatego wraz ze wzrostem obrotu nalezy proporcjonalnie zwiekszac te wolumeny np z 10M/1M na 20M/2M itd.. mozna je ustaliac z liczby ekstraktorow w grze, magazynow itp , musza w miare dobrze oddawac obrot... tak aby nie bylo ze ludzie kupuje tonami metal bo jest tani a jego cena rosnie dopiero po kilku dniach na tyle duzo ze przestaje se oplacac kupowac i odwrotnie ze sprzedaja.

ps. Mialem dodawca do wolumenu kredyty ktore sa za metal ale nie wiem jak to policzyc bo jak odejme metal, policze cene i dodam kredyty do volumenu to.. cena znowu sie zmienia bo widomo Vk/Vm Wink moze ktos wie jak to zrobic.
Obecnie jest tak ze wykupujac 50% volumenu metalu cena rosnie o 100%, wykupujac 75%, przy 1% cena metalu rosnie 100 krotnie.

to tyle na razie, mozna popatrzec jak to dziala na podanym adresie. Generalnie jak by bylo zainteresowanie mozna by przed restartem dac to tutaj i zobaczyc jak to dziala w praktyce.



Post został pochwalony 0 razy
Powrót do góry Zobacz profil autora
KILL
Gość






PostWysłany: Pią 22:01, 06 Paź 2006    Temat postu: Re: sklepy i podaż - popyt
 
ja jestem przeciwny , mysle,że surowce powinno się zostawić w spokoju

Powrót do góry
plit




Dołączył: 01 Wrz 2006
Posty: 25
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pią 22:36, 06 Paź 2006    Temat postu:
 
Prawdę mówiac trzeba by pozmieniać produkcje jednostek pod wzgledm zuzycia metalu lub zwiekszyc wydajność ekstrakotów i magazynó itp, gdyby zrobić tak taka wszystkie surowce trzeba by od nowa ułożyć technologię.



Post został pochwalony 0 razy
Powrót do góry Zobacz profil autora
-BORG-
Gość






PostWysłany: Sob 10:25, 07 Paź 2006    Temat postu:
 
Plit wtedy byly by dodatkowe bledy.
Cytat:

i po tej cenie opylamy metal, razem 9,901[!] * 10k[M] = 99 010[!]


Cytat:

i po tej cenie kupujemy metal, razem 10[!] * 10k[M] = do zapaty 100k [!]



Czyli roznica miedzy sprzedaza a kupnem jest niewielka. Wiec mozna by to wykorzystac do przekazywania surowcow pomiedzy multikontami bez straty czasu. Ktas najpierw sprzedaje w sklepie duzo metalu szybko przelogowywuje sie na multikonto kupuje to co wczesniej sprzedal, spowrotem loguje sie na poprzednie konto przekazuje kase ktora zarobil na sprzedazy metalu multikoncie i takim oto sposobem za niewielka prowizje ktos moze przetransportowac w czasie ponizej jednej minuty metal na inne konto.

Powrót do góry
plit




Dołączył: 01 Wrz 2006
Posty: 25
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Sob 15:29, 07 Paź 2006    Temat postu:
 
Mozna przemnozyc cene sprzedazy prze 0.8 albo 0.7 wowczas prowizja bedzie wynosic 20%-30%.
Ale to wszystko wymagało by dluzszych testow bo pewnie nie jeden blad jeszcze wyskoczy...
W sumie za duze ryzyko zeby to wprowadzac, temat mozna zakonczyc



Post został pochwalony 0 razy
Powrót do góry Zobacz profil autora
plit




Dołączył: 01 Wrz 2006
Posty: 25
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Nie 14:33, 08 Paź 2006    Temat postu:
 
Ale mozna zrobic tak z krysztalami, wszak sa przekazywane przez klan i nie zaszkodziło by ...a dodtkową korzyscia byblo by o polowe mniej ogloszen dotyczacych kupna/sprzedarzy krysztalow Laughing

Jakby co to kod mam gotowy Wink



Post został pochwalony 0 razy
Powrót do góry Zobacz profil autora
derred
Administrator



Dołączył: 07 Cze 2006
Posty: 64
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pon 14:32, 09 Paź 2006    Temat postu: Re: sklepy i podaż - popyt
 
plit napisał:

Co sądzicie o możliwości wprowadzenia do sklepów cen rynkowych, na razie na metal.

Obecnie metal można kupić "znikąd" za stała cenę. Gdy pojawił się bug umożliwiający zarabianie sporo kasy można było kupować miliony jednostek metalu i budować bez ograniczeń.. gdyby były ceny rynkowe, cena metalu poszybował by w górę a zarabiane kredyty nie były by aż tak wartościowe.

Metal byłby produkowany tylko przez graczy a nie jak obecnie również przez sklep z nieograniczonymi możliwościami "produkcyjnymi" Wink a tym samym było by bardziej opłacalne stawianie ekstraktorów bo na metal jak wiadomo jest wieczne zapotrzebowanie Wink
Sklep pełnił by rolę giełdy czy raczej rynku, od tego czy gracze sprzedają czy kupują metal zależała by cena i od ceny zależało by czy opłaca się inwestować w metal czy go kupować. W czasach wojny ceny metalu naturalnie by szły w górę a po zgruzowaniu kilku koloni zapotrzebowanie na metal by malało i ceny wracały do normy Wink
Zalet można by wymieniać na kilka stron ale najważniejszy jest mechanizm który będzie sterował cenami.
Kolonie mają pewną produkcje metalu (podaż) oraz potrzebują go do budowy, produkcji jednostek czy też utrzymywania budynków (popyt) od tego jak te dwie wartości wyglądają zależeć będzie cena i w tym miejscu należało by przedstawić jakieś algorytmy... macie jakieś pomysły? Razz


Dobry pomysł. Gdyby metal w sklepie pojawiał się dopiero jak kotś go sprzeda nie było by tyle bugów, a nawet jak by jakiś się pojawił, nie dawał by możliwości super szybkiego rozwoju. Trzeba to zastosować w praktyce Smile



Post został pochwalony 0 razy
Powrót do góry Zobacz profil autora
plit




Dołączył: 01 Wrz 2006
Posty: 25
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Czw 0:11, 12 Paź 2006    Temat postu:
 
Edycja: Poprawiłem funkcje, teraz volumen_c jest zmieniana na tyle aby volumen był mniej wiecej równy globalnej produkcji surowca razy ilość tur do wyprzedania lub wykupienia towaru, domyślnie jest 288 tur.
Druga sprawa w sklepie są podawane ceny przed kupnem, to po jakiej cenie się kupi zależy od ilosci kupowanego surowaca i nie mam pojęcia jak wyliczyć maksymalną ilość jaką można kupić

Oto moje poprawione 2 funkcje i jedna zrobiona.. .tylko się nie śmiejcie bo jeszcze tydzen temu nie znałem php Laughing


Cena surowca zalezy od globalnej produkcji w grze i bilansu kupna/sprzedazy
Tak zmieniaja sie ceny, produkcja metalu na ture w grze wynosi 5
cena 1M = 5*2880 / 1440 (globalna produkcja jest aktualizowana jezeli obrót wyniesie 5% "zapasów w sklepie". Wszystkie parametry można sobie zmieniac, te są podane na wyczucie..

Akcja/ilosc/cena (10[!] - początkowa)
Buy 200 11,61[!]
Buy 200 13,85[!]
Buy 200 17,14[!]
Buy 200 22,5[!]
Buy 200 32,73[!] - w sklepie zostało 440 szt metalu, jeżeli ktoś bedzie chciał kupić dokładnie 439 szt to zapłaci 6 321 600[!] za 439 [M] !(przypominam ze w grze sa dopiero 2 exstraktory!)
jeżeli wiecej niż 439[M] funkcja kupna zostanie pominięta (można dać jakiś komunikat ile zostało towaru )
Sell 1000 10[!]

tabela:
ID int(11)
name
volumen_c //globalna produkcja surowca obliczna tak: (1 + globlna produkcja) * ilość tur * cena bazowa
volumen //bilans kupna/sprzedazy
fee //prowizja w sklepie np wartość 0.8 oznacza że cena sprzedazy wynosi 80% ceny kupna
transactions / bezwględny obród surowcem kupno+sprzedaz
tour // ilosc tur, skala czasu w jakiej jest liczona globalna produkcja surowca
baselineprice //cena bazowa

function actionbuy() {
global $login, $db, $prefix, $Player, $Colony, $amount, $places, $name;
if (($Colony && $amount && checkplace('market') && $name && ($price = $places['market'][$name . 'buy']))) {


if ( (($Player['credits']) >= $amount * $price) && ($Colony[$name . 'capacity'] - $Colony[$name] >= $amount)){


$exachange = mysql_fetch_row(mysql_query("SELECT `volumen_c`, `volumen`, `fee`, `transactions` FROM `${prefix}exachange` WHERE `name` = '" . $name . "' LIMIT 1"));
if ($exachange[1] > $amount) {
$volumen =$exachange[1]-$amount;
$new_price =$exachange[0]/$volumen;
$exachange[3] += $amount;
if (($Player['credits']) < ($amount * $new_price)){
$amount = $Player['credits']/$new_price;
$volumen = $exachange[0]-$amount;
$new_price = $exachange[1]/$volumen;
}

$db->sql_query ("UPDATE `${prefix}exachange` SET `volumen` = '" . $volumen . "', `transactions` = '". $exachange[3] . "' WHERE `name` = '" . $name . "' LIMIT 1");
$db->sql_query ("UPDATE `${prefix}markets` SET `" . $name . "buy` = '" . $new_price . "', `" . $name . "sell` = '" . ($new_price * $exachange[2]) ."'");
$Colony[$name] += $amount;
$db->sql_query("UPDATE `${prefix}colonies` SET `$name` = '${Colony[$name]}' WHERE `name` = '${Colony['name']}' LIMIT 1");
$Player['credits'] -= $amount * $new_price;
$db->sql_query("UPDATE `${prefix}users` SET `credits` = '${Player['credits']}' WHERE `login` = '$login' LIMIT 1");
if ($exachange[3] >= $volumen/20) {
changevolume();
}
}
}
}
}


// -------------------------------------------------------------------
// Sell in the market
// -------------------------------------------------------------------

function actionsell() {
global $login, $db, $prefix, $Player, $Colony, $amount, $places, $name;
if ($Colony && $amount && checkplace('market') && $name && ($Colony[$name] >= $amount) && ($price = $places['market'][$name . 'sell'])) {


$exachange = mysql_fetch_row(mysql_query("SELECT `volumen_c`, `volumen`, `fee`, `transactions` FROM `${prefix}exachange` WHERE `name` = '" . $name . "' LIMIT 1"));

$volumen =$exachange[1]+$amount;
$new_price =$exachange[0]/$volumen;
$exachange[3] +=Abs($amount);
$db->sql_query ("UPDATE `${prefix}exachange` SET `volumen` = '" . $volumen . "', `transactions` = '". $exachange[3] . "' WHERE `name` = '" . $name . "' LIMIT 1");
$db->sql_query ("UPDATE `${prefix}markets` SET `" . $name . "buy` = '" . $new_price . "', `" . $name . "sell` = '" . ($new_price * $exachange[2]) . "'");

$Colony[$name] -= $amount;
$db->sql_query("UPDATE `${prefix}colonies` SET `$name` = '${Colony[$name]}' WHERE `name` = '${Colony['name']}' LIMIT 1");
$Player['credits'] += $amount * $new_price * $exachange[2];
$db->sql_query("UPDATE `${prefix}users` SET `credits` = '${Player['credits']}' WHERE `login` = '$login' LIMIT 1");
if ($exachange[3] >= $volumen/20) {
changevolume();
}

}
}
function changevolume()
{
Global $db, $prefix, $Colony, $name, $Var;
Switch ($name){
Case 'metal':
$production = mysql_fetch_row(mysql_query("SELECT SUM(`metalextractor`) FROM `${prefix}colonies`"));
$production[0] *= @$Var['structures']['metalextractor']['output'];
break;
Case 'uran':
$production = mysql_fetch_row(mysql_query("SELECT SUM(`uranmine`) FROM `${prefix}colonies`"));
$production[0] *= @$Var['structures']['uranmine']['output'];
break;
Case 'food':
$production = mysql_fetch_row(mysql_query("SELECT SUM(`foodplanting`) FROM `${prefix}colonies`"));
$production[0] *= @$Var['structures']['foodplanting']['output'];
break;
Case 'energy':
$production = mysql_fetch_row(mysql_query("SELECT SUM(`fusionreactor`),SUM(`solarbattery`),SUM(`windgenerator`), SUM(`satellite`) FROM `${prefix}colonies`"));
$production[0] = $production[0]*@$Var['structures']['fusionreactor']['output']+$production[1]* @$Var['structures']['solarbattery']['output']+$production[2]* @$Var['structures']['windgenerator']['output'] +$production[3]* 20;
//uwzglednic wiatr i oswietlenie!
break;
Case 'crystals':
$production = mysql_fetch_row(mysql_query("SELECT SUM(`crystalsmine`) FROM `${prefix}colonies`"));
$production[0] *= @$Var['structures']['crystalsmine']['output'];
break;
}
$value = mysql_fetch_object(mysql_query("SELECT `volumen_c`, `volumen`, `tour`, `baselineprice` FROM `${prefix}exachange` WHERE `name` = '" . $name . "' LIMIT 1"));
$oldc = $value->volumen_c;
$value->volumen_c = (1 + $production[0]) * $value->tour * $value->baselineprice;
$value->volumen += (($value->volumen_c - $oldc)/($oldc/100))*($value->volumen /100); //zwieksz o x %
$db->sql_query ("UPDATE `${prefix}exachange` SET `volumen_c` = '" . $value->volumen_c . "', `volumen` = '" . $value->volumen . "', `transactions` = '0' WHERE `name` = '" . $name . "' LIMIT 1");

}


///////////
I jeszcze aby w sklepie nie były ceny z kikoma cyframi po przecinku to 'market.php' można zmodyfikować np tak
dodajemy funkcje
function accuracy($value){
switch (TRUE){
case ($value < 1):
$price = number_format($value, 4, ',',' ');
break;
case ($value < 10):
$price = number_format($value, 3, ',',' ');
break;
case ($value < 100):
$price = number_format($value, 2, ',',' ');
break;
case ($value < 1000):
$price = number_format($value, 1, ',',' ');
break;
case ($value > 1000):
$price = number_format($value, 0, ',',' ');
break;
}
return $price;
}

dalej poprawimy w odpowiednich miejscach: <?=accuracy($places['market']['metalbuy'])?>



Post został pochwalony 0 razy
Powrót do góry Zobacz profil autora
Wyświetl posty z ostatnich:   

Napisz nowy temat   Odpowiedz do tematu    Forum nowy adres forum www.gfb.yoyo.pl Strona Główna -> Pomysly dotyczace gry / Forum przeniesione na adres www.gfb.yoyo.pl Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
 
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

 
fora.pl - załóż własne forum dyskusyjne za darmo

Powered by phpBB © 2004 phpBB Group
Galaxian Theme 1.0.2 by Twisted Galaxy