Mach ganz oben also unter
if(IsPlayerConnected(playerid))
{
new string[128];
Mach ganz oben also unter
if(IsPlayerConnected(playerid))
{
new string[128];
new countdown = 60;
forward countmedown();
SetTimer("countmedown",1000,0);
public countmedown()
{
if(countdown > 1)
{
new string[128];
format(string,sizeof(string),"Countdown: %d",countdown);
GameTextForAll(string,1000,3);
SetTimer("countmedown",1000,0);
countdown --;
}
else
{
GameTextForAll("Der Countdown ist abgelaufen",1000,3);
countdown = 0;
}
}
{
Zeig mal die Zeilen dadrüber auch noch.
Weil in deinem Code ist eigentlich nichts falsch, wenn msg als Farbe definiert wurde und die Zeichen von samp verarbeitet werden können.
Ehm ja nur kann ja sein, dass er außerhalb von OnPlayerstateChange, genauer gesagt unter OnPlayerKeyStateChange in einem anderen Codeschnipsel, welcher nicht gepostet wurde, den State abfragt. Ansonsten hätte er ja keine Error bekommen wenn er es nicht verwendete .
Also ich seh in deinem Code kein newstate und Firefox Suche findet auch nix.
Aber das sollte helfen.
new newstate = GetPlayerState(playerid);
if(newstate == PLAYER_STATE_ONFOOT)
Warum wird das hier nicht in die Tabelle geschrieben. Alles, also alte Datei löschen; Texte ausgeben, funktioniert. Nur die MYSQL Abfragen nicht.
Die Verbindungsdaten sind auf jeden fall richtig, denn eine Verbindung zu MYSQL wird aufgebaut.
new query[128],data[128],laenge,string[128];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,sizeof(playername));
laenge = strlen(inputtext);
format(string,sizeof(string),"%s.dini",playername);
if(strcmp(dini_Get(string,"Password"),inputtext,false)==0 && laenge != 0)
{
mysql_connect("host","user","passwort","datenbank",1);
format(query,sizeof(query),"INSERT INTO `User` (`Name`, `Password`, `Admin`, `Kills`, `Tode`, `Warn`, `Ban`) VALUES ('%s', '%s', '%d', '%d', '%d', '%d', '%d')", playername, dini_Get(string,"Password"),dini_Int(string,"Admin"),dini_Int(string,"Kills"),dini_Int(string,"Tode"),dini_Int(string,"Warn"),dini_Int(string,"Ban"));
mysql_query(query);
format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Prison` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Prison"),playername);
mysql_query(query);
format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Premium` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Premium"),playername);
mysql_query(query);
format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Rank` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Rank"),playername);
mysql_query(query);
format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Punkte` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Punkte"),playername);
mysql_query(query);
format(query,sizeof(query),"SELECT * FROM User WHERE Name = '%s'", playername);
mysql_query(query);
mysql_fetch_field("Admin",data);
SetPVarInt(playerid,ADMIN_KEY,strval(data));
mysql_fetch_field("Kills",data);
SetPVarInt(playerid,KILLS_KEY,strval(data));
mysql_fetch_field("Tode",data);
SetPVarInt(playerid,TODE_KEY,strval(data));
mysql_fetch_field("Warn",data);
SetPVarInt(playerid,WARN_KEY,strval(data));
mysql_fetch_field("Prison",data);
SetPVarInt(playerid,PRISON_KEY,strval(data));
mysql_fetch_field("Ban",data);
SetPVarInt(playerid,BAN_KEY,strval(data));
mysql_fetch_field("Premium",data);
SetPVarInt(playerid,PREMIUM_KEY,strval(data));
mysql_fetch_field("Rank",data);
SetPVarInt(playerid,RANK_KEY,strval(data));
mysql_fetch_field("Punkte",data);
SetPVarInt(playerid,PUNKTE_KEY,strval(data));
format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Lastlogin` = '%s' WHERE `User`.`Name` = '%s'",GetTime(),playername);
mysql_query(query);
mysql_close();
dini_Remove(string);
SetPVarInt(playerid,ISTEINGELOGGT_KEY,1);
SendClientMessage(playerid,weiß,"Einloggen erfolgreich. Bereit zum Spielen");
SendClientMessage(playerid,weiß,"Dein Account wurde auf MYSQL umgestellt. Bei Problemen kontaktieren bitte einen Admin");
new string3[128];
format(string3,sizeof(string3),"Spieler %s hat sich eingeloggt",playername);
print("-----");
print(string3);
}
So hab noch ne Frage bezüglich MYSQL.
Wenn ich ne Tabelle hab, Spalte "ID" mit Auto Increment und Primary Key, dann wird ja beim Anlegen eines neuen Users die "ID" automatisch um Eins erhöht um eine Zuweisung möglich zu machen.
Jetzt meine Frage :
Ich habe 3 User
ID 0 User 0
ID 1 User 1
ID 2 User 2
Wenn ich jetzt aber User 1 lösche also es so aussieht:
ID 0 User 0
ID 2 User 2
Und dann einen neuen User mache heißt dieser
ID 3 User 3.
Und meine Tabelle sieht so aus
ID 0 User 0
ID 3 User 3
ID 2 User 2
(Sortierung nach ID)
Kann ich das auch irgentwie machen, dass dann die Lücke zwischen 0 und 2 gefüllt wird ? Möglichst Automatisch. Also dass der neue User dann die ID 2 bekommt.
Ich denke mal das Passwort ein String ist. Also einfach die neue Variable in nen String verändern
new pw[128];
pw = ...
Wenns schon nen String ist einfach mal die Byte zahl erhöhen oder dem Maximum von PlayerInfo gleich setzten.
Ist es schlauer einmal mit mysql zu verbinden oder immer bei jedem einloggen, ausloggen zu verbinden und nach der Aktion die Verbindung zu unterbrechen ?
Da ich grad sowieso Zeit hab, bin ich mal 20 Minuten mit einem Turismo durch San Andreas geheizt und hab 19 Tankstellen gefunden.
Allen habe ich einen Namen zugewisen. Dieser hängt entweder vom Standort ab oder ich ich den Namen genommen, den die Tankstelle auf einem RL Server hat.
Bei einer Tankstelle ist mir der Name nicht mehr eingefallen.
ZitatAlles anzeigen1930.3215,-1776.1310,13.5469 // Alhambra Petrol Station
997.5215,-921.0881,42.1797 // Burger Shot North Petrol Station
-79.5565,-1169.7639,2.1629 // RS Haul Petrol Station
660.7679,-573.5139,16.3359 // Dillimore Petrol Station
1382.7303,464.6540,20.2040 // Montgomery Petrol Station
-2232.0854,-2557.9436,31.9219 // Angel Pine Petrol Station
-1623.9540,-2693.8535,48.7427 // Whetstone Petrol Station
-2032.1000,161.4818,29.0461 // Doherty Petrol Station
-1675.8939,431.8836,7.1797 // Easter Basin Petrol Station
-2418.7725,970.0265,45.2969 // Juniper Hill Petrol Station
-1465.5171,1872.7550,32.6328 // Tierra Robada Petrol Station
-1266.0439,2715.7612,50.2663 // El Quebrados Petrol Station
637.8962,1684.6371,6.9922 // Bone Country Petrol Station
60.6089,1225.8971,18.8654 // Fort Carson Petrol Station
2117.4829,898.0604,11.1797 // Come a lot Petrol Station
2637.2520,1128.6094,11.1797 // xxx Petrol Station
1600.0146,2220.7227,11.0625 // Redsands West Petrol Station
2189.4131,2469.6494,11.2422 // Emerald Petrol Station
2150.9675,2735.3318,11.1763 // Spinybed Petrol Station
Download: Hier das Ganze (Koords + Karte) nochmal als .rar zum downloaden
Erstell ne Variable
new pifreezed[MAX_PLAYERS];
Setzz sie auf true oder false
pifreezed[playerid] = 1;
pifreezed[playerid] = 0;
Frag ab ob sie true oder false ist
if(pifreezed[playerid] == 0)
if(pifreezed[playerid] == 1)
Die ist mit Sicherheit von einem Server, denn weder aufm Flughafen nocht in Bayside Marina gibts Tankstellen.
Es gibt auch keine Karte für Tankstellen, musst wohl im Raster über die Städte fliegen und per /save eigenhändig rausschreiben.
Oder du hast Glück und jemand hat für nen Rl schonmal alle Tankstellenkoordinaten rausgesucht.
irgentwie fehlt da das mysql_connect. Ohne Verbinden kann ich doch auf nix zugreifen.
Ich hab das Plugin, welches du mir gegeben hast jetzt installiert nur hab ich keine Ahnung was ich als Parameter angeben soll und das deutsche wiki kann man dafür in die Tonne haun. Alle Tutorials hier verweisen allerdings auf die englischen Seite, welche aber down sind.
Kann mir jemand ein gutes SAMP MYSQL-Plugin geben ?
Würd mir das ja selber ausm englischen Forum holen aber das ist ja down, alle Tutorials hier verlinken auch immer nur auf englische Forum.
A) Der Command zum einfärben von Namen kann auch SetPlayerColor sein.
B) Um Marker anzuzeigen und zu entfernen ShowPlayerMarkers(true) . Wenn du das im Script hast machs weg.
B.b) Um Marker für bestimmte Spieler anzuzeigen gibts auch ein Befehl, aber ohne englisches Wiki weiß ich den grad nicht. Und im Deutschen findet man ja wieder nix.
Das machst du am besten mit sscanf da du dort die Parameter direkt angeben kannst oder du überprüfst die Länge des Grund String
if(strlen(grund) == 0)
{
SendClientMessage(id,farbe,"Du musst einen Grund angeben");
return 1;
}
Du kannst als ID aber nur 0-99 nehmen, 100 ist zu groß. Und beachte auch, dass kein Map Object die gleiche ID eines anderen Map Object haben sollte.
Dann waren das höchstwarscheinlich Textdraws, aber auf jeden Fall kein GUI.
Es ist wirklich nur mit Textdraws zu lösen, und auf die Knöpfe draufdrücken kann man dann auch nicht.
Du kannst das nur für dich selber ändern und auch nur immer einmal, nicht währen des Spiels. Und zwar einfach die png Dateien bearbeiten. Aber wenn das bei anderen Spielern auch sein soll, müssen die das bei sich selber auch machen.
PS: Mehr Knöpfe bekommste dadurch aber auch nicht.