Harvard University
Beiträge von Stas
-
-
Genau, also nicht von dem Godfather abgucken.
-
Gumminasium Stufe 11
-
Das Problem ist diese Zeile kann nicht unendlich lang sein was machste dann???
format(auto,sizeof(auto),"INSERT INTO `Autos` (`ID`,`Modell`,`Besitzer`) VALUES ('%d','%d','%s')",So in etwa:
new
c_string_table[4][256];format(c_string_table[0],256,"UPDATE samp_autos SET `ID`='%d',`Lamps`='%d',`PaintJob`='%d',`Model`='%d',`Pos_X`='%f',`Pos_Y`='%f',`Pos_Z`='%f',`Pos_Rotation`='%f'",PlayerCar[playerid][x][CarId],PlayerCar[playerid][x][CarLamps],PlayerCar[playerid][x][CarPJ],PlayerCar[playerid][x][CarModel],PlayerCar[playerid][x][CarPos_x],PlayerCar[playerid][x][CarPos_y],PlayerCar[playerid][x][CarPos_z],PlayerCar[playerid][x][CarRotate]);
format(c_string_table[1],256,",`Nitro`='%d',`Hyd`='%d',`Wheel`='%d',`Auspuff`='%d',`Sidel`='%d',`SideR`='%d',`Kennzeichen`='%d'",PlayerCar[playerid][x][CarNitro],PlayerCar[playerid][x][CarHyd],PlayerCar[playerid][x][CarWheel],PlayerCar[playerid][x][CarAusp],PlayerCar[playerid][x][CarSideL],PlayerCar[playerid][x][CarSideR],PlayerCar[playerid][x][CarKZ]);
format(c_string_table[2],256,",`FB`='%d',`RB`='%d',`Spoiler`='%d',`Roof`='%d',`Hood`='%d',`Vents`='%d',`Benzin`='%d'",PlayerCar[playerid][x][CarFB],PlayerCar[playerid][x][CarRB],PlayerCar[playerid][x][CarSpoiler],PlayerCar[playerid][x][CarRoof],PlayerCar[playerid][x][CarHood],PlayerCar[playerid][x][CarVents],PlayerCar[playerid][x][CarBenzin]);
format(c_string_table[3],256,",`Farbe0`='%d',`Farbe2`='%d',`Preis`='%d',`Spawn`='%d',`Waffe`='%d',`Munition`='%d' WHERE (`Besitzer` = '%s')",PlayerCar[playerid][x][CarC1],PlayerCar[playerid][x][CarC2],PlayerCar[playerid][x][CarPreis],PlayerCar[playerid][x][cc_Spawn],PlayerCar[playerid][x][CarWaffe],[x][CarMunition],pName,cc_PlayerKey[playerid]);
format(query,sizeof(query),"%s%s%s%s",c_string_table[0],c_string_table[1],c_string_table[2],c_string_table[3]);
mysql_query(query); -
ähhm nein?
Wisst ihr überhaupt wo der Unterschied zwischen public, stock oder der normalen Funktion ist?
Nur weil das im Kackfather steht, bedeutet das noch lange nicht, das es "richtig" ist.public sollte man nur dann nutzen, wenn man diese Funktion über einen Timer oder externes Filterscript aufrufen will.
stock bedeutet, dass die Funktion, falls diese nicht verwendet wird, einfach übersprungen wird.
Daher bleibt dir nur die normale Funktion ...und zwar:
MyDialogStatsSystem(playerid){ // Klammer öffnen
// new .....
// GetPlayerName .....
format(String, sizeof(String), "[Stats von %s]\nNickname: %s\nScore: %d\n Geld: %d", Name, Name, Score, Geld); // Unsere (New's) die wir oben neu angelegt haben - immer mit einem , trennen :5
ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, 0, "Mein Spiel Stand", String, "Weiter", "Weiter"); // Öffne das Dialog fenster beim Spieler
return 1;
} // Klammer wieder schließen.if (strcmp(cmd, "/stats", true) == 0) // unser Command, kann natürlich auch anders angeordnet sein jenachdem wie er bei euch im Script definiert ist!
{
MyDialogStatsSystem(playerid); // Öffnet unsere Stats :5
return 1;
}EDIT: Julian, war nicht an dich. Hast bloss vor mir gepostet.
-
\n macht eine neue Zeile.
PS: Warum machst du das als public im Tut? oO
Hat der Godfather mit seiner schlechten Umsetzung abgefärbt? -
Dann mach Dini oder DJson, das würde ich dir empfehlen, wenn du auf Geschwindigkeit achtest.
Ansonnsten würde ich dir wirklich MySQL ans Herz drücken. -
Mach eine Funktion ("LadeAutos") und lass sie Daten aus MySQL oder Ini Datei auslesen. Das erstelte Auto wird zB in einem Array gespeichert, außerdem wird dann eine Variable erhöht.
Bei OnVehicleSpawn fragst du dann ab, ob die AutoID größer deiner Variablen ist.Außerdem kannst du so "dynamische" Autos erstellen. Welche du InGame bearbeiten kannst. Sprich umparken, Farbe/Model ändern, blablabla.
ZitatDas Spawntool arbeitet nicht so wie du denkst, es spawnt kein neues fahrzeug sondern es portet ein vorhandes gewünschtes fahrzeug zu dir.
Wenn es aber so funktioniert, musst du bloss dafür sorgen, dass ein keine einfachen Straßenautos gibt, in die der Spieler einfach so einsteigen kann.
Sprich nur Fraktionautos, Berufautos oder SpielerAutos, die nur der Besitzer auf und ab schließen kann. -
Nein, soll er natürlich nicht. Sonnst wäre er ja unsterblich.
SetTimerEx wäre die bereits genannte Lösung des Problems. -
Genau.
Der Chat hat aber nur 12 Zeilen, glaube ich. Von daher ist 1000 zuviel :p
-
Kann ich das LANGE/GROßE Unten stehende auch leichter machen? ALso anstatt 1oooox SendClientMessage vllt. iwie das es so ist SendClientMessage1000x oder so xD halt kürzer? Frisst zuviele Zeilen/Resourcen =/
if (strcmp("/clear", cmdtext, true, 10) == 0)
{
if(Player[playerid][admin] < 1)
{
SendClientMessage(playerid, COLOR_RED,"You must be a Moderator or higher to see clear the chat");
}
SendClientMessageToAll(COLOR_RED,"");
new name[MAX_PLAYER_NAME],string[128];
GetPlayerName(playerid,name,sizeof(name));
format(string,sizeof(string),"Admin %s has cleared the chat",name);
SendClientMessageToAll(COLOR_GREEN,string);
return 1;
}Mach:
stock ClearScreen(playerid)
{
for(new i = 0; i < 50; i++)
{
SendClientMessageToAll(COLOR_WHITE, " ");
}
//return 0;
} -
Die Funktion fängt bei Null an zu zählen, die Lösung habe ich oben genannt.
-
-
Ich komme bloß nicht dahinter, warum es schneller als DCMD sein soll. Lief mal bitte einen Beweis
-
Deinem Code zufolge sollten es nur SWAT-Leader können. Du müsstest genau genommen das gleiche nicht nur für pLeader sondern auch für pMember angeben.
-
Wo ist das Problem? Macht es 2 zeilig:
// versende mehrzeiligen Text
SendClientMessageEx(playerid,farbe,text[])
{
if(strlen(text) <= 68) SendClientMessage(playerid,farbe,text);
else {
new string[61];
strmid(string,text,68,129);
strins(text, "-", 68, 1);
strdel(text, 69, 129);
SendClientMessage(playerid,farbe,text);
SendClientMessage(playerid,farbe,string);
}
} -
Machst du Judo? Denn dein Name ist sozusagen der Anpfiff beim Judo.
-
-
Take this Baby:
if(strcmp(cmd, "/take", true) == 0)
{
if(gTeam[playerid] == 2 || IsACop(playerid)) {
if(PlayerInfo[playerid][pRank] < 2) {
SendClientMessage(playerid, COLOR_GREY, "Du benötigst Rank 2 oder höher!");
return 1;
}
new
x_nr[128];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "|__________________ Lizensen wegnehmen __________________|");
SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /take [lizensname] [spielerid/teildesnamens]");
SendClientMessage(playerid, COLOR_GREY, "Verfügbare Namen: Autoschein, Flugschein, Bootschein, Waffenschein, Waffen, Drogen, Materialien, Lkwschein, Motorradschein");
SendClientMessage(playerid, COLOR_WHITE, "|___________________________________________________|");
return 1;
}
if(strcmp(x_nr,"Autoschein",true) == 0) {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /take Autoschein [spielerid/teildesnamens]");
return 1;
}
giveplayerid = ReturnUser(tmp);if(IsPlayerConnected(giveplayerid)) {
if(giveplayerid != INVALID_PLAYER_ID) {
if (ProxDetectorS(8.0, playerid, giveplayerid)) {
// Hier muss der Name abgefragt werden, da davor giveplayerid noch nicht zugewiesen wurde
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
// Hier wird der Text dann versendet
format(string, sizeof(string), "* Du hast den Autoschein von %s weggenommen.",giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Officer %s hat dir deinen Autoschein weggenommen.", sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
PlayerInfo[giveplayerid][pCarLic] = 0;
}
else {
SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist zu weit entfernt!");
return 1;
}
}
}
else {
SendClientMessage(playerid, COLOR_GREY, "Diesen Spieler gibt es nicht!");
return 1;
}
}
}
} -
Setze eine Variable auf 1 und lass diese beim OnPlayerSpawn zusätzlich überprüfen.
So kannst du ihm auch eine Zeit aufzwingen, welche er im Krankenhaus absitzen muss.