SilientNinja
-
Příspěvků
28 -
Registrován
-
Aktivní
Content Type
Profiles
Forums
Calendar
Gallery
SA-MP
Příspěvky posted by SilientNinja
-
-
Jak psal ATomas
Naco updatovat udaje, ktere se nezmenily format(query,sizeof(query),"UPDATE konta SET Penize=%d WHERE Vlastnik='%s'",InfoHrace[playerid][bANKA_PENIZE],PlayerName(playerid)); print(query);//skontroluj si spravnost prikazuTy údaje se mění, ten stock uložení účtu používám pro více věcí, nejen pro vklady a výběry.
Tím myslím to, že když si někdo zařídí např. pojištění účtu, tak se to neuloží do mysql hned, ale až po odpojení (při odpojení je tam to uložení všeho.)
A tím odebráním toho " UlozitBankovniUcet(playerid); " jak jsem psal.. z " stock UlozitPenizeBanka(playerid,castka) " jsem chtěl zjistit, jestli to na to nemá nějaký vliv.
-
To je tezky rict jen tak, bez blizsiho infa. Bus error je takovej univerzalni.
zkus tailnout /var/log/messages
tail /var/log/messages
-
Zkusil jsem to zvětšit i na nelogickou hodnotu. Stále nic. :-/
A zjistil jsem, že to s tím uložením účtu nemá nic společnýho, páč jsem zkusil smazat to uložení (následovně)
stock UlozitPenizeBanka(playerid,castka) { if(castka <= 0) return SCM(playerid,"~b~~h~~h~Nemate u sebe zadne penize na ulozeni"); new string[200]; DatPenize(playerid,-castka); InfoHrace[playerid][BANKA_PENIZE] += castka; format(string,sizeof(string),"~b~~h~~h~Ulozil si na konto ~w~%s$~b~~h~~h~, stav konta ~w~%s$",CisloSMezerami(castka),CisloSMezerami(InfoHrace[playerid][BANKA_PENIZE])); SCM(playerid,string); return 1; }
V čem může bejt problém potom?
-
Zvětšil jsem, a stále stejnej problém. :-(
-
Popis problému:
Čaute,
prosím o radu, mám problém v tom, že když například hráč 1 uloží peníze do banky, tak se v mysql přepíše a uloží všem hráčům, stejně tak s výběrem. Takže když třeba hráč 2 chce vybrat peníze, tak vybírá z těch co uložil hráč 1.
Pro lepší pochopení posílám screen :-D
V kódu jsem přiložil stock od uložení bankovního účtu, a uložení peněz na bankovní účet. Protože předpokládám že s tím výběrem bude stejnej problém, tak nemá cenu ho posílat. :-D
Screen: https://imgur.com/a/xcUuP
Chyby/varování kompilátoru a při běhu:
--
Kód:
Přikládám stock uložení peněz:[code=auto:0] stock UlozitPenizeBanka(playerid,castka) { if(castka <= 0) return SCM(playerid,"~b~~h~~h~Nemate u sebe zadne penize na ulozeni"); new string[90]; DatPenize(playerid,-castka); InfoHrace[playerid][BANKA_PENIZE] += castka; UlozitBankovniUcet(playerid); format(string,sizeof(string),"~b~~h~~h~Ulozil si na konto ~w~%s$~b~~h~~h~, stav konta ~w~%s$",CisloSMezerami(castka),CisloSMezerami(InfoHrace[playerid][BANKA_PENIZE])); SCM(playerid,string); return 1; } [/code] Přikládám stock Uložení bankovního účtu:[code=:0] stock UlozitBankovniUcet(playerid) { new query[80]; if(InfoHrace[playerid][BANKA_PENIZE] != -1) { format(query,sizeof(query),"UPDATE konta SET Penize=%d,Pojisteni=%d,Posilani=%d WHERE Vlastnik='%s'",InfoHrace[playerid][BANKA_PENIZE],InfoHrace[playerid][BANKA_POJISTENI],InfoHrace[playerid][BANKA_POSILANI],PlayerName(playerid)); mysql_q(query,false); } format(query,sizeof(query),"UPDATE ucty SET Penize=%d WHERE Username='%s'",GetMoney(playerid),PlayerName(playerid)); mysql_q(query,false); } [/code]
Dodatečné poznámky:
--
-
Díky za srozumitelné objasnění :-D , +rep! ;-)
-
Popis problému:
Zdravím, potřebuju poradit. Nějakou dobu už se pitvám v jednom módu a teď řeším systém domů.
Už chápu co jsou VW .
Ale mám guláš v tom jak fungují interiéry.. V GTA je spousta zajímavých interiérů, a našel jsem si dokonce supr program se kterým se na ně dá portovat ( http://www.gta.cz/san-andreas/download/san-andreas-teleport-3b )..
Našel si stránku s čísly interiérů.. např.( http://weedarr.wikidot.com/interior )..
A zjisitil že ve hře je příkaz /interior, který vám ukáže číslo interiéru ve kterém se nacházíte..
Jenže když jsem si sepsal jednotlivé interiéry podle SAMP editoru (http://forum.sa-mp.com/showthread.php?t=282801 ), a zkusil hodit do hry, tak funguje jen pár z nich.. Jenže nevím proč..
Myslím že to je proto, protože různé interiéry se nacházejí v různých světech (interior universe) a ty jsou děleny podle čísel..
Jenže mě to vždycky dostane na ty konkrétní souřadnice jenže v interiéru číslo 1.. takže proto to asi nefunguje.
Nejsem si v tomto ohledu ničím jistý, a ani nevím jestli to chápu správně.. Mohl by jste mi někdo poslat třeba odkaz na nějaký článek ve kterým se mluví o této problematice? Nebo to nějak stručně vysvětlit? Byl bych vám za to moc vděčnej
Chyby/varování kompilátoru a při běhu:
--
Kód:
--
Dodatečné poznámky:
--
-
Ta 0 by tam být asi neměla
//EDIT: VYŘEŠENO :-)
-
Jediný error co mi to generuje je tento:
[09:11:06] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
S tím, že když si koupím dům, tak jako majitel se zobrazí to, co je v mysql zapsáno v " username " (viz. screen.)https://ctrlv.cz/dltp
Tady přikládám screeny tabulky v mysql:
https://ctrlv.cz/Sx5g
-
Jde to, teda alespoň když jsem to testoval sám. První problém byl, že nefungovalo připojení vůbec. A tak jsem podle mysql_logu vytvořil tabulky manuálně. Jenže po tom co jsem to namísto localu hodil na FH, tak jsme to s kamarádem zkoušeli, a mu to neukázalo registrační dialog, ale dialog pro login (pro můj login). Čili se v té manuálně vytvořené tabulce vytvořil jen můj profil.
Neví někdo? :-( Jako nespěchá to. Mám to jen na osobní účely.. Ale i tak bych nechtěl aby to uvízlo na mrtvém bodě.. :-D
-
Problém je zde:
format(query,sizeof(query),"INSERT INTO acc(Username,Heslo,Penize,Skin,XS,YS,ZS,DLRows,DLX,DLY,DLOn,MRows,MX,MY,MOn,Spawn,SpawnTime,IP,Dynamic,Log) VALUES ('%s',%d,12000,%d,%f,%f,%f,3,608,122,1,5,608,155,1,%d,%d,'%s','%s',%d)",PlayerName(playerid),ZahashovatHeslo(pass),SkinyPovolani[IntervalySkinuPovolani[NEZAMESTNANY]+random(IntervalySkinuPovolani[NEZAMESTNANY+1]-IntervalySkinuPovolani[NEZAMESTNANY])],SouradniceSpawnu[LokalitaID][0],SouradniceSpawnu[LokalitaID][1], SouradniceSpawnu[LokalitaID][2]+0.5,LokalitaID,time,PIP,Dynamic,time); mysql_q(query,false); format(query,sizeof(query),"SELECT * FROM acc WHERE Username='%s'",PlayerName(playerid));
-
Kterou část přesně? :-D
MySQL log ukazuje error - " CMySQLResult::GetRowDataByName() - invalid row index ('0') "
Nemohlo by to mít něco společného?
-
Mno, tak po večeru, a půlce probdělé noci.. Co jsem tabulky tvořil manuálně.. :-D Tak jsem to rozjel, ale mám problém. A to v tom, že po mojí registraci, každý hráč co se připojí, tak už jakoby má účet (který je můj) tzn. že každý nick má jeden a ten sám účet.. Dá se toto nějak vyřešit?
-
Věta " Find: Can´t find the text "CREATE TABLE" " mi zkazila večer. :-D
No nic, každopádně děkuji moc za odpověďi ;-)
-
Nemůže to v tom modu někde být? Ale třeba zakomentované? Aby se to vytvořilo jednou, a příště už ne? protože kdybych měl hledat všechny ty hodnoty, co bych zapisoval do jednotlivých řádků tabulky.. :-D Tak bych se asi zcvoknul.. Nehledě na to, že těch tabulek je tam víc.. :-/
Pod jakým příkazem bych to v tom kódu mohl najít?
(Omlouvám se, pokud jsem něco napsal nepřesně, nebo úplně mimo - jak jsem vysvětloval v prvním příspěvku, nikdy jsem se ještě v pawnu s mysql nesetkal.)
-
Popis problému:
Zdravím, kamarád mi přeposlal složku, ve které nashromáždil nějaký fs a gm, já si to tak nějak testuju pro sebe, na local-serveru. jenže jsem narazil na mód, co si žádá připojení na mysql.
A vzhledem k tomu, že jsem v pawnu zatím do kontaktu s mysql nepřišel, byl to docela oříšek. :-D Ale všechno jsem napojil. Ale ono nic. Takže mě to nepustí ani za to tlačítko Spawn (OnPlayerRequestSpawn).
Jak jsem psal výše, tak snažím se to rozběhnout na lokálním serveru v pc. Ale mysql mi hostuje fakaheda. Myslíte že by to mohl být problém?
Připojeno bych měl mít dobře:
#define HOST "casa1.fakaheda.eu" #define USER "uzivatel" #define DATA "jmeno-db" #define PASS "Heslo" ---- mysql_connect(HOST, USER, DATA, PASS);
Když jsem se pak kouknul do logu mysql[16:33:00] [ERROR] CMySQLQuery::Execute - (error #1146) Table 'jmeno-db.acc' doesn't exist [16:33:00] [WARNING] cache_get_row_count - no active cache [16:33:00] [WARNING] CMySQLHandle::DeleteSavedResult - invalid result id ('0')
Dokáže si gm sám v mysql vytvořit tabulky, a zapisovat do nich?Nebo musím tabulku vytvořit manuálně?
Vůbec si s tím nevím rady. Všem děkuju za přečtení, a ještě více těm, co se pokusí pomoct. ;-)
Chyby/varování kompilátoru a při běhu:
--
Kód:
--
Dodatečné poznámky:
--
-
Dělá mi to u všech pump. Jak u nových tak u starých. :-/
EDIT: Vyřešeno, může se lock. kód od uživatele Lukasz pomohl. :-) Díky moc všem co se zapojili. :-)
-
Tak jsem to zkusil, ale bezvýsledně :-( Stále stejný, při chybném zadání se zase ukáže až po smrti nebo reconnectu. :-(
-
Popis problému:
Zdravím, nějak si sám pro sebe upravuju SL 5.77. Vzhledem k tomu že nejsem v pawnu extra pokročilý, tak jsem si zatím jen přidal pár benzínek změnil spawn pozice u aut.
Ale mám problém, je tu bugnutej dialog s přidáváním fuelu, a myslím že to dělá i když chci z clanu prodat vozidlo.
Problém je v tom, že když se pokusíte natankovat více než těch 15 000 fuel pointů, tak Vám to vypíše error, že víc nejde, a potom dokud si nedáte kill nebo se nereconnectnete se vám nezobrazují žádné dialogy.
Snad jsem poslal dobrej kód, pomohl by mi to někdo opravit? Dělá to i při tom prodávání clan auta, ale myslím že to bude stejnej problém, tak bych to mohl odkoukat teď :-D
Za případnou pomoc moc děkuju :-)
přeju hezkej den. :-)
Chyby/varování kompilátoru a při běhu:
--
Kód:
[code=:0] else if(dialogid == Dialog_FuelPump) { if(response == 1) { new vehicle = GetPlayerVehicleID(playerid); new fuel = strval(inputtext); new fuelx = MAX_VEHICLE_FUEL - VehicleFuel[vehicle]; if(!IsPlayerInAnyVehicle(playerid)) return GameTextForPlayer(playerid,"~r~Nejsi v aute !",2500,5); else if(!inputtext[0] || !inputtext[1]) return SendClientMessage(playerid,COLOR_WARNING,"Nezadal jsi počet litrů paliva !"); else if(fuelfuelx) return SendClientMessage(playerid,COLOR_WARNING,"Můžeš mít maximálne 15 000 jednotek paliva !"); else if(GetPlayerACMoney(playerid) < strval(inputtext)) return SendClientMessage(playerid,COLOR_WARNING,"Nemáš dostatek finančních prostředků na natankování !"); else if(IsPlayerInAnyVehicle(playerid)) { new msg[128]; format(msg,128,"Natankoval jsi %d jednotek paliva za %d$ !", fuel,strval(inputtext)); SendClientMessage(playerid, COLOR_WHITE, msg); GivePlayerACMoney(playerid, -strval(inputtext)); SetVehicleFuel(vehicle, fuel); } SetTimerEx("IsPlayerInPickupFalse",2500,0,"i",playerid); } if(response == 0) { SetTimerEx("IsPlayerInPickupFalse",2500,0,"i",playerid); } } [/code]
Dodatečné poznámky:
--
-
Dobrý den, jak uložím svůj výtvor, a jak ho dám do SA:MP? vše jsem vytvářel v Jernejl´s Editor.
Předem díky :-)
-
Jooo, to vím, ale, že ten pickup (ta šipka) přez Jizzy clubem není, ani před casínem, ani před ostatníma budovama, ke kterejm by se hodil interiér.. :-D
Noo, a celkově, LV není moc pořešené.. nejvíc je LS, a pak SF, ale v LV je jen Boat Shop..
-
Ahaaa, ona se tam objeví ta tabulka na straně, a já si to spletl, páč to J vypadalo jako malé i
A jsi si jistý, že je to originál? Protože teď si to celé překldáám do CZ, a objevil jsem toto:
else if(pickupid == JizzyPickup) { if(Player[playerid][IPIP]==false) { Player[playerid][IPIP]=true; ShowPlayerDialog(playerid,Dialog_Jizzy,DIALOG_STYLE_LIST,"Jizzy Bar","Sprunk (50$)\nVodka (3500$)\nWhisky (5000$)\nŠampaňské (500$)\nPivo (400$)\nCigareta (100$)\nJoint (6000$)","Koupit","Cancel"); } }
Ale do Jizzy clubu se vejít nedá.. :-(
-
A ještě se zeptám jak se zatýká, protože prý příkaz /i [iD] neexistuje?
-
Čaute, potřebuju pomoct, stáhnul jsem si ofiko verzi tady z fóra, přímo od LYRIcSe, ale, myslím, že když jsem ji měl dříve, tak se dalo vejít do Jizzy clubu, a do ostatních interiérů, třeba do casina, a tam se dalo opít, a dokonce hrát na automatech.. Teda, pokud si to dobře pamatuju, jestli to nebyl jinej mod, ale myslím, že ne. :-D
No, a ještě bych měl dotaz, jestli je někde seznam všech příkazů, jak pro hráče, tak i pro adminy, a jak se dá dostat do konzole.. Myslím, že to bylo nějak /truercon a pak /rcon login X, ale jaksi mi to nefunguje.. :-D
Předem děkuji za odpověď, a omlouvám se, jestli jsem vybral špatnou sekci.. :-)
MySQL a banka
v Herní (SA:MP, CS apod.)
Odesláno:
Už to mám!
Díky za pomoc, problém byl v tom, že se to ukládalo podle nějaké hodnoty, kterou měli všichni stejnou, a né podle jména.
To print(query); mi docela dost pomohlo.
Ještě jednou děkuju.
oboum +rep