Vielen Dank,
funktioniert einwandfrei!
Lg
J0a9
Vielen Dank,
funktioniert einwandfrei!
Lg
J0a9
Hallo Breadfish-Community,
ich wollte euch fragen, ob es möglich ist wenn man im Pay N Spray war wird ja automatisch 100$ abgezogen,
allerdings wird dies an meiner Geldanzeige nicht angezeigt und im Account (MySQL) nicht gespeichert...
Meine Geldanzeige ist so aufgebaut:
new Text:MoneyDraw [MAX_PLAYERS];
stock UpdatePlayerMoneyTextdraw(playerid)
{
new m = GetPlayerMoney(playerid), str[50];
if(m == 0) format(str, sizeof str, "~r~00000000 ~g~Euro");
else if(m < 10 && m > 0) format(str, sizeof str, "~w~0000000%d ~g~Euro", m);
else if(m < 100 && m >= 10) format(str, sizeof str, "~w~000000%d ~g~Euro", m);
else if(m < 1000 && m >= 100) format(str, sizeof str, "~w~00000%d ~g~Euro", m);
else if(m < 10000 && m >= 1000) format(str, sizeof str, "~w~0000%d ~g~Euro", m);
else if(m < 100000 && m >= 10000) format(str, sizeof str, "~w~000%d ~g~Euro", m);
else if(m < 1000000 && m >= 10000) format(str, sizeof str, "~w~00%d ~g~Euro", m);
else if(m < 10000000 && m >= 1000000) format(str, sizeof str, "~w~0%d ~g~Euro", m);
else if(m < 100000000 && m >= 10000000) format(str, sizeof str, "~w~%d ~g~Euro", m);
else format(str, sizeof str, "~w~%d ~g~Euro", m);
TextDrawSetString(MoneyDraw[playerid], str);
return 1;
}
Unter SetPlayerSpawn:
TextDrawShowForPlayer(playerid, MoneyDraw[playerid]);
for(new playerid = 0; playerid<MAX_PLAYERS; playerid++)
{
MoneyDraw[playerid] = TextDrawCreate(493.000000, 81.000000, "~w~00000000 ~g~Euro");
TextDrawBackgroundColor(MoneyDraw[playerid], 255);
TextDrawFont(MoneyDraw[playerid], 3);
TextDrawLetterSize(MoneyDraw[playerid], 0.500000, 1.700000);
TextDrawColor(MoneyDraw[playerid], -1);
TextDrawSetOutline(MoneyDraw[playerid], 0);
TextDrawSetProportional(MoneyDraw[playerid], 1);
TextDrawSetShadow(MoneyDraw[playerid], 1);
TextDrawUseBox(MoneyDraw[playerid], 1);
TextDrawBoxColor(MoneyDraw[playerid], 0x000000FF);
TextDrawTextSize(MoneyDraw[playerid], 621.000000, 1.000000);
}
Mein Problem ist, das das Geld nach dem Pay N Spray nicht den abgezogenen Beitrag anzeigt und nicht gespeichert wird...
Kann man dies beheben oder ist dies möglich?
Lg
J0a9
ah ok danke sehr
Ich versuche dann das /fpark system umzuschreiben, so wie es in deinem Tutorial ist
Wenn ich Hilfe benötige Melde ich mich, bis dahin bedanke ich mich für deine schnelle Hilfe...
//Edit:
Ich versuche es nun mit dem Stock Aufbau...
Code:
stock SaveFracVehCheck(vehicleid)
{
new query[256];
for(new i;i<MAX_FACTION_CARS ;i++)
{
if(FactionCars[i][fVehid] >= 400 && FactionCars[i][fVehid] <= 611)
{
GetVehiclePos(FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z]);
GetVehicleZAngle(FactionCars[i][fVehid], FactionCars[i][v_A]);
format(query, sizeof(query), "UPDATE fraktionsautos SET FVehid = '%d', Fv_aX = '%f', Fv_aY = '%f', Fv_aZ = '%f', Fv_aA = '%f', FCol1 = '%d', FCol2 = '%d', FracID = '%d' WHERE id = '%d'",
FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z], FactionCars[i][v_A], FactionCars[i][fCol][0], FactionCars[i][fCol][1], FactionCars[i][fFaction], FactionCars[i][fdb_id]);
mysql_tquery(dbhandle, query);
return 1;
}
}
return 0;
}
Allerdings bekomme ich ein Warning:
in der Zeile -> stock SaveFracVehCheck(vehicleid)
Was ist denn da der Fehler?
Lg
J0a9
Datenbank Screenshot:
Lade Funktion:
forward LoadFraktionsAuto();
public LoadFraktionsAuto()
{
new query1[100];
format(query1, sizeof(query1), "SELECT * FROM fraktionsautos");
mysql_function_query(dbhandle, query1, true, "LoadFactionCars", "");
return 1;
}
forward LoadFactionCars();
public LoadFactionCars()
{
if(!cache_num_rows())return 1;
for(new fc = 0; fc < cache_num_rows(); fc++)
{
FactionCars[fc][fVehid] = cache_get_field_content_int(fc, "FVehId", dbhandle);
FactionCars[fc][fFaction] = cache_get_field_content_int(fc, "FFaction", dbhandle);
FactionCars[fc][v_X] = cache_get_field_content_float(fc, "Fv_aX", dbhandle);
FactionCars[fc][v_Y] = cache_get_field_content_float(fc, "Fv_aY", dbhandle);
FactionCars[fc][v_Z] = cache_get_field_content_float(fc, "Fv_aZ", dbhandle);
FactionCars[fc][v_A] = cache_get_field_content_float(fc, "Fv_aA", dbhandle);
FactionCars[fc][fCol][0] = cache_get_field_content_int(fc, "FCol1", dbhandle);
FactionCars[fc][fCol][1] = cache_get_field_content_int(fc, "FCol2", dbhandle);
FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][v_X],FactionCars[fc][v_Y],FactionCars[fc][v_Z],FactionCars[fc][v_A],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
}
return 1;
}
Speicher System (ist von dir Jeffry habs versucht einzubauen aber kp ob's klappt hab das mit dem Timer):
forward SaveAllFactionCars();
public SaveAllFactionCars()
{
new query[256];
for(new i;i<sizeof(FactionCars);i++)
{
if(FactionCars[i][fVehid] >= 400 && FactionCars[i][fVehid] <= 611)
{
GetVehiclePos(FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z]);
GetVehicleZAngle(FactionCars[i][fVehid], FactionCars[i][v_A]);
format(query, sizeof(query), "UPDATE fraktionsautos SET FVehid = '%d', Fv_aX = '%f', Fv_aY = '%f', Fv_aZ = '%f', Fv_aA = '%f', FCol1 = '%d', FCol2 = '%d', FracID = '%d' WHERE id = '%d'",
FactionCars[i][fVehid], FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z], FactionCars[i][v_A], FactionCars[i][fCol][0], FactionCars[i][fCol][1], FactionCars[i][fFaction], i);
mysql_tquery(dbhandle, query);
return 1;
}
}
return 0;
}
Lg
J0a9
Hallo Breadfish-Community,
ich bin am versuchen vom Dini Fraktionssystem auf MySQL umzuschreiben.
Mein Problem liegt allerdings jetzt beim Befehl '/fpark' ...
Ich habe mir auch das kleine Tutorial von Jeffry angeschaut, aber das klappt bei mir auch irgendwie nicht...
(Link zum Tutorial: http://forum.sa-mp.de/gta-mult…g-system-mit-mysql-r39-2/ )
So sieht bis jetzt mein /fpark Befehl aus:
dcmd(efa,3,cmdtext);
if(strcmp(cmdtext,"/fpark",true)==0)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
for(new i=0; i< MAX_FACTION_CARS; i++)
{
if(FactionCars[i][fVehid] >= 400 && FactionCars[i][fVehid] <= 611)
{
if(GetPlayerAdminLevel(playerid) >= NEEDED_ADMINLEVEL || GetPlayerLeader(playerid) == FactionCars[i][fFaction][0])
{
//new vehicleid = GetPlayerVehicleID(playerid);
//if(SaveFracVehCheck(vehicleid)) return SendClientMessage(playerid,COLOR_WHITE,"Du hast das Fraktionsfahrzeug {88FF6A}erfolgreich{FFFFFF} umgeparkt.");
new query[156];
format(query, sizeof(query), "UPDATE fraktionsautos SET Fv_aX='%f', Fv_aY='%f', Fv_aZ='%f', Fv_aA='%f' WHERE FVehID = '%d'",FactionCars[i][v_X], FactionCars[i]
[v_Y], FactionCars[i][v_Z], FactionCars[i][v_A], FactionCars[i][fCarid]);
mysql_function_query(dbhandle, query, false, "", "");
SendClientMessage(playerid,COLOR_WHITE,"Du hast das Fraktionsfahrzeug {88FF6A}erfolgreich{FFFFFF} umgeparkt.");
}
else SendClientMessage(playerid,COLOR_WHITE,"Du bist dazu {FF6A6A}nicht{FFFFFF} berechtigt.");
return true;
}SendClientMessage(playerid,COLOR_WHITE,"Du sitzt in {FF6A6A}keinem{FFFFFF} Fraktionsfahrzeug.");
}SendClientMessage(playerid,COLOR_WHITE,"Du sitzt in {FF6A6A}keinem{FFFFFF} Fahrzeug oder bist {FF6A6A}nicht{FFFFFF} der Fahrer.");
}
return 1;
}
habe es auch so Probiert, das Problem hierbei ist, in der Datenbank werden alle Autos mit der selben ID auf eine Koordinate gesetzt...
(Hier habe ich am ende FactionCars[i][fCarid] zu FactionCars[i][fVehid] gesetzt)
dcmd(efa,3,cmdtext);
if(strcmp(cmdtext,"/fpark",true)==0)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
for(new i=0; i< MAX_FACTION_CARS; i++)
{
if(FactionCars[i][fVehid] >= 400 && FactionCars[i][fVehid] <= 611)
{
if(GetPlayerAdminLevel(playerid) >= NEEDED_ADMINLEVEL || GetPlayerLeader(playerid) == FactionCars[i][fFaction][0])
{
//new vehicleid = GetPlayerVehicleID(playerid);
//if(SaveFracVehCheck(vehicleid)) return SendClientMessage(playerid,COLOR_WHITE,"Du hast das Fraktionsfahrzeug {88FF6A}erfolgreich{FFFFFF} umgeparkt.");
new query[156];
format(query, sizeof(query), "UPDATE fraktionsautos SET Fv_aX='%f', Fv_aY='%f', Fv_aZ='%f', Fv_aA='%f' WHERE FVehID = '%d'",FactionCars[i][v_X], FactionCars[i][v_Y], FactionCars[i][v_Z], FactionCars[i][v_A], FactionCars[i][fVehid]);
mysql_function_query(dbhandle, query, false, "", "");
SendClientMessage(playerid,COLOR_WHITE,"Du hast das Fraktionsfahrzeug {88FF6A}erfolgreich{FFFFFF} umgeparkt.");
}
else SendClientMessage(playerid,COLOR_WHITE,"Du bist dazu {FF6A6A}nicht{FFFFFF} berechtigt.");
return true;
}SendClientMessage(playerid,COLOR_WHITE,"Du sitzt in {FF6A6A}keinem{FFFFFF} Fraktionsfahrzeug.");
}SendClientMessage(playerid,COLOR_WHITE,"Du sitzt in {FF6A6A}keinem{FFFFFF} Fahrzeug oder bist {FF6A6A}nicht{FFFFFF} der Fahrer.");
}
return 1;
}
Wo kann das Problem liegen?
P.S.: Ich habe auch mit so einer Stock abfrage versucht aber auch fehlgeschlagen...
Bitte um Hilfe...
Lg
J0a9
Ich wollte noch hinzufügen, das die jetzt doch ihren Namen geändert haben und auch wie davor ein GF nehmen eig nur Namen geändert...
Vl hat @Permanent wieder lust zu testen, aber ich glaube die Meinung bleibt xD
Bin grad eben kurz aufm Server gejoint um zu schaun ob sich was getahn hat
Lg
J0a9
das Adminteam ist eig mitlerweile nicht mehr vollständig weil Airmax paar seiner Leute gebannt hat.
xDom ist raus und Krosi auch!
Wie alle schon gesagt haben ist meiner Meinung nach nichts besonderes.
Lg
J0a9
Hallo,
ich bin derzeitig das Fraktionsautosystem von Dini auf MySQL umzuschreiben, was bis jetzt gut geklappt hat nur die Autos werden nicht
von der Datenbank geladen...
Bei GameModeInit:
LoadFraktionsAuto();
Function LoadFraktionsAuto()
{
new query1[100];
format(query1, sizeof(query1), "SELECT * FROM fraktionsautos");
mysql_function_query(dbhandle, query1, true, "LoadFactionCars", "");
return 1;
}
forward LoadFactionCars();
public LoadFactionCars()
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
//for(new fc;fc<sizeof(FactionCars);fc++)
for(new fc = 0; fc < num_rows; fc++)
{
FactionCars[fc][fVehid] = cache_get_field_content_int(fc, "fVehid", dbhandle);
FactionCars[fc][fFaction] = cache_get_field_content_int(fc, "fFraktion", dbhandle);
FactionCars[fc][v_X] = cache_get_field_content_float(fc, "v_X", dbhandle);
FactionCars[fc][v_Y] = cache_get_field_content_float(fc, "v_Y", dbhandle);
FactionCars[fc][v_Z] = cache_get_field_content_float(fc, "v_Z", dbhandle);
FactionCars[fc][v_A] = cache_get_field_content_float(fc, "v_A", dbhandle);
FactionCars[fc][fCol][0] = cache_get_field_content_int(fc, "fCol1", dbhandle);
FactionCars[fc][fCol][1] = cache_get_field_content_int(fc, "fCol2", dbhandle);
printf("Fraktionauto %d für Fraktion %d erfolgreich geladen!",FactionCars[fc][fVehid],FactionCars[fc][fFaction]);
FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos]
[3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
}
return 1;
}
Kann mir einer Helfen?
Komme nicht weiter...
Lg
J0a9
Hallo Blackshadowscript,
Bei OnPlayerDisconnect würde ich diese Abfrage rausnehmen da du das selbe mit "savePlayer" gesetzt hast.
Also das hier unter OnPlayerDisconnect rausnehmen:
for(new i=0; i<sizeof(aInfo); i++)
{
if(aInfo[i][id_x]==0)continue;
if(aInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
GetVehiclePos(aInfo[i][id_x],aInfo[i][c_x],aInfo[i][c_y],aInfo[i][c_z]);
GetVehicleZAngle(aInfo[i][id_x],aInfo[i][c_r]);
new query[156];
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i' WHERE id='%i'",sInfo[playerid][level],
GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo,sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
DestroyVehicle(aInfo[i][id_x]);
aInfo[i][id_x]=0;
break;
}
Bei OnPasswordResponse hast du 2x das Score lade Funktion daraus kannst du eins machen.4
Hinweis, du hast ebenso 2x den selben Stock erstellt nur anders benennt und zwar den hier:
- stock SpielerName(playerid)
- getPlayerName(playerid)
reicht wenn du eins daraus machst.
Ansonsten sehe ich beim Ladesystem keinen Fehler warum der Account vom Spieler nicht geladen werden soll...
Lg
J0a9
Hallo Nino. ,
ich war für 1-2 Wochen lang auf deinem Server und wollte mich erkunden ob der Server doch noch etwas taucht,
denn deine Serverwerbung ist eig 0815 ebenso das Script wurde kaum was geändert außer Maps von GTA_Urgestein eingefügt!
Zum Team muss ich sagen das da nur klein Kinder eingestellt sind und selbst du (Airmax) kaum Supportet sondern Supports Ignoriert.
Zum Script, es buggt Tag zu Tag immer mehr, ich möchte jetzt hier nicht alle Bugs auflisten aber euer Scripter tut ja auch nichts,
ich sehe dadurch auch kaum kompetenz das aus eurem Projekt etwas wird!
Euer Scripter findet nicht mal den Bug auch Hilfe möchte er kaum annehmen, ich frag mich wie kann man dann jmd Scripter nennen (Hugo) der gerade mal
sich etwas in Dini auskennt...
Ich habe vorallem auch mitbekommen ihr wollt auf MySQL umsteigen aber euer Scripter kennt sich nur etwas mit Dini aus, ob das ne gute entscheidung ist weiß ich nicht,
ist ja euer Ding...
Außerdem wollte ich noch dazu sagen, dass dein Bann so sinnlos war und ich mich immer wenn ich da drann denken muss sofort lachflash bekomme...
Leute einfach zu bannen weil man mit denen nicht klar kommt...
Ich wünsche dir weiterhin viel Spaß und Glück bei eurem Server
Vielleicht Spielen keine Kinder die sich kindisch verhalten
P.S.: Auch euer Servername wurde einfach kopiert von diesem Server hier: 217.172.180.95:7777
Also bitte neuen Namen nehmen würde ich mal sagen
Lg
J0a9
Er schrieb er bietet sich NUR als Scripter an, alles andere ignoriert er
ah ok danke ^ ^
Bietest du dich nur als Scripter oder auch als Mapper an?
soetwas ist eig in vielen Godfathern,
aber auch leicht nachzumachen von dem STil aus
ah ok danke funktioniert einwandfrei!
Danke für die Hilfe
Lg
J0a9
Hallo Breadfish-Community,
ich möchte eine Funktion aufbauen, wo ausgeschrieben werden soll nach dem Einloggen,
wann man das letzte Mal online gewesen war auf dem Server also Datum Technisch abspeichert und beim nächsten Login aufm Server ausschreibt...
Es klingt vielleicht etwas komisch das nach dem Einloggen das letzte Login Datum angezeigt werden soll, aber ich möchte wiegesagt erstmal die Funktion haben
und dann versuche ich das weiter in meinem System einzubauen...
Soweit ich weiß sollte man mit "GetDate" arbeiten aber ich komme irgendwie nicht zurecht...
Kann mir jemand helfen beim Aufbau?
Ich habe bei meinen PlayerInfo's 3 neue Variabeln aufgestelt damit da Tag,Monat,Jahr einsetzen kann aber weiter komme ich nicht...
Wäre eine Abspeicherung so möglich?
new query[200], Date, Month, Year;
getdate(Date,Month,Year);
format(query,sizeof(query),"UPDATE account SET Tag='%i', Monat='%i', Jahr='%i' WHERE id='%i'", Date, Month, Year, PlayerInfo[playerid][db_id]);
mysql_function_query(dbhandle, query, false, "", "");
Und wie würde ich das aufrufen?
Ist das System vom Aufbau her in Ordnung oder komplett falsch?
Bitte um Hilfe
Lg
J0a9
ok danke
ich teste es gleich wenn ich daheim bin ....
Schreibe dann ob's geklappt hat.
- Handy -
//Edit:
habs getestet und Funktioniert!
Danke für deine Hilfe!
Lg
J0a9
Hallo Breadfish-Community,
derzeitig bin ich an meinen Stats am arbeiten und woltle einbauen das man seinen Skin sieht...
Die Funktion lautet dafür soweit ich weiß "PlayerTextDrawSetPreviewModel".
Mein Problem ist, das er die falsche Skin ID zeigt also ID 0 (CJ Skin) was eigentlich nicht stimmt...
So sieht die Abfrage bis jetzt aus:
new PlayerText: Persobox36[MAX_PLAYERS];
Persobox36[playerid] = CreatePlayerTextDraw(playerid, 141.000000, 140.000000, "_");
PlayerTextDrawBackgroundColor(playerid, Persobox36[playerid], 0xFFFFFF00);
PlayerTextDrawFont(playerid, Persobox36[playerid], 5);
PlayerTextDrawBoxColor(playerid, Persobox36[playerid], 0xFFFFFF00);
PlayerTextDrawTextSize(playerid, Persobox36[playerid], 102.000000, 111.000000);
PlayerTextDrawSetPreviewModel(playerid, Persobox36[playerid], GetPlayerSkin(playerid));
PlayerTextDrawSetPreviewRot(playerid, Persobox36[playerid], 1.000000, 2.000000, 3.000000, 1.000000);
Function Stats(playerid,targetid)
{
//... sind noch einige Dinga davor sind aber unwichtig hier...
PlayerTextDrawShow(targetid, Persobox36[playerid]);//Profilbild
return 1;
}
Davor habe ich auch eine Format abfrage gemacht ob auch wirklich aus der Datenbank des Spielers die ID geladen wird, was auch stimmte
nur es wird im Textdraw nicht angezeigt...
Funktionen wie "SetPlayerSkin(playerid, PlayerInfo[playerid][pModel])" habe ich versucht oder "GetplayerSkin(playerid)" ging aber nicht...
Könnt ihr mir weiterhelfen?
Ich bin verwirrt was ich falsch gemacht habe...
Lg
J0a9
Hinweis: so wie du es unter OnPasswordResponse gemacht hast wird auch so dein Scripe geladen allerdings wenn du Level Up bist
wird dein Level nicht aktualisiert...
Ich woltle es nur kurz gesagt haben
Lg
J0a9
Das was da noch unsichtbar vorhanden ist, ist die Kollision.
Der MapEditor hat extra einen Modus den du beim start auswählen kannst "Load with COLLs".
Wenn du das machst und dann unter dem Tab "Views" unten "Show colls" anklickst siehst du die Kollision aller Objekte.
Wenn du deinen Remove Code einfügst wirst du feststellen das unter colls noch alle Gebäude angezeigt werden, weil eben deren Kollision noch da ist.
Klick auf ein Haus und das was alles markiert ist ein zusammenhängendes Objekt.
Für das Area gibt es seit 0.3.7 ein Ersatzobjekt ohne die Kollisionen und mit gestopften Löchern: 11692
Daaaaaankeeeeeee!!!!
Stimmt das mit dem "Show colls" habe ich nicht dran gedacht und habe auch mein Map Editor geupdatet war irgendwie zuletzt von 0.3e oder so
aber jetzt klappts!
Danke sehr bin happy das das Peroblem behoben wurde!
Lg
J0a9