Mit Strcmp:
if(!strcmp(variable für Besitzer,auslesen für zb mysql oder dini_Get,false))
{
Hier die Funktion zum überschreiben.
}
Beiträge von CaptainKevin
-
-
//EDITIERTER EDIT!!!!!//
//Edit//
Extra für Timo geändert:Alles klar, les einfach Timos post
//Edit-Ende//
//EDITIERTER EDIT-ENDE!!!!!!//Die Fehlermeldungen stehen alle drin.
Du hast das Wort "farbe" nicht definiert.
Du hast deine Fraktionsabfrage nicht eingefügt.
Du hast das OCMD Plugin nicht.
Du hast den OCMD Code in eine falsche Stelle KOPIERT! -
ocmd:gov(playerid,params[])
{
new fname[64], name[MAX_PLAYER_NAME], string[128], text[128];
if(sscanf(params,"s",text))return 1;
switch(Fraktionsabfrage)
{
case 0:{fname="Zivilist";}
case 1:{fname="PD";}
}
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
format(string,sizeof(string),"%s %s: %s",fname,name,text);
SendClientMessageToAll(farbe,string);
return 1;
} -
Solltest dann aber daran denken, dass der Account evtl. nicht neugespeichert wird, da der Name dann anders ist. Am besten den echten Namen immer aus der "NormalName" Variable speichern.Warum? Er kann doch ein OnPlayerDisconnect den alten, in der Variablen-gespeicherten Name wieder setzen lassen.
Dann wird der Account gespeichert.@BlackAce: Ich glaube dieser User ist erneut Batista aka. ASS

Der will das Script nämlich 1:1 kopieren
-
Probier es doch einfach so, wie ich es geschrieben habe

Dort wird der alte Name doch in eine Variable geschrieben und anschließend geändert.Wenn er aus dem Fahrzeug aussteigt, bekommt er den Namen, der in der Variable gespeichert wurde.
Punkt ende aus
-
public OnPlayerSpawn(playerid)
{
SpawnPlayer(playerid);
return 1;
}Wenn ein Spieler gespawned wird, spawnst du ihn? WTf

