Beiträge von Goldkiller
-
-
GetVehicleTrailer
Du bekommst dann die VehicleID des Anhängers. Damit könntest dann arbeiten und prüfen, ob es sich um "anhaenger[5]" handelt. -
Na bischen Englisch wirst du ja wohl können:
Zitatuser 'root' localhost (using password: YES).
[Fri Jun 01 17:28:35 2012] Error (0): Function: mysql_free_result called when not connected to any database. Access denied for user 'root' localhost (using password: YES).
[Fri Jun 01 17:28:35 2012] Error (0): Function: mysql_query called when not connected to any database. Access denied for user 'root' localhost (using password: YES).
Dein Script konnte sich wohl nicht erfolgreich mit der Datenbank verbinden. Ohne eine Verbindung,funktionieren die MySQL Anweisungen auch nicht.Die meisten MySQL Plugins haben eine Debug-Funktion.
[Plugin] [REL] MySQL Plugin (R7 released)
mysql_debug( enable = 1 ) -
Du kannst auch nicht sagen "wie funktioniert strlen,dann brauch ich sscanf nicht". Die Beiden haben auch nichts miteinander zu tun.
strlen gibt dir zurück,wie lang ein String ist. sscanf dagegen kann aus einem String einzelne Daten sinnvoll auslesen und in ihren "Ursprung" versetzen. Passt eigentlich ganz gut als Gegenstück zu format.Falls du wirklich lieber strlen benutzen möchtest, die erste Hilfe findest immer bei wiki.sa-mp.com:
http://wiki.sa-mp.com/wiki/Strlen -
Versuch dich mal etwas klarer auszudrücken.Was du willst geht bestimmt, für Hilfe musst du aber genauer beschreiben was du möchtest.
-
Was du da schreibst ist totaler Quatsch,Acrio.
sscanf hat nichts mit strcmp zu tun.Das sind zwei völlig verschiedene Dinge die nicht zussamen arbeiten müssen / sollen. Beide arbeiten in verschiedenen Bereichen.Ich würde dir raten,mal sscanf zu aktualisieren.Eventuell hast du noch eine alte Version,die mit "u" Probleme hatte.
http://forum.sa-mp.com/showthread.php?t=120356Füg mal über
if(sscanf(params, "ui", pID, Frak))return SendClientMessage(playerid, COLOR_RED, "Benutze: /setfrak [playerid] [fraktionsid] ! Eine Liste der Fraktionen findest du unter /fraktionen !");
noch folgendes ein und zeig mal was ausgegebn wird,falls es weiterhin nicht funktioniert:
printf("params -> '%s'",params);Nebenbei:
if(Frak == 0) {Fn = "Zivilist", SetPlayerSkin(pID, 1);}
else if(Frak == 1) {Fn = "Polizist", SetPlayerSkin(pID, 280);}
else if(Frak == 2) {Fn = "Medic", SetPlayerSkin(playerid, 276);} // playerid ??
else if(Frak == 3) {Fn = "Army", SetPlayerSkin(playerid, 287);}// playerid ?? -
Tja und das sagt dir nichts oder wie ?
[Plugin] [REL] Streamer Plugin v2.6Lad das Paket nochmal komplett neu runter,kompilier deine Scripte neu und vergiss nicht das Plugin auszutauschen.
-
Genau genommen ist das nicht 70%,sondern so:
new start = random(100);
if(start > 70) // Tritt zu 29% ein
{
//Motor startet
}
else // Tritt zu 71% ein.
{
//Motor startet nicht
}Denn random(100) gibt die Zahlen von 0 - 99. Das sind insgesamt 100 Wert.
0 - 69 sind somit 70 Werte und stellen somit auch 70% dar.
Du hast aber 0 - 70 gemacht und das sind 71 Wert ( 71% ) .Kleiner Exkurs .
new start = random(100);
if(start >= 70) //Wahrscheinlichkeit = 70% | >= anstatt >
{
//Motor startet
}
else
{
//Motor startet nicht
} -
Hast bestimmt nicht.
Installier mal folgendes:
http://forum.sa-mp.com/showthread.php?t=249226Nicht den Hinweis am Ende des Startposts überlesen.
-
Der Thread ist definitiv dumm.
-
Die Funktionen von Maddin funktionieren aber nur,wenn du die WHERE Abfrage auch gültig durchführen kannst.
Heisst also, du müsstest bei den Gangs auch überall eine ID haben aus der dann die Daten ausgelesen werden sollen. Hast du keinen Wert mit einer ID bei den Gangs angelegt, müsstest du sowas noch anlegen. Denn irgendwie musst du ja zum vergleichen mit etwas abfragen,eine ID ist da meistens am Besten.Schau dir lieber mal folgendes an:
MySQL#mysql_retrieve_row
Das Beispiel sollte dir eigentlich sehr gut weiter helfen.
mysql_query("SELECT * FROM houses");
mysql_ store_result();
while(mysql_retrieve_row()) //this will be running until all rows are processed
{
//you can use mysql_fetch_field and mysql_fetch_field_row here
}
mysql_free_result(); -
Von welchen Feldern redest du denn genau ? Ohne kann Ich dir jedenfalls nicht helfen.
Eigentlich brauch man sowieso nicht wissen,wieviele Zeilen es gibt bzw Einträge. Man könnte auch als Query folgendes machen:
Dann einfach die Zeilen durchgehen lassen ( In php heisst es mysql_fetch_assoc , müsste bei den Plugins wohl so ähnlich heissen ) per while und damit jede Zeile einzelnt auslesen und verarbeiten. Hast ja nicht genannt,welches MySQL Plugin du verwendest ;).//Edit:
Hups. -
Der Code von Dominik. ist auch nicht richtig. Zum einem überschreibt er immer den gleichen String ( Zeile ) und zum Anderen,hat er die Variablen nicht richtig beachtet sondern gibt nur den Wert des Eintrages aus dem enum aus.
Zitatalso mit Licenses geht es danke
kannste mir das mal für Stats einmal zeigen verstehe das noch nicht ganz wie das da sein soll .
oder mir den quell code schiken danke im Vorraus
Könnte ich schon,nur lernst du da nichts bei. Darum geht es ja hier im Scripting Base - Bereich.Irgendwo arbeitest du doch mit den Variablen, mit denen du hier arbeiten möchtest:
format(Zeile0,sizeof(Zeile0),"|--------Daten--------|");
format(Zeile1,sizeof(Zeile1),"-Level: %d",Level);
format(Zeile2 ,sizeof(Zeile2),"-Respekt: %d",ErfahrungsP);
format(Zeile3 ,sizeof(Zeile3),"-Geld: %d", Geld);
format(Zeile4 ,sizeof(Zeile4 ),"-Kontostand: %d", Bank);
format(Zeile5 ,sizeof(Zeile5 ),"-Admin Rang: %d", Admin);
format(Zeile6 ,sizeof(Zeile6 ),"\n|--------Beruf--------|");
format(Zeile7 ,sizeof(Zeile7 ),"-Fraktion: %s", Beruf);
format(Zeile8 ,sizeof(Zeile8 ),"-Rang: %d", Rank);
format(Zeile9 ,sizeof(Zeile9 ),"-Nebenjob: %s", Nebenjob);
format(Zeile10 ,sizeof(Zeile10 ),"\n|---------Info--------|");
format(Zeile11,sizeof(Zeile11 ),"-Tode: %d", Tode);
format(Zeile12 ,sizeof(Zeile12 ),"-Verbrechen: %d", Verbrechen);
format(Zeile13 ,sizeof(Zeile13 ),"-Wandets: %d", Wanted);
Level,ErfahrungsP,Admin usw sind bei dir doch sicherlich irgendwo als Variablen bezeichnet. So wie Beispielweise dieses hier:
PlayerInfo[playerid][FlyL]
FlyL kommt doch auch irgendwo her, genau so musst du dann mit Level,ErfahrungsP,Admin usw arbeiten ( Vorausgesetzt,die sind im gleichem enum deklariert ).
Wenn du genau beschreiben würdest,was du nicht verstehst,dann kann man dir auch besser helfen. Ich schreibe dir nämlich keinen fertigen Code. -
Ich zeig mal wo bei licence die Fehler liegen:
dcmd_licenses(playerid,params[])
{
#pragma unused params
new Zeile0[252],Zeile1[252],Zeile2[252],Zeile3[252],Zeile4[252],DialogText[252];
if(PlayerInfo[playerid][CarL] == 0)
{
format(Scheine,sizeof(Scheine),"Nein");
}
else if(PlayerInfo[playerid][CarL] == 1)
{
format(Scheine,sizeof(Scheine),"Ja");
}
if(PlayerInfo[playerid][BikeL] == 0)
{
format(Scheine,sizeof(Scheine),"Nein");
}
else if(PlayerInfo[playerid][BikeL] == 1)
{
format(Scheine,sizeof(Scheine),"Ja");
}
if(PlayerInfo[playerid][FlyL] == 0)
{
format(Scheine,sizeof(Scheine),"Nein");
}
else if(PlayerInfo[playerid][FlyL] == 1)
{
format(Scheine,sizeof(Scheine),"Ja");
}
//
format(Zeile0,sizeof(Zeile0),"|--------Scheine--------|");
format(Zeile1,sizeof(Zeile1),"-Auton: %d",CarL);
format(Zeile2 ,sizeof(Zeile2),"-Motorad: %d",BikeL);
format(Zeile3 ,sizeof(Zeile3),"-Flugzeug: %d", FlyL);
format(Zeile4 ,sizeof(Zeile4 ),"-WaffenSchein: %d", WaffenL);
format(DialogText,sizeof(DialogText),"%s\n%s\n%s\n%s\n%s",Zeile0,Zeile1,Zeile2,Zeile3,Zeile4);
ShowPlayerDialog(playerid,DIALOG_Scheine,DIALOG_STYLE_MSGBOX,"Deine Scheine",DialogText,"Schließen","");
return 1;
}Ob Jemand einen Speziellen Führerschein hat,weist du immer der gleichen Variable zu.
format(Scheine,sizeof(Scheine),"Ja");
Bzw "Nein".Du überschreibst aber jedes mal diesen Wert. Das bringt dir natürlich nichts. Du verwendest die Variable Scheine außerdem sowieso nie, außer um dort "Ja" oder "Nein" reinzuschreiben.
format(Zeile1,sizeof(Zeile1),"-Auton: %d",CarL);
format(Zeile2 ,sizeof(Zeile2),"-Motorad: %d",BikeL);
format(Zeile3 ,sizeof(Zeile3),"-Flugzeug: %d", FlyL);
format(Zeile4 ,sizeof(Zeile4 ),"-WaffenSchein: %d", WaffenL);
Hinter CarL,BikeL usw. stecken nur Zahlen.Das liegt daran,wie das Schlüsselwort enum arbeitet. Die Wert auszugeben,bringt dir nichts. Sie sind bei diesem Code eh nicht auf den Spieler bezogen.Es gibt verschiedene Methoden,wie du es machen könntest. Ich zeige dir mal eine davon.
dcmd_licenses(playerid,params[])
{
#pragma unused params
new Zeile0[252],Zeile1[252],Zeile2[252],Zeile3[252],Zeile4[252],DialogText[252];
if(PlayerInfo[playerid][CarL] == 0)
{
format(Zeile1,sizeof(Zeile1),"-Auton: Nein");
}
else if(PlayerInfo[playerid][CarL] == 1)
{
format(Zeile1,sizeof(Zeile1),"-Auton: Ja");
}
if(PlayerInfo[playerid][BikeL] == 0)
{
format(Zeile2 ,sizeof(Zeile2),"-Motorad: Nein");
}
else if(PlayerInfo[playerid][BikeL] == 1)
{
format(Zeile2 ,sizeof(Zeile2),"-Motorad: Ja");
}
// USW...
format(Zeile0,sizeof(Zeile0),"|--------Scheine--------|");
format(DialogText,sizeof(DialogText),"%s\n%s\n%s\n%s\n%s",Zeile0,Zeile1,Zeile2,Zeile3,Zeile4);
ShowPlayerDialog(playerid,DIALOG_Scheine,DIALOG_STYLE_MSGBOX,"Deine Scheine",DialogText,"Schließen","");
return 1;
}Bei STATS hast du ein ähnliches Problem.
format(Zeile1,sizeof(Zeile1),"-Level: %d",Level);
Level ist nur ein Name für Zahl aus deinem enum. Du willst aber den Wert des Spielers,der bei Level ist.
Das wird wahrscheinlich bei dir so aussehen:
PlayerInfo[playerid][Level] -
Ich zitiere mich mal.
ZitatDas ist totaler Quatsch. Glaube auch,dass es nicht mal kompilieren wird ohne das eine Fehlermeldung erscheint.Selbst der Kommentar mach keinen Sinn,denn dann wäre es ja
Ganz ehrlich, lass es lieber mit dem Scripten. So kommst du nicht weit.
format(SpielerInfo[playerid][pEmail], 50,mysql_GetString("accounts", "Email", "Name", SpielerInfo[playerid][pName]));
SpielerInfo[playerid][pEmail] = 50;
Ich habe doch geschrieben,dass diese Zeile nichts bringt:
SpielerInfo[playerid][pEmail] = 50;
Lösch die,die macht gar keinen Sinn. Die 2 am Anfang kommt nämlich durch die 50. 50 ist nämlich der ASCII - Wert für das Zeichen 2.
Ich glaube du hast nicht mal selber verstanden,was du dort machst 0o. -
Du hast definitiv nicht verstanden,wie format funktioniert.
format( SpielerInfo[playerid][pEmail] , ??? ,mysql_GetString("accounts", "Email", "Name", SpielerInfo[playerid][pName]));
Wenn du für ??? jetzt was sinnvolles eingesetzt hast,dann hast du doch schon in der Variable SpielerInfo[playerid][pEmail] den Wert den du haben wolltest.
Was ist denn daran so schwer zu verstehen ?SpielerInfo[playerid][pEmail] = 50;// (?) oder muss ich statt 50 "SpielerInfo[playerid][pEmail]" hinschreiben (was ich aber eher weniger denke)
Das ist totaler Quatsch. Glaube auch,dass es nicht mal kompilieren wird ohne das eine Fehlermeldung erscheint.Selbst der Kommentar mach keinen Sinn,denn dann wäre es ja :
SpielerInfo[playerid][pEmail] = SpielerInfo[playerid][pEmail];
Das ist natürlich Quatsch und bringt nichts. -
Oh man,du stellst dich mehr als ungeschickt an ...
format( SpielerInfo[playerid][pEmail] , ??? ,mysql_GetString("accounts", "Email", "Name", SpielerInfo[playerid][pName]));
size ( ??? ) musst du manuell angeben.Man kann es sich zwar auch ausgeben lassen,dass ist aber ein Anderes Thema ;). Ist nämlich nicht einfach über "sizeof( SpielerInfo[playerid][pEmail] ) auslesbar".
Du sollst lediglich anstatt ??? eine Zahl eintragen. Die Zahl ist die Zahl,die hinter pEmail in den [ - ] steht.
enum irgendwas {
pEmail[24],
pSonstwas
}
Hier wäre es die 24. Kannst auch einfach 2000 eintragen,ist aber keine Gute Idee ;).Zitat(hab nicht wirklich ahnung von MySQL und formatieren hab ich bisher nur mit diesem "format(string,sizeof string,..." gemacht
Da bist du nicht der Einzige, deswegen empfehle ich auch nie MySQL zu verwenden wenn man eh keine Ahnung davon hat. In diesem Fall spielt MySQL aber keine Rolle. -
Ich versuch dir mal den Fehler zu erklären.
Die Funktion mysql_GetString gibt ein Array der Größe 128 zurück ( Schau dir die Funktion mal an ).
Damit das zuweisen durch die Funktion mysql_GetString direkt funktioniert,muss das zugewiesene Array die gleich Größe haben,also auch 128.
Ist pEmail ein Array der Größe 128,dann funktioniert es so direkt:
SpielerInfo[playerid][pEmail] = mysql_GetString("accounts", "Email", "Name", SpielerInfo[playerid][pName]);Hier hast du aber genau das gleiche Probleme,wenn string und pEmail nicht gleich Groß sind.
format(string,sizeof string,mysql_GetString("accounts", "Email", "Name", SpielerInfo[playerid][pName]));
SpielerInfo[playerid][pEmail] = string;
Was BlackAce eigentlich meinte,ist anstatt string direkt SpielerInfo[playerid][pEmail] zu verwenden.format( SpielerInfo[playerid][pEmail] , ??? ,mysql_GetString("accounts", "Email", "Name", SpielerInfo[playerid][pName]));
size ( ??? ) musst du manuell angeben.Man kann es sich zwar auch ausgeben lassen,dass ist aber ein Anderes Thema ;). Ist nämlich nicht einfach über "sizeof( SpielerInfo[playerid][pEmail] ) auslesbar".//Edit: Hier findest n' Anleitung wie es geht
http://forum.sa-mp.de/san-andr…%C3%9Fes-enum/#post977309 -
Der Fehler muss irgendwo bei dir liegen. Zeig mal mehr vom Code, denn nur mit der Fehlermeldung alleine kann ich nicht viel anfangen :p.
-
Die Funktion anschauen würde in diesem Fall nicht schaden:
mysql_SetString(Table[], Field[], To[], Where[], Where2[])
mysql_SetInt(Table[], Field[], To, Where[], Where2[])
Beide erwarten als letzten Paramater ein Array bzw String. Du gibst aber kein Array an. Übrigens müsste es auch hier eine Meldung geben,bezüglich des 3. Parameters:
mysql_SetInt("bizzs", "Besetzt", 1, "BizID", b); // Hier die beiden ZeilenIn diesem Thread gab es das selbe Problem.
Du musst aus b mit einem Wert von z.B. 15 einen String mit dem Text "15" machen. Wie das geht,findest du in dem verlinkten Thread.