rank=adminrank4
Da scheint was nicht zu stimmen.
Zeig mal bitte die Stelle wo die beiden Variablen erstellt werden.
rank=adminrank4
Da scheint was nicht zu stimmen.
Zeig mal bitte die Stelle wo die beiden Variablen erstellt werden.
new Float:Leben;
PlayerInfo[playerid][SHealthh] = GetPlayerHealth(playerid, Leben);
Hier ist der Fehler
Kommt darauf an an welcher Stelle du das hast.
Tipp: strcmp returned null, wenn beide strings übereinstimmen.
Oder sind 50 Meter schon zu viel?
Testen. Gib die Velocitykoordinaten bei OnPlayerUpdate aus und spring vom MC
Oder du findest heraus ob sich das Auto im freien Fall befindet..
Das kannst du, indem du die Koordinaten von GetVehicleVelocity analysierst.
Musst ein bisschen rumprobieren
Du musst den Text splitten:
if(strcmp(cmdtext,"/kick",true,5)==0) // die 5 bedeutet, dass nur die ersten 5 Zeichen überprüft werden
[
new string[5];
strmid(string,cmdtext,6,strlen(cmdtext)); // Speichern des Parameters in "string"
new id=strval(string); // String wird zu einem Integer
Kick(id); // Kick ihn
}
//edit: Strtok funktioniert folgendermaßen:
new cmdtext[128]="/veh 411 0 0"; // Das ist unser cmdtext
new cmd[128];
new idx; // Die zwei Variablen brauchen wir für strtok
cmd = strtok(cmdtext, idx); // Das erste Wort wird in "cmd" gespeichert
if(strcmp(cmd,"/veh",true)==0)
{
new model[32];
model=strtok(cmdtext,idx); // Zweiter Parameter wird in "model" gespeichert
new color[2][32];
color[0]=strtok(cmdtext,idx); // Dritter Parameter wird in "color[0]" gespeichert
color[1]=strtok(cmdtext,idx); // Vierter Parameter wird in "color[1]" gespeichert
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
CreateVehicle(strval(model),x,y,z,0,strval(color[0]),strval(color[1]));
return 1;
}
Hier strtok:
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Debugge es doch:
public OnPlayerDeath(playerid, killerid, reason)
{
new string[128];
format(string,sizeof(string),"ID %i ist gestorben. Er hat %i Tode.",playerid,Death[playerid]);
SendClientMessageToAll(-1,string);
Death[playerid]+=1;
format(string,sizeof(string),"Jetzt sind es schon %i.",Death[playerid]);
SendClientMessageToAll(-1,string);
return 1;
}
Nochmal fix gefragt: Maximale länge einer String-Variable?
new string[4075];
Höher gehts nicht
*ein Selfmade
if(strcmp(cmdtext,"/kick",true,5)==0)
[
new string[5];
strmid(string,cmdtext,6,strlen(cmdtext));
new id=strval(string);
Kick(id);
}
Ein ganz einfacher /kick-Befehl, bitteschön
Du kannst die Tabelle nennen wie du willst
Ich weiß auch nicht wie du das machst, ich erstelle Tabellen mit HeidiSQL.
Das ist dasselbe wie navicat, nur kostenlos, sehr gutes Programm
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid==Text:65535)
{
TextDrawHideForPlayer(...);
}
}
ZitatWHERE = '%s'"
WHERE <Attribut> = <Wert>
new var;
ocmd:test(playerid)
{
SetTimerEx("text1",100,true,"i",playerid);
TextDrawColor(Background1, 0x00000000);
TextDrawShowForPlayer(playerid,Background1);
}
forward text1(playerid);
public text1(playerid)
{
TextDrawColor(Background1,RGBAToHex(0,0,0,var));
TextDrawHideForPlayer(playerid,Background1);
TextDrawShowForPlayer(playerid,Background1);
var+=2;
}
stock RGBAToHex(r, g, b, a) //By Betamaster
{
return (r<<24 | g<<16 | b<<8 | a);
}
probeir das mal
Ich glaub er will Geld von Microsoft
Wenn Microsoft diese Domain haben will muss sie dafür zahlen.
Und das Geld bekommt breadfish. Und ich glaube das ist nicht gerade wenig
Zitatnew query[275]; // Ein neuer Array
format(query,sizeof(query),"CREATE TABLE IF NOT EXISTS `accounts` (`id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(24),`Passwort` varchar(24),`Level` int(11),`Admin` int(11), `pX` float,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;"); // Der Array wird hier wiedergegeben bzw. es wird etwas hineingeschrieben.
mysql_query(query); // Mit dieser Funktion wird etwas an die Datenbank gesendet.
Wozu den String umformatieren?
mysql_query("CREATE TABLE IF NOT EXISTS `accounts` (`id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(24),`Passwort` varchar(24),`Level` int(11),`Admin` int(11), `pX` float,PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
Zitatmysql_ReturnPasswort(SpielerName(playerid)
Bei jeder Passworteingabe wird das Passwort aus der Datenbank herausgelesen, das ist nicht sehr ressourcenschonend.
Besser wäre es beim CheckAccount das Passwort herauszulesen, zu speichern, falls der Account existiert,
und falls nicht, 0 returnen zu lassen. So könnte man das effizient und 'ressourcenschonend' machen.
Übrigens kann es passieren, falls ein User Zeichen wie ' oder " im Namen hat,
dass dann sein Account nicht gespeichert wird. Dafür nutzt man mysql_real_escape_string bzw. mysql_query in Kombination mit %e.
Die sind da auch dabei.
In deinem GTA-Ordner sind alle .txd's, du musst sie nur mit einem Programm öffnen,
welche diese Dateien auslesen und anzeigen können