-
new name1[MAX_PLAYER_NAME][MAX_PLAYERS];
new testcar;testcar = CreateVehicle ....
public OnPlayerEnterVehicle
{
if(vehicleid == testcar)
{
GetPlayerName(playerid,name1[playerid],MAX_PLAYER_NAME);
SetPlayerName(playerid,"beispielsname");
}
}
public OnPlayerExitVehicle
{
SetPlayerName(playerid,name1[playerid]);
}
Weis nicht, ob das so geht. Ich muss es auch nie benutzen
-
Du musst mit SetPlayerName und Variablen in Form eines Strings arbeiten.
Somit kommst du zum Ziel
-
Guten Tag, liebes Breadfish.
Da ich mich in letzter Zeit wieder mehr mit dem Scripten beschäftigt habe, wollte ich mein Dynamisches FrakCarSystem schreiben.
Das Laden bekomme ich auch noch hin, aber ich möchte, dass NUR die Position von dem Fahrzeug, in dem man sitzt, aktualisiert wird.
(Natürlich auch wieder in die Tabelle schreiben). Hat jemand ne Ahnung, wie ich sowas schaffen könnte?
Besonders nützlich für die Copy & Paste Bobs
Ich weis nur nicht, wie ich das EINE Fahrzeug jetzt speichern lasse, ohne die anderen auch zu speichern.
BRAINFUCK!
//OnGameModeInit
for(new o=0; o<MAX_FRAK_CARS; o++)
{
FrakCarsLaden(o);
}
//Befehle
//Erstell-Befehl
ocmd:cfc(playerid,params[])
{
new model, Float:x, Float:y, Float:z, fc1, fc2, fid;
GetPlayerPos(playerid,x,y,z);
if(SpielerInfo[playerid][pAdminlevel] < 4)return SendClientMessage(playerid,weis,"Fehler: Du hast nicht das passende Adminlevel.");
if(sscanf(params,"iiii",model,fid,fc1,fc2))return SendClientMessage(playerid,weis,"Fehler: /cfc (Model) (Frakid) (FC1) (FC2)");
CreateFrakCar(x,y,z,fc1,fc2,fid,model);
return 1;
}
//speicher Befehl
ocmd:fparken(playerid,params[]){
return 1;
}
//stocks
stock FrakCarsSpeichern(cids)
{
new string[128];
format(string,128,"%i",cids);
GetVehiclePos(FCar[cids][fcCar],FCar[cids][fcX],FCar[cids][fcY],FCar[cids][fcZ]);
GetVehicleZAngle(FCar[cids][fcCar],FCar[cids][fcA]);
mysql_SetFloat("FAutos", "X", FCar[cids][fcX], "ID", string);
mysql_SetFloat("FAutos", "Y", FCar[cids][fcY], "ID", string);
mysql_SetFloat("FAutos", "Z", FCar[cids][fcZ], "ID", string);
mysql_SetFloat("FAutos", "A", FCar[cids][fcA], "ID", string);
return 1;
}stock CreateFrakCar(Float:x, Float:y, Float:z, fc1, fc2,ff,model)
{
new Query[512];
format(Query,512,"INSERT INTO FAutos (X,Y,Z,FCC1,FCC2,FCID,Model) VALUES ('%f','%f','%f','%i','%i','%i','%i')",x,y,z,fc1,fc2,ff,model);
mysql_query(Query);
CreateVehicle(model,x,y,z,0.0,fc1,fc2,-1);
return 1;
}stock FrakCarsLaden(cids)
{
new string[128];
format(string,128,"%i",cids);
FCar[cids][fcModel] = mysql_GetInt("FAutos", "Model", "ID", string);
FCar[cids][fcX] = mysql_GetFloat("FAutos", "X", "ID", string);
FCar[cids][fcY] = mysql_GetFloat("FAutos", "Y", "ID", string);
FCar[cids][fcZ] = mysql_GetFloat("FAutos", "Z", "ID", string);
FCar[cids][fcA] = mysql_GetFloat("FAutos", "A", "ID", string);
FCar[cids][fcC1] = mysql_GetInt("FAutos", "FCC1", "ID", string);
FCar[cids][fcC2] = mysql_GetInt("FAutos", "FCC2", "ID", string);
FCar[cids][fcID] = mysql_GetInt("FAutos", "FCID", "ID", string);
format(FCar[cids][fcSchild],128,"%s",mysql_GetString("FAutos", "FCSCHILD", "ID", string));
FCar[cids][fcCar] = CreateVehicle(FCar[cids][fcModel],FCar[cids][fcX],FCar[cids][fcY],FCar[cids][fcZ],FCar[cids][fcA],FCar[cids][fcC1],FCar[cids][fcC2],-1);
SetVehicleNumberPlate(FCar[cids][fcCar],FCar[cids][fcSchild]);
SetVehicleToRespawn(FCar[cids][fcCar]);
return 1;
}
//Enum
enum FrakAutos
{
fcID,
Float:fcX,
Float:fcY,
Float:fcA,
Float:fcZ,
fcC1,
fcC2,
fcSchild[128],
fcCar,
fcModel
}
new FCar[MAX_FRAK_CARS][FrakAutos];
#define MAX_FRAK_CARS 200 -
Schon klar, dass es unter das Public OnPlayerText muss?
Und pac eventuell noch ein Return 0 rein
-
OnPlayerText
{
if(Maske[playerid] == 1)
{
new string[128];
format(string,sizeof(string),"Unbekannter sagt: %s", text);
SendClientMessageToAll(farbe,string);
}
} -
Îch habe früher schon von deinen Tutorials gelernt, und werde es,
wenn deine Tutorials weit genug sind immer noch tun
-
if(IsPlayerInRangeOfPoint(playerid, 3,-1444.3661,-277.2510,6.0000) || TutCheck[playerid] == 1)
Du fragst ab, ob der Spieler in der Reichweite eines bestimmten Punktes ist ODER du TutCheck[playerid] aktiviert hast.
Probier es mal:if(IsPlayerInRangeOfPoint(playerid, 3,-1444.3661,-277.2510,6.0000) && TutCheck[playerid] == 1) -
Habs schon gemerkt, danke.
Am Ende hat eine Klammer gefehlt
-
Dort kommt aber nicht mein erwünschtes Ergebniss raus

Ich möchte ja das Nummernschild aus der MySQL Tabelle Autos ziehen
Und nicht den Besitzer als Nummernschild verpacken
-
Ich will garnicht groß rum reden:
format(CarInfo[playerid][cSchild],128,"%s",mysql_GetString("Autos", "Schild", "Besitzer", CarInfo[playerid][cBesitzer]);
Und der Fehler
C:\Users\Kevin\Desktop\Ordnersammlung\Sa-Mp 0.3x\gamemodes\mysqlgmc.pwn(1605) : error 001: expected token: ",", but found ";"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
-
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/help", cmdtext, true, 10) == 0)
{
new Query[512];//Für den Befehl
new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,MAX_PLAYER_NAME);
new tag,monat,jahr,stunde,minute,sekunde;//Für die Abfrage
gettime(stunde,minute,sekunde);//Fragt den Inhalt
getdate(jahr,monat,tag);//Fragt den Inhalt
format(Query,512,"INSERT INTO Tabellenname (Name,Uhrzeit,Datum) VALUES ('%s','%d','%d')",name,stunde,tag);//Ist unser Befehl
mysql_query(Query);//Führt den Query aus
return 1;
}
return 0;
}
Hab aber extra nen Fehler eingebaut, da ich es nicht volkommen spoilern will
-
ASS: Ahh, Batista, so muss es also?
Du erklärst ihm hier also keine Funktion und sagst einfach, dort muss ein Else hin?
Selbst wenn er das machen würde, würde es buggen, da es sonst denkt, dass alle Ränge außer der erste buggt. -
Du erstellst einen Query Befehl, der den Spielernamen und die Uhrzeit beinhaltet.
Diesen gibst du aus (mit INSERT INTO) und dann hast du dort deinen Befehl
Für das Datum & die Uhrzeit: gettime und getdate -
Jede Zeile, wo ich mysql_ benutze
