GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Elen - 2013. november 30. - 21:58:57

Cím: random kerdes
Írta: Elen - 2013. november 30. - 21:58:57
Hello!
Az lenne a kérdésem, hogyan lehetne megcsinalni, hogy egy valtozonak adok erteket pl:
 
new valami = 600;

 
utana hozzairni hogy..
 
valami = 600+random(100);

 
es igy nezzen ki pl egy SCM-ben?
 
valami = 600100

 
tehat, megadok egy erteket a valtozonak, a 600 és melle irni a random szamot.. de a 600 ne valtozzon csak irja melle a random szamot = ne adja ossze a szamokat
Cím: random kerdes
Írta: Lucio - 2013. november 30. - 22:50:52
new valami = 600; //Létrehozod és adsz egy értéket neki.
new randomvalami = random(100);//Létrehozod és adsz egy random értéket neki 1 és 100 között
new szoveg[128];//Létrehozol egy string változót
format(szoveg, sizeof(szoveg), \"Valami = %d || Random Valami = %d\", valami, randomvalami); //Itt formázod a string változót, amiben behelyettesíted a %d-t a változókkal.
SendClientMessage(playerid, -1, szoveg);//Kiírod azt amit leformáztál.

 
Példa Eredmény: Valami = 600 || Random Valami = 43
Cím: random kerdes
Írta: Elen - 2013. november 30. - 23:01:26
:) nem így gondoltam.
Tudom kicsit hülyén magyaraztam :D
Ez lenyegeben az RP szeromra kellene es telefonszamokhoz.. ha minden az elkepzeles szerint megy akkor lesz 2-3 telefonszolgaltato.. ahol veszel telefont olyan szamod lesz
pl:
vodafon 0670
t-mobile 0630
telenor 0620
es azt szeretnem megcsinalni, hogy amikor megkoti a szerzodest, akkor kap egy olyat h..
PL 0630
es ez melle irni a random szamot
pl: 0630 5478678
Cím: random kerdes
Írta: Live - 2013. december 01. - 00:06:59
new valami = 600.random(100);

 
sztem csak ugy lehet ahogy az elottem levo irta...
Cím: random kerdes
Írta: Szasza - 2013. december 01. - 00:11:24
new valami = 0630; //Létrehozod és adsz egy értéket neki.
new randomvalami = random(9999999);//Létrehozod és adsz egy random értéket neki 1 és 9999999 között
new szoveg[128];//Létrehozol egy string változót
format(szoveg, sizeof(szoveg), \"Telefonszám: %d %d\", valami, randomvalami); //Itt formázod a string változót, amiben behelyettesíted a %d-t a változókkal.
SendClientMessage(playerid, -1, szoveg);//Kiírod a telefonszámot.

 
Példa 0630 3244678
Átírva az elõzõkét ... szerintem így gondoltad nem?
Cím: random kerdes
Írta: Elen - 2013. december 01. - 00:43:05

 
new valami = 600.random(100);

 
sztem csak ugy lehet ahogy az elottem levo irta...
 
[/quote]
Láttam már ilyet, megoldották valahogy :)
 

 
new valami = 0630; //Létrehozod és adsz egy értéket neki.
new randomvalami = random(9999999);//Létrehozod és adsz egy random értéket neki 1 és 9999999 között
new szoveg[128];//Létrehozol egy string változót
format(szoveg, sizeof(szoveg), \"Telefonszám: %d %d\", valami, randomvalami); //Itt formázod a string változót, amiben behelyettesíted a %d-t a változókkal.
SendClientMessage(playerid, -1, szoveg);//Kiírod a telefonszámot.

 
Példa 0630 3244678
Átírva az elõzõkét ... szerintem így gondoltad nem?
 
[/quote]
Ezzel meg az a gond, hogy kiírja az addig oke :) de dinivel ezt hogy mentem el?
Ha igy mentem el, akkor csak annyi lesz, hogy 0630, mert a valtozohoz nem adodott hozza a tobbi ertek.. :(
esetleg valami mas?
Nm az a lenyeg nekem, hogy kiirja, az, hogy egy valtozonak az alap erteke mondjuk 0630 ées ahoz hozzairni egy szamot pl 444
es a vegen igy nezne ki a valtozo erteke h: 0630444
tehat az eredeti erteket ne modositsa..
+ ezt elmenteni dinivel...
epp most iras kozbe jutott eszembe, hogy ez 2db valtozoval megoldhato :) ha jol gondolom.. javitsatok ki ha nem :)
 
