Danke schön!
Oh gott' oh gott...
Naja was soll ich denn auch noch dazu sagen?
Das war ja mal wieder ein voll peinliche Nummer
Naja wenn mal älter wird, bekommt man halt solche Problem...^^ Und das Stand auch noch in der Wiki...
*au* mein Kopf ![]()
Danke schön!
Oh gott' oh gott...
Naja was soll ich denn auch noch dazu sagen?
Das war ja mal wieder ein voll peinliche Nummer
Naja wenn mal älter wird, bekommt man halt solche Problem...^^ Und das Stand auch noch in der Wiki...
*au* mein Kopf ![]()
vlllt nen kilometer zähler ...der die gefahrenen kilometer zählt
einen Kilometerzähler habe ich bereits verbaut ;D
@All, ich meinte eigentlich in Hinsicht des Carsystem auch Befehle, die Ihr fürs Auto einführen
würdet. Wie eben z.B. die Idee eines Kolleges '/v licht' einzubauen...
Nunja, bisher hält sich Euer Ideenreichtum ja in Grenzen... Lasst ruhig alles raus ![]()
Guten Abend,
man' o man, mir ist das langsam peinlich als 3 jähriger Scripter immer solche Fragen zu stellen. ![]()
Die 'savedpositions.txt' gibt mir folgende Parameter zurück:
AddPlayerClass(98,1832.8552,-1842.5521,13.5781,269.5768,0,0,0,0,0,0); //
Dass der 1. Wert die Skin ID ist, ist mir natürlich klar.
Der 2., 3. und 4. Wert sind natürlich PosX, PosY und PosZ.
Doch was war gleich der 5. Wert? - PlayerFacingAngle, wenn ich mich nicht irre, oder?
Ich weis es leider nicht genau, müsste es aber mal wissen.
Da ich zu faul zum probieren bin, wäre es klasse, wenn es mir fix jemand verraten könnte.
Ich mein, was außer FacingAngle, soll auch in einer Positionangabe im Float ausgegeben werden? ![]()
Freundliche Grüße - 4#Future
ich würde test4(playerid); draus machen ihr Mr.Brains
Habe ich ja auch schon gesagt, aber mir glaubt ja keiner ![]()
Wobei BloodyEric, vielleicht Recht haben könnte, dass keine Funktion "piblic test4(playerid)" exitiert,
sondern GTA0071, ausversehen gedacht hat, er müsse dies noch zusätzlich anfügen...
GTA0071, nun für Dich: Entferne zuerst einmal die Zeile: "test4(playerid)" und probiere, ob es funktioniert...
Hmm,
ich verstehe grade nicht genau, was Du damit meinst... ![]()
Gehst Du davon aus, dass ich meinen Carkey an andere Spieler weitergeben kann,
oder meinst Du die Abgabe des Schlüssels?
Eine Vergabe des Schlüssels an einen anderen Spieler habe ich übrigens gleich im
Befehl "/give" mit integriert, da er einen schönen passenden Namen hat. ;D
Ups ![]()
Habe auch grade gesehen, dass "ShowMenuForPlayer(test4,playerid);" ja schon drüber steht...
(ohje wenn man alt wird :D)
Trotzdem ist bestimmt "test4" falsch deiniert.
Nämlich einfach nur "new test4;", wobei es für ein Menü aber "new Menu:test4;" heisen muss.
Und Du solltest auch schauen, dass Du wirklich ein Menu bei "OnGameModeInit" lädt, welches
"test4" heißt, da sonst ein Fehler, des Nichtgebrauchens der Variable kommt...
Alles anzeigenD:\Script\samp03asvr_R8_win32\filterscripts\License.pwn(493) : warning 217: loose indentation
D:\Script\samp03asvr_R8_win32\filterscripts\License.pwn(499) : warning 217: loose indentation
D:\Script\samp03asvr_R8_win32\filterscripts\License.pwn(518) : warning 217: loose indentation
D:\Script\samp03asvr_R8_win32\filterscripts\License.pwn(524) : warning 217: loose indentation
D:\Script\samp03asvr_R8_win32\filterscripts\License.pwn(532) : error 012: invalid function call, not a valid address
D:\Script\samp03asvr_R8_win32\filterscripts\License.pwn(532) : warning 215: expression has no effect
D:\Script\samp03asvr_R8_win32\filterscripts\License.pwn(532) : error 001: expected token: ";", but found ")"
D:\Script\samp03asvr_R8_win32\filterscripts\License.pwn(532) : error 029: invalid expression, assumed zero
D:\Script\samp03asvr_R8_win32\filterscripts\License.pwn(532) : fatal error 107: too many error messages on one line
else if(GetPlayerMenu(playerid) == test3)
{
switch(row)
{
case 0:
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Gratuliere für die richtige Antwort! Es folgt Frage 4.");
ShowMenuForPlayer(test4,playerid);
test4(playerid) //Zeile 532
}
Hallo GTA0071,
zuerst einmal möchte ich sagen, dass BloodyEric natürlich in Ansätzen Recht hat.
Zum einen müsste schonmal in deine Zeile 532, statt "test4(playerid)" rein "test4(playerid);".
Dieses ; beendet Deinen Parameter "test4". Dies ist auch im Fehler abzulesen: (532) : error 001: expected token: ";", but found ")"
Zum zweiten nehme ich an, dass die Zeile 524 folgende ist "else if(GetPlayerMenu(playerid) == test3)".
Kann es vielleicht sein, dass Du vor dem "else if" kein einziges Mal nur "if" stehen hast?
Denn mit "else if" in einer Funktion anzufangen, bringt bei mir genau diesen Fehler...
Bitte schicke mal noch einige Codezeilen, auch wie Du "test3" und "test4" definiert hast.
Ein beliebter Fehler ist auch folgender, nämlich nur "new test3;" zu schreiben.
Denn möchtest Du Menüs definieren, musst Du dies mit "new Menu:test3;" tun.
[WICHTIG] Wenn "test3" wirklich ein Menü zeigen soll, muss es so heisen: "ShowMenuForPlayer(test3, playerid);".
Und Du musst test3 nicht mit einem playerid, definieren, denn Menüs werden schon bei der Funktion "ShowMenuForPlayer" nur
für den Player, mit der playerid gezeigt...
Bitte schau nochmal nach...
Hey Leute,
heute mal etwas ungewöhnlicher, aber für mich trotzdem wichtig, habe ich einige Fragen.
Nun, 4#Future selbst ist ja ein Reallife Projekt mit hervorragenden Scriptern (keines Wegs angeberisch gemeint!!).
Da unser ganz neuer Gamemode zu 100% Selfmade wird, gibt es natürlich immer kleine Wünsche etc...
Doch momentan wissen wir eher nicht, was wir verbessern bzw. hinzufügen können. ![]()
Bis jetzt sind einige Standartbefehle wie das Fahrzeug zu Parken, Auf- und Zuzusperren, zu tanken... im Carsystem eingebaut.
Bereits sind einige Extras, wie das Tuning zu löschen, das Fahrzug auf der Karte zu makieren oder es An- und Auszuschlaten eingebaut.
Bereits einige Testcommands wie /v licht 1 - an | 0 - aus, wurden ebenfalls hinzugefügt. Und ein Spieler kann bis zu 2 Fahrzeuge haben.
Natürlich sind wir, 4#Future sehr stolz auf unser Script insbesondere das Carsystem, da es eben 100% Selfmade ist.
Aus diesem Grund wird das 4#Future Carscript vielleicht bald als Filterscript erscheinen... (mal schauen)
Wir besitzen ein Carsystem, natürlich eine Eigenkreation, welches folgende Befehle 100% bugfrei ausführt:
Zitat|Funktionen| Park, Lock 1/2, Unlock 1/2, Tanken, Farbe, Findcar 1/2, Deltuning 1/2
|Testphase| Licht
|Verkaufen| Sellcar (Händler), Verkaufe [Spieler] [Preis]
|Start&Stop| On - Starten, Off - Stoppen
Nun aber zu meiner eigentlichen Frage...
> Welche zusätzlichen Befehle würden Euch einfallen und als Spieler gefallen, die ich in meinem Carsystem ergänzen könnte?
Ich hoffe Ihr könnt mir einige neue und vielleicht sogar großartige Ideen geben...
Doch bitte um ersthafte Vorschläge und keine Beiträge, die abfällig oder sonst gehessig sind.
Freundliche Grüße - 4#Future
Hey Leute,
ich habe da mal wieder eine kleine Frage.
Und zwar kann ich ja mit "SetVehicleParamsForPlayer" einstellen, ob die Fahrzeugtüren verschlossen sind oder nicht.
Nur funktioniert dies leider komischer Weise nicht.
Ich habe folgendes eingefügt:
public OnPlayerSpawn(playerid)
{
for(new h = 10; h < sizeof(CarInfo); h++)
{
SetVehicleParamsForPlayer(h, playerid, 0, CarInfo[h][cLock]);
}
...
Die Fahrzeuge bei der diese Funktion ansetzten soll, beginnen erst mit der ID 10, daher auch "for(new h = 10; ...".
Trotzdem sind die Türen für den Spieler aufgesperrt.
Oder ist es vielleicht empfehlenswerter, wenn ich dies bei "OnPlayerEnterVehicle" hinzufüge? Oder ist es da schon zu spät?
Aber davon mal abgesehen habe ich eine, für mich, viel wichtigere Frage zu diesem Thema.
Angenommen die Türen eines beliebigen Fahrzeugs sind nun wirklich versperrt und ich möchte grade ins
Fahrzeug einsteigen.
Wie deaktiviere ich diese Animation des Einsteigens, besser gesagt, des Probierens ob die Tür offen ist?
Einsteigen kann der Spieler ja eigentlich nicht.
Würde mich über eine Lösung sehr freuen! Vielen Dank...
Liebe Grüße - 4#Future
Theoretisch nicht, nein.
Aber ich bitte Dich mal es auszuprobieren.
Genau kann ich Dir nicht sagen, dass es funktioniert. Zumindest bei mir tut es das ![]()
Freundliche Grüße
4#Future
Aha, ok danke erstmal!
Kannst Du es mir nicht zufällig mal zusammenpacken und irgendwo hochladen?
Oder mich mal im ICQ adden und es mir schicken?
Ginge das?
Ich würde mich echt sehr freuen...
Freundliche Grüße
4#Future
Ja das ist mir klar, doch gibt es kein getrenntes MySQL Log.
Connected der Spieler, steht in der ServerLog, "... joined the Server.".
Klicke ich dann einloggen, schmiert er ohne Fehler und ohne Vorwarnung ab.
Gebe ich mein Passwort falsch ein, bringt er mir den den Fehler und auch wenn ich es
zu oft falsch eingeben bannt er mich und bleibt online.
Also liegt es am Login, doch diesen Teil habe ich fehlerfrei übernommen, doch haut
irgendwann mit der MySQL Datenbank nicht hin.
So viel weiß ich, bis zum makierten Punkt führt er OnPlayerLogin aus, dann stoppt er einfach.
public OnPlayerLogin(playerid,password[])
{
MySQLCheckConnection();
new tmp2[256];
new playername2[MAX_PLAYER_NAME];
new playernamesplit[3][MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
split(playername2, playernamesplit, '_');
MySQLFetchAcctSingle(PlayerInfo[playerid][pSQLID], "Password", PlayerInfo[playerid][pKey]);
if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
{
new Data[1024];
new Field[64];
new rcnt = 1;
MySQLFetchAcctRecord(PlayerInfo[playerid][pSQLID], Data);
samp_mysql_strtok(Field, "|", Data);
while (samp_mysql_strtok(Field, "|", "") == 1) <--------- bis hier her
{
if (rcnt == 3) PlayerInfo[playerid][pLevel] = strval(Field);
if (rcnt == 4) PlayerInfo[playerid][pAdmin] = strval(Field);
if (rcnt == 5) PlayerInfo[playerid][pPupgrade] = strval(Field);
if (rcnt == 6) PlayerInfo[playerid][pRespekt] = strval(Field);
if (rcnt == 7) PlayerInfo[playerid][pConnectTime] = strval(Field);
if (rcnt == 8) PlayerInfo[playerid][pReg] = strval(Field);
if (rcnt == 9) PlayerInfo[playerid][pGeschlecht] = strval(Field);
if (rcnt == 10) PlayerInfo[playerid][pAlter] = strval(Field);
Ich verzweifle langsam.
Wer helfen kann, meine ICQ Nummer ist 457273658, ich antworte vllt nicht gleich, bin aber da!
Freundliche Grüße
4#Future
Pass auf,
die Idee mit dem "AutoEngine" merkst Du dir einfach und baust es folgender Maßen auf.
new vehicle = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid, vehicle, 0);
Diese Funktion beschreibt, dass der Spieler im Fahrzeug sitzt, aber nicht fahren kann, wie als wenn
das Fahrzeug ausgeschaltet wäre.
Das heißt diese Funktion fragst Du bei "OnPlayerEnterVehicle" folgendermaßen ab (unter Beachtung von "AutoEngine")
if(AutoEngine[playerid] == 0)
{
new vehicle = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid, vehicle, 0);
}
Ein else brauchst Du nicht, denn wenn AutoEngine an ist, kann der Spieler auch gleich starten.
Startest Du dann das Fahrzeug, z.B. mit einer Taste, erstellst Du einen Timer und wenn dieser abgelaufen ist,
führt er "TogglePlayerControllable(playerid, true);" aus und der Spieler sollte nun in der Lage sein zu fahren.
Freundliche Grüße
4#Future
Also ich finde keinen MySQL Debug Parameter.
Aber davon mal ganz abgesehen würde ich auch gern SAMPMySQL behalten, da es mir auch in
der Vergangenheit keine Probleme und Sorgen machte.
Nur bräuchte ich nun nochmal einen Scripter, der per Teamviewer connecten oder mit mir im ICQ
schreibt, um welches Problem es sich im Script genau handelt.
Das MySQL Plugin funzt wirklich 1a, nur am Script ist irgend ein Fehler, den ich nicht finde.
Freundliche Grüße
4#Future
Ich muss den Server momentan leider erstmal local auf meinem Windows Rechner laufen lassen.
Also eigentlich benutze ich das neueste MySQL Plugin von "http://lostgangwarz.free.fr".
Vielleicht kannst Du mir auchmal einen Link eines anderen MySQL Plugins für Windows schicken,
welches Deiner Meinung nach vielleicht besser wäre.
Im übrigen, was meinst Du mit MySQL Debug. Es ist mir grade nicht ganz klar wo ich es einschalten
soll. Vielleicht hast Du mal Lust per Teamviewer zu connecten. Teamspeak und ICQ habe ich auch.
Übrigens wie oben schon erwähnt steht weder was in der ServerLog noch ist die CrashInfo hilfreich.
Und funktionieren sollte die MySQL Verbindung eigentlich auch, da das Registrieren erfolgt und
der User auch in der Tabelle steht, nur nach dem Login stürzt der Server einfach ab.
Vielleicht liegt es auch an "OnPlayerSpawn" oder "SetPlayerSpawn", leider bin ich ein bisschen hilflos.
Freundliche Grüße
4#Future
Hallo Kirschi14,
mein Vorschlag wäre es, einen Parameter zu definieren, welcher z.B. "AutoEngine" heißt
und der bei jedem Losfahren abgefragt wird.
Quasi meine ich, dass du bei "OnPlayerConnect" rein schreibst, "AutoEngine[playerid] = 0" (vergiss es nicht zu definieren).
Bei "OnPlayerEnterVehicle" fragst Du dann einfach den Status ab, mit "if(AutoEngine[playerid] == 0) { Auto ist aus; }"
Im Grunde genommen reicht dies schon, nur wird bei jedem einsteigen ins Fahrzeug nötig,
es anzuschalten, d.h. es würde so nie dauerhaft laufen.
Du könntest dies ja ausbauen und sagen, dass man mit bestimmten Tasten, z.B. Alt (KEY_WALK) das Fahrzeug
starten kannst "AutoEngine = 1" oder bei wdh. drücken stoppen kann "AutoEngine = 0".
Ich hoffe ich konnte dir helfen, ansonten erläutere ich es dir gern näher.
Freundliche Grüße
4#Future
Guten Tag,
ich habe ein kleines aber bescheidenes Anliegen.
Und zwar geht es um meinen Gamemode, welcher gerade neu und in der Aufbauphase ist.
Ausgehend von MySQL ist der Gamemode auf Basis von MTRP ausgerichtet, jedoch SlM.
Mein Problem ist, dass nach dem Einloggen der Server abstürzt, da er (wahrscheinlich) die
MySQL Tabelle nicht richtig ausließt.
Mein GM ist zurzeit 1600Z groß und sehr übersichtlich.
Ich würde mich freuen, wenn sich ein Scripter fände, der mal bei mir, per Teamviewer
vorbeischaut und guckt, ob er das Einloggproblem beheben kann.
Auszug aus OnPlayerLogin:
new Data[1024];
new Field[64];
new rcnt = 1;
MySQLFetchAcctRecord(PlayerInfo[playerid][pSQLID], Data);
samp_mysql_strtok(Field, "|", Data);
while (samp_mysql_strtok(Field, "|", "") == 1)
{
if (rcnt == 3) PlayerInfo[playerid][pLevel] = strval(Field);
if (rcnt == 4) PlayerInfo[playerid][pAdmin] = strval(Field);
if (rcnt == 5) PlayerInfo[playerid][pPupgrade] = strval(Field);
if (rcnt == 6) PlayerInfo[playerid][pRespekt] = strval(Field);
...
rcnt++;
}
SendClientMessage(playerid, INFO_BLAU, "** Du hast Dich erfolgreich eingeloggt! **");
Die Nachricht man hätte sich erfolgreich eingeloggt, kommt leider nicht und der Server ist sofort offline. Kein Fehler!
Und die crash_info Datei, naja daraus wird man auch nicht schlau ![]()
Einen Fehler im Script kann ich leider auch nicht finden, daher bitte ich um Hilfe.
PS.: In der MySQL Datenbank ist kein Fehler...
Ich wäre Euch sehr verbunden!
Freundliche Grüße
4#Future
Danke schön!
Ihr seit echt spitze!
Freundliche Grüße
4#Future
Guten Tag,
ich hätte mal eine kleine Frage...
Und zwar gibt es ja die Möglichkeit die Spielernamen, der gerade auf dem Server befindlichen
Spieler einzufärben, quasi bunt zu machen.
Einige Server nutzen dies z.B. dafür Polizei oder einigen Jobs bestimmte Farben zu geben.
Das Problem bei mir... mit "SetPlayerToTeamColor()" wird dies normaler weise getan, doch ist
man dann auch auf der Karte, mit der definierten Farbe, makiert und die Position ist für alle sichtbar.
Wie bekomme ich gleich nochmal die jeweilige Makierung des Spielers, dann auf der Karte
wieder weg? - Ich habe das total vergessen ![]()
Bzw. man kann doch die Makierungen, nur von Spielern, mit welchen Farben auch immer deaktivieren, oder?
Freundliche Grüße
4#Future Reallife
Ok Ihr zwei, passt mal auf...
Ihr habt Eure Pickups sicherlich mit 'AddStaticPickup...' eingefügt.
Nun, für Euer Problem gibt es eine SA-MP Grundfunktion, nämlich 'public CustomPickups()'.
EDIT: Ihr erstellt eine Funktion namens 'CostumPickups()' und vergesst das 'forward CostumPickups()' nicht!
Ihr fügt jetzt folgenden Code ein, um erstmal Euer Pickup zugänglich zu machen:
public CustomPickups()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerToPoint(2.0, i, KORDI-X, KORDI-Y,KORDI-Z))
{
GameTextForPlayer(i, "~w~Hier meinen Text", 5000, 3);
}
}
}
return 1;
}
Nun, du setzt für 'KORDI-X,Y & Z' deine Pickup Koordinaten ein.
Würdest du nun in das Pickup laufen würde 5 Sekunden lang da stehen 'Hier mein Text'.
Wenn du nun möchtest, dass nur eine bestimme Fraktkion, oder Spielerklasse dieses
Pickup ansehen soll, machst du eine entsprechende If-Anweisung vor das 'GameTextFor...'.
Um dir ein Beispiel zu geben, nur Admins können die geheimen Infos sehen:
public CustomPickups()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerToPoint(2.0, i, KORDI-X, KORDI-Y,KORDI-Z))
{
if(IsPlayerAdmin(i))
{
GameTextForPlayer(i, "~w~Hier meinen Text", 5000, 3);
} else {
SendClientMessage(i, COLOR_WHITE, "Du bist kein Admin und kannst die geheimen Infos nicht lesen!");
return 1;
}
}
}
}
return 1;
}
Und das wars dann auch schon! Weitere Fragen oder Probleme? Antwortet einfach meinem Post...
Mit freundlichem Gruß - #4-Future | Philip (Scripter)