Haste
TextDrawShowForPlayer(playerid,Uhrzeit);
auch drin?
Beiträge von [NWO]Nero
-
-
//Erledigt:
Der Stock für GetString war falsch!Hallo Leute,
ich wollte einen Fraktionschat machen, es funktioniert auch soweit alles, bis auf dass der Rang des Spielers nicht richtig wiedergegeben wird.
Die Rangnamen sind dynamich und können vom Leader der jeweiligen Frakion nach belieben umbenannt werden.Wenn ich InGame bin und "/f Hallo!" schreibe, steht im Chat folgendes: ,,HÌ | AlphaGen: Hallo!", dabei steht "HÌ" nirgends in mysql drin.
Scheinbar ist im Befehl ein Fehler, den ich nicht sehe/finde.Bevor jemand danach fragt, hier ist der Befehl:
dcmd_f(playerid,params[]) //Fraktions Befehl
{
new fID = SpielerInfo[playerid][pFraktion], rID = SpielerInfo[playerid][pFrakRang], ftext[128], string[128], name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name));
if(SpielerInfo[playerid][pPerso] != 1) return 1;
if(SpielerInfo[playerid][pFraktion] == 0) return 1;
if(sscanf(params,"s",ftext)) return SendClientMessage(playerid,GRAU,"Verwendung: /f [Text]");
switch(rID)
{
case 1:(format(RangInfo[fID][fr1],24,"%s",mysql_GetString("frakränge", "1", "FrakID",RangInfo[fID][frFrakID])));
case 2:(format(RangInfo[fID][fr2],24,"%s",mysql_GetString("frakränge", "2", "FrakID",RangInfo[fID][frFrakID])));
case 3:(format(RangInfo[fID][fr3],24,"%s",mysql_GetString("frakränge", "3", "FrakID",RangInfo[fID][frFrakID])));
case 4:(format(RangInfo[fID][fr4],24,"%s",mysql_GetString("frakränge", "4", "FrakID",RangInfo[fID][frFrakID])));
case 5:(format(RangInfo[fID][fr5],24,"%s",mysql_GetString("frakränge", "5", "FrakID",RangInfo[fID][frFrakID])));
case 6:(format(RangInfo[fID][fr6],24,"%s",mysql_GetString("frakränge", "6", "FrakID",RangInfo[fID][frFrakID])));
case 7:(format(RangInfo[fID][fr7],24,"%s",mysql_GetString("frakränge", "7", "FrakID",RangInfo[fID][frFrakID])));
case 8:(format(RangInfo[fID][fr8],24,"%s",mysql_GetString("frakränge", "8", "FrakID",RangInfo[fID][frFrakID])));
case 9:(format(RangInfo[fID][fr9],24,"%s",mysql_GetString("frakränge", "9", "FrakID",RangInfo[fID][frFrakID])));
case 10:(format(RangInfo[fID][fr10],24,"%s",mysql_GetString("frakränge", "10", "FrakID",RangInfo[fID][frFrakID])));
case 11:(format(RangInfo[fID][fr11],24,"%s",mysql_GetString("frakränge", "11", "FrakID",RangInfo[fID][frFrakID])));
case 12:(format(RangInfo[fID][fr12],24,"%s",mysql_GetString("frakränge", "12", "FrakID",RangInfo[fID][frFrakID])));
}
format(string,sizeof(string),"*%s | %s: %s" ,rID,name,ftext);
SendFrakMessage(HELLBLAU,string,fID);
return 1;
}Vorab vielen Dank für eure Hilfe!
Mit freundlichen Grüßen
AlphaGen! -
Hallo Leute,
ich wollte einen Fraktionschat machen, es funktioniert auch soweit alles, bis auf dass der Rang des Spielers nicht richtig wiedergegeben wird.
Die Rangnamen sind dynamich und können vom Leader der jeweiligen Frakion nach belieben umbenannt werden.Wenn ich InGame bin und "/f Hallo!" schreibe, steht im Chat folgendes: ,,HÌ | AlphaGen: Hallo!", dabei steht "HÌ" nirgends in mysql drin.
Scheinbar ist im Befehl ein Fehler, den ich nicht sehe/finde.Bevor jemand danach fragt, hier ist der Befehl:
dcmd_f(playerid,params[]) //Fraktions Befehl
{
new fID = SpielerInfo[playerid][pFraktion], rID = SpielerInfo[playerid][pFrakRang], ftext[128], string[128], name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name));
if(SpielerInfo[playerid][pPerso] != 1) return 1;
if(SpielerInfo[playerid][pFraktion] == 0) return 1;
if(sscanf(params,"s",ftext)) return SendClientMessage(playerid,GRAU,"Verwendung: /f [Text]");
switch(rID)
{
case 1:(format(RangInfo[fID][fr1],24,"%s",mysql_GetString("frakränge", "1", "FrakID",RangInfo[fID][frFrakID])));
case 2:(format(RangInfo[fID][fr2],24,"%s",mysql_GetString("frakränge", "2", "FrakID",RangInfo[fID][frFrakID])));
case 3:(format(RangInfo[fID][fr3],24,"%s",mysql_GetString("frakränge", "3", "FrakID",RangInfo[fID][frFrakID])));
case 4:(format(RangInfo[fID][fr4],24,"%s",mysql_GetString("frakränge", "4", "FrakID",RangInfo[fID][frFrakID])));
case 5:(format(RangInfo[fID][fr5],24,"%s",mysql_GetString("frakränge", "5", "FrakID",RangInfo[fID][frFrakID])));
case 6:(format(RangInfo[fID][fr6],24,"%s",mysql_GetString("frakränge", "6", "FrakID",RangInfo[fID][frFrakID])));
case 7:(format(RangInfo[fID][fr7],24,"%s",mysql_GetString("frakränge", "7", "FrakID",RangInfo[fID][frFrakID])));
case 8:(format(RangInfo[fID][fr8],24,"%s",mysql_GetString("frakränge", "8", "FrakID",RangInfo[fID][frFrakID])));
case 9:(format(RangInfo[fID][fr9],24,"%s",mysql_GetString("frakränge", "9", "FrakID",RangInfo[fID][frFrakID])));
case 10:(format(RangInfo[fID][fr10],24,"%s",mysql_GetString("frakränge", "10", "FrakID",RangInfo[fID][frFrakID])));
case 11:(format(RangInfo[fID][fr11],24,"%s",mysql_GetString("frakränge", "11", "FrakID",RangInfo[fID][frFrakID])));
case 12:(format(RangInfo[fID][fr12],24,"%s",mysql_GetString("frakränge", "12", "FrakID",RangInfo[fID][frFrakID])));
}
format(string,sizeof(string),"*%s | %s: %s" ,rID,name,ftext);
SendFrakMessage(HELLBLAU,string,fID);
return 1;
}Vorab vielen Dank für eure Hilfe!
Mit freundlichen Grüßen
AlphaGen! -
@Rocky, wie meinst du das ?
DIe Scheinwerfer & Neons vom Auto strahlen die Objekte bekanntlich an.
Bei den 0.3e Objekten (Die Wände die Du benutzt hast) ist es so, dass sie das Licht sozusagen so stark reflektieren, dass sie dadurch richtig wiederlich leuchten.Wenn Du die Map auf einen Server machst und in der Nacht an die Objekte vorbei fährst, siehst Du es.
-
Joar, so sieht das ganze jetzt bei mir aus.
Ich habs halt noch mal geschrieben und damit wohl den Fehler rausgehauen.case DIALOG_PERSONALAUSWEIS1:
{
if(response)
{
new string[256], day, month, year, DateInfo[3][20], name[MAX_PLAYER_NAME];
getdate(year, month, day);
split(inputtext, DateInfo, '.');
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
if(strval(DateInfo[0]) < 01 || strval(DateInfo[0]) > 31 || strval(DateInfo[0]) < 1)
{
SendClientMessage(playerid,ROT,"Falsche Angabe beim Tag deines Geburtsdatums!"); return ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS1, DIALOG_STYLE_INPUT, "Personalausweis - Antrag [1/2]", "Geben sie wie folgt ihr Geburtsdatum an: dd.mm.yyyy\n(Beispiel: 16.09.1994)!", "Weiter", "Abbrechen");
} else SpielerInfo[playerid][pBdayTag] = strval(DateInfo[0]);
if(strval(DateInfo[1]) < 01 || strval(DateInfo[1]) > 12 || strval(DateInfo[1]) < 1)
{
SendClientMessage(playerid,ROT,"Falsche Angabe beim Monat deines Geburtsdatums!"); return ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS1, DIALOG_STYLE_INPUT, "Personalausweis - Antrag [1/2]", "Geben sie wie folgt ihr Geburtsdatum an: dd.mm.yyyy\n(Beispiel: 16.09.1994)!", "Weiter", "Abbrechen");
} else SpielerInfo[playerid][pBdayMonat] = strval(DateInfo[1]);
if(strval(DateInfo[2]) < year-100 || strval(DateInfo[2]) > year)
{
SendClientMessage(playerid,ROT,"Falsche Angabe beim Jahr deines Geburtsdatums!"); return ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS1, DIALOG_STYLE_INPUT, "Personalausweis - Antrag [1/2]", "Geben sie wie folgt ihr Geburtsdatum an: dd.mm.yyyy\n(Beispiel: 16.09.1994)!", "Weiter", "Abbrechen");
} else SpielerInfo[playerid][pBdayJahr] = strval(DateInfo[2]);
new check = year - strval(DateInfo[2]);
if(check == year) { return 1; }
if(strval(DateInfo[1]) > month) { check -= 1; }
else { if(strval(DateInfo[1]) == month && strval(DateInfo[0]) > day) { check -= 1; } }
SpielerInfo[playerid][pAlter] = check;
format(string,sizeof(string),"Bitte überprüfen Sie, ob ihre Angaben korrekt sind!\n\nName: %s\nGeburtsdatum: %d.%d.%d\nAlter %d\n\n\nSind diese Angaben korrekt?",name,strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]),check);
ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS2,DIALOG_STYLE_MSGBOX,"Personalausweis - Antrag [2/2]",string,"Ja","Nein");
}
} -
ich hab dir das ganze mal umgeschrieben sollte normal funktionieren
stock GetAge(playerid,string[])
{
new Date[3];
sscanf(string, "p<.>iii",SpielerInfo[playerid][pBdayTag],SpielerInfo[playerid][pBdayMonat],SpielerInfo[playerid][pBdayJahr] );
if(SpielerInfo[playerid][pBdayTag] > 31 || SpielerInfo[playerid][pBdayTag] <= 0)return 0;
else if(SpielerInfo[playerid][pBdayMonat] > 12 || SpielerInfo[playerid][pBdayMonat] <= 0)return 1;
getdate(Date[0],Date[1],Date[2]);
if(SpielerInfo[playerid][pBdayJahr] > Date[0] || SpielerInfo[playerid][pBdayJahr] < 1900)return 2;
SpielerInfo[playerid][pAlter] = (Date[0] - SpielerInfo[playerid][pBdayJahr]) - ((Date[1] < SpielerInfo[playerid][pBdayMonat])? 1 : ((Date[1] == SpielerInfo[playerid][pBdayMonat] && Date[2] < SpielerInfo[playerid][pBdayTag])? 1 : 0));
return SpielerInfo[playerid][pAlter];
}case DIALOG_PERSONALAUSWEIS1:{
if(!response)return ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS1, DIALOG_STYLE_INPUT, "Personalausweis - Antrag [1/2]", "Geben sie wie folgt ihr Geburtsdatum an: dd.mm.yyyy\n(Beispiel: 16.09.1994)!", "Weiter", "Abbrechen");
switch(GetAge(playerid,inputtext)){
case 0:{
SendClientMessage(playerid,ROT,"Falsche Angabe beim Tag deines Geburtsdatums!");
return ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS1, DIALOG_STYLE_INPUT, "Personalausweis - Antrag [1/2]", "Geben sie wie folgt ihr Geburtsdatum an: dd.mm.yyyy\n(Beispiel: 16.09.1994)!", "Weiter", "Abbrechen");
}
case 1:{
SendClientMessage(playerid,ROT,"Falsche Angabe beim Monat deines Geburtsdatums!");
return ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS1, DIALOG_STYLE_INPUT, "Personalausweis - Antrag [1/2]", "Geben sie wie folgt ihr Geburtsdatum an: dd.mm.yyyy\n(Beispiel: 16.09.1994)!", "Weiter", "Abbrechen");
}
case 2:{
SendClientMessage(playerid,ROT,"Falsche Angabe beim Jahr deines Geburtsdatums!");
return ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS1, DIALOG_STYLE_INPUT, "Personalausweis - Antrag [1/2]", "Geben sie wie folgt ihr Geburtsdatum an: dd.mm.yyyy\n(Beispiel: 16.09.1994)!", "Weiter", "Abbrechen");
}
case default:{
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(string,sizeof(string),"Bitte überprüfen Sie, ob ihre Angaben korrekt sind!\n\nName: %s\nGeburtsdatum: %d.%d.%d\nAlter %d\n\n\nSind diese Angaben korrekt?",name,SpielerInfo[playerid][pBdayTag],SpielerInfo[playerid][pBdayMonat], SpielerInfo[playerid][pBdayJahr],SpielerInfo[playerid][pAlter]);
return ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS2,DIALOG_STYLE_MSGBOX,"Personalausweis - Antrag [2/2]",string,"Ja","Nein");
}
}
}//edit hab beim splitten mit sscanf die 2 variabeln vergessen
Das hat mich leider auch nicht weiter gebracht, aber danke.
Ich hab meine Version jetzt noch mal überarbeitet, und scheinbar den Fehler entfernt, nun scheint alles zu klappen.Aber trotzdem danke!
-
if(strval(DateInfo[2]) < year-100 || strval(DateInfo[2]) > year || strlen(DateInfo[2]) == 0)
Probiers mal soFunktioniert leider nicht, so hab ichs vorhin schon einmal probiert und gerade eben noch mal. - Aber trotzdem danke.
Probleme die mit einem Personalausweis bzw. dem Geburtsdatum darauf zutun haben sollte man zum Rathaus gehen bzw. wo du den Perso machst und das dort melden
Na, heut Morgen mit Peter Lustig geduscht und danach ein Clown gefrühstückt? -
Hallo Leute,
ich bedanke mich schonmal vorab für die Hilfestellungen und sage, dass ich die ganze Nacht durch gemacht
habe und etwas müde bin, daher können Rechtschreib- und Verständlichkeitsfehler im Thread entstanden sein.ich habe ein kleines Problem mit meinem Antrag für den Personalausweis.
Ich habe das ganze so gescriptet, dass wenn man das Geburtsdatum leer lässt, folgende Meldung kommen soll:
"Falsche Angabe beim Tag deines Geburtsdatums!" und der Dialog nochmal erscheinen soll.
Und wenn man vom Geburtsdatum nur den Tag angibt (z.b.: 12.) folgende Meldung kommen soll:
"Falsche Angabe beim Monat deines Geburtsdatums!" und der Dialog nochmal erscheinen soll.
Und wenn man vom Geburtsdatum nur den Tag und den Monat angibt (z.b.: 12.04.) folgende Meldung kommen soll:
"Falsche Angabe beim Jahr deines Geburtsdatums!" und der Dialog nochmal erscheinen soll.
Und wenn man das komplette Geburtsdatum angibt (z.b.: 12.04.1994), soll das Geburtsdatum gespeichert werden.Es funktioniert auch eigentlich alles, bis auf das, dass wenn man das Jahr auslässt (z.b.: 12.04.), kommt weder die Meldung, noch erscheint der Dialog nochmal.
Es scheint so, dass der Antrag einfach abgebrochen wird.Hier mal die Zeilen, ich weiß momentan kein anderen Rat außer hier nachzufragen.
case DIALOG_PERSONALAUSWEIS1:
{
if(response)
{
new day, month, year, DateInfo[3][20], string[256], name[MAX_PLAYER_NAME];
getdate(year, month, day);
split(inputtext, DateInfo, '.');
if(strval(DateInfo[0]) < 01 || strval(DateInfo[0]) > 31 || strval(DateInfo[0]) < 1 || strval(DateInfo[0]) > 31)
{
SendClientMessage(playerid,ROT,"Falsche Angabe beim Tag deines Geburtsdatums!");
ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS1, DIALOG_STYLE_INPUT, "Personalausweis - Antrag [1/2]", "Geben sie wie folgt ihr Geburtsdatum an: dd.mm.yyyy\n(Beispiel: 16.09.1994)!", "Weiter", "Abbrechen");
return 1;
}
if(strval(DateInfo[1]) < 01 || strval(DateInfo[1]) > 12 || strval(DateInfo[1]) < 1 || strval(DateInfo[1]) > 12)
{
SendClientMessage(playerid,ROT,"Falsche Angabe beim Monat deines Geburtsdatums!");
ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS1, DIALOG_STYLE_INPUT, "Personalausweis - Antrag [1/2]", "Geben sie wie folgt ihr Geburtsdatum an: dd.mm.yyyy\n(Beispiel: 16.09.1994)!", "Weiter", "Abbrechen");
return 1;
}
new check = year - strval(DateInfo[2]);
if(check == year) { return 1; }
if(strval(DateInfo[1]) > month) { check -= 1; }
else { if(strval(DateInfo[1]) == month && strval(DateInfo[0]) > day) { check -= 1; } }
if(strval(DateInfo[2]) < year-100 || strval(DateInfo[2]) > year)
{
SendClientMessage(playerid,ROT,"Falsche Angabe beim Jahr deines Geburtsdatums!");
ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS1, DIALOG_STYLE_INPUT, "Personalausweis - Antrag [1/2]", "Geben sie wie folgt ihr Geburtsdatum an: dd.mm.yyyy\n(Beispiel: 16.09.1994)!", "Weiter", "Abbrechen");
return 1;
}
else
{
SpielerInfo[playerid][pBdayTag] = strval(DateInfo[0]);
SpielerInfo[playerid][pBdayMonat] = strval(DateInfo[1]);
SpielerInfo[playerid][pBdayJahr] = strval(DateInfo[2]);
SpielerInfo[playerid][pAlter] = check;
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(string,sizeof(string),"Bitte überprüfen Sie, ob ihre Angaben korrekt sind!\n\nName: %s\nGeburtsdatum: %d.%d.%d\nAlter %d\n\n\nSind diese Angaben korrekt?",name,strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]),check);
ShowPlayerDialog(playerid,DIALOG_PERSONALAUSWEIS2,DIALOG_STYLE_MSGBOX,"Personalausweis - Antrag [2/2]",string,"Ja","Nein");
return 1;
}
}
}
Mit freundlichen Grüßen
AlphaGen! -
Hallo Leute,
ich wollte für meine Fraktionen Fraktionskassen erstellen, in denen die Member vorerst nur Geld einzahlen können.
Das großte Problem besteht dabei allerdings überhaupt solch eine Kasse zu erstellen.Derzeit habe ich versucht das ganze wie beim Login/Register-System zu machen, doch irgendwie klappt der ganze Spaß nicht so wie ich es mir vorstelle.
Ich poste mal die Zeilen, dahinter schreib ich, was ich mit den jeweiligen Zeilen bezwecken wollten.
#define MAX_FRAKS 12 // Ich habe insgesammt 12 Fraktionen.enum FrakDaten // Das Enum, erklärt sich glaub ich von selbst.
{
fFrakID, //Für die jewilige Fraktion.
fGeld //Für das Geld, was in der Fraktionskasse eingezahlt werden kann.
}
new FrakInfo[MAX_FRAKS][FrakDaten]; // Das Enum, erklärt sich glaub ich auch von selbst.public OnGameModeInit()
{
LoadFrak(); // Wenn der Server startet sollen die Fraktionen geladen werden.
return 1;
}public OnGameModeExit()
{
SaveFrak(); // Wenn der Server offline geht sollen die Fraktionen gespeichert werden.
return 1;
}stock LoadFrak() //Der Stock fürs laden der Fraktionen.
{
new string[48];
new fID;while(fID<MAX_FRAKS) //Für die FrakIDs, die geladen werden sollen (Soll mit fID 0 anfangen).
{
if(fID <= MAX_FRAKS) // Wenn "fID" kleiner als, oder 12 ist (Wenn nicht soll das laden beendet werden).
{
format(string,sizeof(string),"%d",fID); // Setzt "fID" in einem string.
FrakInfo[fID][fGeld] = mysql_GetInt("frakkasse", "Geld", "Name", string); //Soll das Geld was in der Fraktionskasse ist laden ("string" gibt die FrakID an, aus welcher das Geld geladen werden soll.)
fID += 1; // Addiert "fID" mit 1 (Wenn "fID" zuerst 0 wiedergegeben hat, soll "fID" jetzt 1 wiedergeben).
LoadFrak(); // Soll den Stock nochmal mit der neuen "fID" wiederholen, bis "fID" 12 wiedergegeben hat.
}
}
return 1;
}stock SaveFrak() //Der Stock fürs speichern der Fraktionen.
{
new string[48];
new fID;while(fID<MAX_FRAKS) //Für die FrakIDs, die gespeichert werden sollen (Soll mit fID 0 anfangen).
{
if(fID <= MAX_FRAKS) // Wenn "fID" kleiner als, oder 12 ist (Wenn nicht soll das speichern beendet werden).
{
format(string,sizeof(string),"%d",fID); // Setzt "fID" in einem string.
mysql_SetInt("frakkasse", "Geld", FrakInfo[fID][fGeld], "Name",string); //Soll das Geld was in der Fraktionskasse ist speichern ("string" gibt die FrakID an, aus welcher das Geld gespeichert werden soll.)
fID += 1; // Addiert "fID" mit 1 (Wenn "fID" zuerst 0 wiedergegeben hat, soll "fID" jetzt 1 wiedergeben).
SaveFrak(); // Soll den Stock nochmal mit der neuen "fID" wiederholen, bis "fID" 12 wiedergegeben hat.
}
}
return 1;
}Ich hoffe, ich habe deutlich gemacht, was ich mit den Zeilen bezwecken möchte.
Ich habe das Gefühl, dass ich bei den ganzen irgendwas nicht berücksichtigt habe.Hoffentlich kann mir jemand von euch helfen.
- Danke schonmal im Voraus für die Hilfe!
Mit freundlichen Grüßen
AlphaGen! -
Hallo Leute,
ich brauche etwas Hilfe beim Carrespawn-Befehl für Fraktionscars.
Derzeit habe ich es geschafft die Fraktionscars zu respawnen, was so auch eigentlich richtig ist.
Jedoch sollen Fraktionscars in denen Spieler sitzen nicht respawnt werden. - Und das bekomm ich irgendwie nicht hin!Bevor nach den Zeilen des Befehls gefragt wird, poste ich sie einfach mal mit:
if(strcmp(cmdtext,"/carrespawn",true) == 0 || strcmp(cmdtext,"/cr",true) == 0)
{
if(SpielerInfo[playerid][pFraktion] == 11 && if(SpielerInfo[playerid][pFrakLeader] == 11) //Soll abfragen, ob der Spieler in der Fraktion 11 und Leader ist.
{
new bool:unwanted[CAR_AMOUNT];
for(new player=0; player<MAX_PLAYERS; player++)
{
if(IsPlayerInAnyVehicle(player)) //Soll abfragen, ob ein Spieler in einem Fahrzeug ist.
{
unwanted[GetPlayerVehicleID(player)]=true; //Wenn ja, dann soll das Fahrzeug nicht respawnt werden.
}
}
for(new i=0; i<sizeof(Frak11Car); i++)
{
if(unwanted[i] != true) //Soll abfragen, ob die jeweiligen Fahrzeuge besetzt sind.
{
SetVehicleToRespawn(Frak11Car[i]); //Respawnt die Frakcars von Fraktion 11.
}
}
SendClientMessage(playerid,GRUEN,"Du hast einen Carrespawn durchgeführt!");
}
return 1;
} -
Waffen sind auch als Objekte anzeigbar
http://wiki.sa-mp.com/wiki/WeaponsDa stehen die Objekt-Models für die einzelnen Waffen bei
Danke, darauf wäre ich jetzt von alleine nicht so schnell gekommen, dabei lag diese Lösung doch so nah..
-
Du musst doch glaube ich sogar noch ein File für die Waffen anlegen oder?
Du meinst eine .txt unter scriptfiles, oder?
Wenn ja, dann habe ich das bereits gemacht. -
Hallo Leute,
ich habe Gestern mit der 0.3x Funktion eine Skinauswahl gemacht und heute wollte ich auch noch eine Waffenauswahl machen.
Es hat eigentlich alles Funktioniert, bis auf das, dass zum Beispielt anstatt das Bild einer Deagle (Waffenid: 24), das Bild des Skins mit der ID 24 angezeigt wird.Nun weiß ich nicht weiter, ich habe es bereits versucht "modelid" in "weaponid" zu wechseln. - Hätte ja funktionieren können.
Weiß jemand was zu tun ist und kann ich mein Vorhaben so überhaupt umsetzen?
Mit freundlichen Grüßen
AplhaGen -
Danke, habs soweit hinbekommen!
-
Hallo Leute,
ich habe ein kleines Tacho gescriptet, es Funktioniert auch.
Allerdings habe ich das Problem, dass die Geschwindigkeit und der Zustand nicht so richtig angegeben werden.
Ich habe den String dafür etwas vergrößert, so sieht das Tacho momentan aus: Klick Mich!Das ganze sollte eigentlich so aussehen:
Zustand: 100%, Zustand: 90,5%. Zustand: 84,7%, Zustand: 73,1% ... Zustand: 7,7%
Geschw.: 0 mph, Geschw.: 10 mph, Geschw.: 20 mph,Geschw.: 30 mph ... Geschw.: 100 mphHier einmal die Zeilen dazu:
new Float:Speed; GetVehicleSpeed(vehicleid, Speed); new Sspeed[32]; format(Sspeed,sizeof(Sspeed),"Geschw.: %0.f mph",Speed); TextDrawSetString(TachoKMH[playerid], Sspeed); TextDrawShowForPlayer(playerid, TachoKMH[playerid]);
new Float:health; GetVehicleHealth(GetPlayerVehicleID(playerid), health); new vZustand[32]; format(vZustand,sizeof(vZustand),"Zustand: %0.f%%",health); TextDrawSetString(TachoZustand[playerid], vZustand);
TextDrawShowForPlayer(playerid,TachoZustand[playerid]);Ich hoffe jemand kann mir etwas weiter helfen..
Mit freundlichen Grüßen
Alpha -
public OnPlayerConnect(playerid)
{
SetTimerEx("SpielerUpdate",1009,1,"d",playerid);
return 1;
} -
Du updatest playerid, loopst dann aber mittels GetMaxPlayers() ? Übersehe ich grad was oder hat das einen bestimmten Sinn?
Ich habe den Oberen Abschnitt versucht mit GetMaxPlayers() zu updaten, doch dann wurden überhaupt keine Textdraws mehr angezeigt.
(Mal davon abgesehen werden dort keine Textdraws verändert)?
Die Textdraws selbst verändern sich nicht, aber die Infos (was in %d usw. angezeigt wird) switcht ständig hin und her..
-
Hallo Leute,
mein Problem sieht folgendermaßen aus:
Ich lasse die Stats (ID,Kills,Tode usw.) von den Spielern in Textdraws anzeigen und jede Sekunde aktualisieren.
Wenn aber mehr als 1 Spieler auf meinen Server sind, switchen die ausgelesenen Daten von den Spielern hin und her.
Die Spieler sehen in einem Moment die Stats von ID 0 und im nächsten die Stats von ID 1 usw..Ich weiß da einfach nicht weiter, ich finde den Fehler einfach nicht..
Hier mal das Public vom Timer für das Spieler/Stats-Update wo ich den Fehler vermute:
forward SpielerUpdate(playerid);
public SpielerUpdate(playerid)
{
if(GetPVarInt(playerid,"Eingeloggt") == 1)
{
SetPVarInt(playerid,"OnlineSeit",GetPVarInt(playerid,"OnlineSeit")+1);
if(GetPVarInt(playerid,"OnlineSeit")==60)
{
SpielerInfo[playerid][pSpielminuten] += 1;
SetPVarInt(playerid,"OnlineSeit",0);
SetPVarInt(playerid,"ZeitSeitLogin",GetPVarInt(playerid,"ZeitSeitLogin")+1);
SendClientMessage(playerid,ROT,"Deine Stats wurden aktualisiert!");
}
new strID[10]; format(strID, sizeof(strID), "ID: %d",playerid); TextDrawSetString(StatsID, strID); TextDrawShowForPlayer(playerid, StatsID);
new strKills[24]; format(strKills, sizeof(strKills), "Kills: %d", SpielerInfo[playerid][pKills]); TextDrawSetString(StatsKills, strKills); TextDrawShowForPlayer(playerid, StatsKills);
new strDeaths[24]; format(strDeaths, sizeof(strDeaths), "Tode: %d", SpielerInfo[playerid][pTode]); TextDrawSetString(StatsDeaths, strDeaths); TextDrawShowForPlayer(playerid, StatsDeaths);
new Float:health; GetPlayerHealth(playerid,health); new strHP[14]; format(strHP, sizeof(strHP), "Health: %f",health); TextDrawSetString(StatsHealth, strHP); TextDrawShowForPlayer(playerid, StatsHealth);
new Float:armour; GetPlayerArmour(playerid,armour); new strARMOUR[14]; format(strARMOUR, sizeof(strARMOUR), "Armour: %f", armour); TextDrawSetString(StatsArmour, strARMOUR); TextDrawShowForPlayer(playerid, StatsArmour);
new strSkin[13]; format(strSkin, sizeof(strSkin), "Skin-ID: %d", GetPlayerSkin(playerid)); TextDrawSetString(StatsSkin, strSkin); TextDrawShowForPlayer(playerid, StatsSkin);
new strZSL[50]; format(strZSL, sizeof(strZSL), "Minuten seit Login: %d", GetPVarInt(playerid,"ZeitSeitLogin")); TextDrawSetString(StatsZeitSeitLogin, strZSL); TextDrawShowForPlayer(playerid, StatsZeitSeitLogin);
new strZG[50]; format(strZG, sizeof(strZG), "Spielminuten: %d", SpielerInfo[playerid][pSpielminuten]); TextDrawSetString(StatsZeitGesammt, strZG); TextDrawShowForPlayer(playerid, StatsZeitGesammt);
{
new i = 0;
for(;i<GetMaxPlayers();i++)
{
if(GetPVarInt(i,"Prem1")==1)
{
SetPVarInt(i,"Navi",8);
SetPVarInt(i,"Prem1",0);
}
if(GetPVarInt(i,"Brob")==1)
{
if(GetPVarInt(i,"Bank")==0)
{
SetPVarInt(i,"Brob",0);
SendClientMessageToAll(ROT,"[Achtung] Der Bankraub ist fehlgeschlagen!");
}
}
}
}
}
return true;
}Ich hoffe jemand kann mir zeigen was ich falsch gemacht habe.
Mit freundlichen Grüßen
AlphaGen! -
Hallo Leute,
ich habe unterhalb der Minimap einen schwarzen Balken (TextDraw) gemacht,
auf diesen Balken sollen die Stats des jeweiligen Spielers stehen.Momentan habe ich folgendes dort untergebracht:
- ID
- Kills
- Tode
- Armour
- HealthBei mir wird alles bis auf die ID richtig angezeit.
Im Tab-Menü steh ich als ID-0, im Textdraw steht das ich angeblich ID-1 wäre.
Hier ein Screen: Klick Mich!Ein Kollege der mit mir zusammen getestet hat, sah bis auf seine ID unten Links nichts von den Stats.
Hier dazu mal die Scriptzeilen:
//Textdraws
new Text:StatsBackGround;
new Text:StatsID;
new Text:StatsKills;
new Text:StatsDeaths;
new Text:StatsHealth;
new Text:StatsArmour;public OnGameModeInit()
{
SetTimer("SpielerUpdate",3001,true);
//StatsBackGround-Draw
StatsBackGround = TextDrawCreate(650.000000, 426.000000, " ");
TextDrawBackgroundColor(StatsBackGround, 255);
TextDrawFont(StatsBackGround, 1);
TextDrawLetterSize(StatsBackGround, 2.100000, 1.500000);
TextDrawColor(StatsBackGround, -1);
TextDrawSetOutline(StatsBackGround, 0);
TextDrawSetProportional(StatsBackGround, 1);
TextDrawSetShadow(StatsBackGround, 1);
TextDrawUseBox(StatsBackGround, 1);
TextDrawBoxColor(StatsBackGround, 255);
TextDrawTextSize(StatsBackGround, -3.500000, -1.500000);
//ID-Draw
StatsID = TextDrawCreate(10,429,"");
TextDrawBackgroundColor(StatsID,255);
TextDrawFont(StatsID,1);
TextDrawLetterSize(StatsID,0.25,1.5);
TextDrawColor(StatsID,-1);
TextDrawSetOutline(StatsID,0);
TextDrawSetProportional(StatsID,1);
TextDrawSetShadow(StatsID,1);
//Kills-Draw
StatsKills = TextDrawCreate(140,425,"");
TextDrawBackgroundColor(StatsKills,255);
TextDrawFont(StatsKills,1);
TextDrawLetterSize(StatsKills,0.18,1.2);
TextDrawColor(StatsKills,-1);
TextDrawSetOutline(StatsKills,0);
TextDrawSetProportional(StatsKills,1);
TextDrawSetShadow(StatsKills,1);
//Deaths-Draw
StatsDeaths = TextDrawCreate(140,433.5,"");
TextDrawBackgroundColor(StatsDeaths,255);
TextDrawFont(StatsDeaths,1);
TextDrawLetterSize(StatsDeaths,0.18,1.2);
TextDrawColor(StatsDeaths,-1);
TextDrawSetOutline(StatsDeaths,0);
TextDrawSetProportional(StatsDeaths,1);
TextDrawSetShadow(StatsDeaths,1);
//Armour-Draw
StatsArmour = TextDrawCreate(190,425,"");
TextDrawBackgroundColor(StatsArmour,255);
TextDrawFont(StatsArmour,1);
TextDrawLetterSize(StatsArmour,0.18,1.2);
TextDrawColor(StatsArmour,-1);
TextDrawSetOutline(StatsArmour,0);
TextDrawSetProportional(StatsArmour,1);
TextDrawSetShadow(StatsArmour,1);
//Health-Draw
StatsHealth = TextDrawCreate(190,433.5,"");
TextDrawBackgroundColor(StatsHealth,255);
TextDrawFont(StatsHealth,1);
TextDrawLetterSize(StatsHealth,0.18,1.2);
TextDrawColor(StatsHealth,-1);
TextDrawSetOutline(StatsHealth,0);
TextDrawSetProportional(StatsHealth,1);
TextDrawSetShadow(StatsHealth,1);
return 1;
}public OnPlayerConnect(playerid)
{
//TextDraws
TextDrawShowForPlayer(playerid,StatsBackGround);
new strID[10]; format(strID, sizeof(strID), "ID: %d", playerid); TextDrawSetString(StatsID, strID); TextDrawShowForPlayer(playerid, StatsID);
return 1;
}forward SpielerUpdate(playerid);
public SpielerUpdate(playerid)
{
new strKills[24]; format(strKills, sizeof(strKills), "Kills: %d", SpielerInfo[playerid][pKills]); TextDrawSetString(StatsKills, strKills); TextDrawShowForPlayer(playerid, StatsKills);
new strDeaths[24]; format(strDeaths, sizeof(strDeaths), "Tode: %d", SpielerInfo[playerid][pTode]); TextDrawSetString(StatsDeaths, strDeaths); TextDrawShowForPlayer(playerid, StatsDeaths);
new Float:health; GetPlayerHealth(playerid,health); new strHP[14]; format(strHP, sizeof(strHP), "Health: %f",health); TextDrawSetString(StatsHealth, strHP); TextDrawShowForPlayer(playerid, StatsHealth);
new Float:armour; GetPlayerArmour(playerid,armour); new strARMOUR[14]; format(strARMOUR, sizeof(strARMOUR), "Armour: %f", armour); TextDrawSetString(StatsArmour, strARMOUR); TextDrawShowForPlayer(playerid, StatsArmour);
return true;
}Hoffentlich kann mir jemand sagen, was ich falsch gemacht habe.. :s
Vielen vielen Dank schonmal im voraus!Grüß
Alpha! -
Die frage ist ja, ob man mehrere Streamer aufeinmal lassen kann, richtig? Geht das nun, dann können ja möglicherweise auch 10000 im Umkreis gestreamt werden?
Ich habe es gerade probiert, indem ich die Dateinamen geändert habe.
Man müsste vielleicht noch in der .inc die defines ändern und es kännte klappen..