new valami = 0630;
new telefonszam = random(99999);

 
es elmentesnel 2 kulon valtozot mentek, kiirasnal meg
 format(........ \"%d%d\",valami,telefonszam);

 
Visont igy mukodik a telefonszam alapjan playerid lekeres? mert ugye 2 valtozo van.. menne szerintetek?
Cím: random kerdes
Írta: Lucio - 2013. december 01. - 01:11:06
A dinivel egy változóba mented le, tehát az már teljesen mindegy hány változóba mented le. Ha akarod akkor betû/változónként is lementheted dinibe egy változóba mented le
Cím: random kerdes
Írta: Red-Eye - 2013. december 01. - 22:28:21
Szerk.: egyszerûen összefûzöd am amit írtál format-os is tökéletes csak akkor string-ként kezeld
Szerk2: ha mégis ragaszkodsz hozzá akkor tessék egy gyors öszsetákolt kódocska hozzá (igen tudom tudom mindig sz*r amit írok de nézzétek el ennyire vagyok képes s nem többre =T )
 

#include
stock intesteloszamgen()
{
//ha feltételezzük hogy az elõtaggal együtt egy pl..4+4 azaz 8 szamjegyû telószám kell nekünk
new szamjegyek[8] = {0,0,0,0,0,2,6,0}; //ebbe fogom beleszedni kezdésnek az elsõ 4et tudjuk a többit nullákkal rakom tele mert nem szeretem üresen hagyni
//fordított a sorrend igen a késöbbiekben rájöttök miért
for(new i=0;i < 4;i++) //ezzel csináltatom meg a végére a random 4 számot
szamjegyek = random(9); // zsupsz bele a helyére
//ez egy gagyi összegzéses dolog szóval sry érte de hát ez jutott elsõnek eszembe a végérõl haladunk elõre
new vegleges = 0;
for(new i=0;i < 8;i++)
vegleges = vegleges+(szamjegyek*exponent(10,i)); // szimpla matek hát ha nagy számot akarunk az mindig úgy néz ki hogy 10^0*egyesekszama+10^1*tizesek és így tovább
return vegleges;
}
stock exponent(szam,hanyadikra)
{
new eredmeny = szam;
for(new i=0; i < hanyadikra;i++)
eredmeny = eredmeny*szam;
return eredmeny;
}
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Blank Filterscript by your name here\");
print(\"--------------------------------------\\n\");
printf(\"%i <-- próba\",intesteloszamgen());
return 1;
}

 
megj.: ne akarj nagy számokat vele gondolj bele hogy az int-nek vannak határai
rem annyira nem rossz innetõl te döntésed hogy csinálod  sok sikert   byebi :smokin:
Cím: random kerdes
Írta: Dfoglalo - 2013. december 01. - 23:23:42
Egyszerûen:
 
new Telefonszam, string[16];
format(string, sizeof(string), \"0670%d\", random(9999999));
Telefonszam = strval(string) // Itt a telefonszám, a Telefonszam változóban, amit akár el is menthetsz

 
Ha jól értem, akkor ez kell neked. Nos hát akkor: ennyi.
Cím: random kerdes
Írta: Lucio - 2013. december 01. - 23:30:19
És akkor dini_Set -el

Dupla hozzászólás automatikusan összefûzve. ( 2013. december 01. - 23:31:19 )

Jól van összedobtuk mi.. :D
Cím: random kerdes
Írta: Dfoglalo - 2013. december 01. - 23:32:48

És akkor dini_Set -el

Dupla hozzászólás automatikusan összefûzve. ( 2013. december 01. - 23:31:19 )

Jól van összedobtuk mi.. :D
 
[/quote]
dini_IntSet... Mysqlt használok, de azért még erre is emlékszem... Amúgy mit dobtunk össze?
Cím: random kerdes
Írta: Lucio - 2013. december 01. - 23:35:14
Félrenéztem a kódot. Amúgy meg mindenki írt mindent úgy gondoltam
Cím: random kerdes
Írta: Dfoglalo - 2013. december 01. - 23:39:59
Végülis az a sok hszetek oktatásnak nem volt rossz, azért megérte õket megírni :D Csak sajnos nem a megoldást mutatták be.
Cím: random kerdes
Írta: Elen - 2013. december 02. - 13:02:09
kiprbálom nemsokara, koszi sracok :)
Akkor ezek szerint elsonek en is jol csinaltam, csak kifelejtettem az strval-t .... de koszi sracok egesz jo! csak kar h a 0630 helyett csak 630 van :(
Cím: random kerdes
Írta: Dfoglalo - 2013. december 02. - 14:05:27
Mert 0-val nem kezdõdhet int, ha utána még van(nak) számjegy(ek). Ez esetben mentsd stringként, vagy mentsd számként a 06 nélkül, az úgyis mindig mindenhol 06 marad, szóval lehagyható. Ha meg szükség van rá, vizuálisan kiíratod...
Cím: random kerdes
Írta: Kovacs_Richard - 2013. december 02. - 14:56:08
látom mindenki stringel próblákozik én ha így akarnám megcsinálni ahogy te akkor baromi egyszerûen kimatekoznám kb ennyivel:
 
new tel = 06300000000+random(9999999);

 
az elejére a 0-t csak a formalitás kedvéért tettem ki :)
IGEN ÁM DE!
Egy integer (egész szám) -2 147 483 648 és 2 147 483 647 között vehet fel értéket ! szóval arról, hogy egy számban tárold el arról le kell mondanod !
de ha a 7 helyett csak 6 számjegyet adsz meg akkor még használhatod...(6.4mrd helyett csak 640mil lesz a max érték ami belefér a 2.1mrd-be)
 
new tel = 0630000000+random(999999);

 
vagy tárolhatod string formában
vagy 0630-at külön tárolod mint szolgáltató azonosító és külön a telefonszámot
Cím: random kerdes
Írta: Elen - 2013. december 02. - 15:09:33
Köszönöm szepen! Dfoglalo valaszaval sikerult egyszeruen megoldani!