Ja so is super, pack das nun noch unter OnPlayerSpawn und das passt.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
also einfach
if(gTeam[playerid] == Polizei)
{
SetPlayerColor(playerid, 0x007DFFFF);
}???
-
Ehm wie kann man es so machen das z.B eine Frak Polizei blau angezeigt wird also auf der map und in der Liste ?
SetPlayerColor(playerid, 0x007DFFFF);
Das ist setplayercolor mit der farbe blau aber jetzt weiss ich nicht wie man das so macht , das es bei einen polizisten ist (Die Frak heisst Polizei)
und wo ich das ins script einfügen soll ...//EDIT:
Also falls man >
if(gTeam[playerid] == Polizei)
machen mussVersteh deine Frage nicht ganz einfach mal ins leer gegriffen:
public OnPlayerConnect(playerid)
{
if(gTeam[playerid] == 1)
{
SetPlayerColor(playerid, 0x007DFFFF);
}
return 1;
} -
EDIT//
Habe es selber geschaft ohne den Zufall Kram usw.
Eine Abfrage war nicht richtig eingestellt wobei ich wieder was anderes machen musste.Wie das aber nun bei dir(BloodyEric) ausgesehen hätte würde mich auch interessieren, denn so wüsste ich die Anwendung von while besser.
Danke für eure Hilfe.
EDIT2//
Ok irgendwie will bei mir nie eine for-Schleife.
Dadurch ich jetzt geschafft habe eine Haus zu erstellen möchte ich sie auch dynamisch löschen.
Aber das for gibt nur "0" aus und ich finde den Fehler nicht.
Hier mein Code:
COMMAND:deletehouse(playerid)
{
new HouseDatei[128];
format(HouseDatei,sizeof(HouseDatei),"Houses/%i",h);
if(SpielerInfo[playerid][Adminlevel]==3)
{
if(aLogin[playerid]==1)
{
for(new h;h<100;h++)
{
if(dini_Exists(HouseDatei))
{
if(IsPlayerInRangeOfPoint(playerid,3,HouseInfo[h][hx],HouseInfo[h][hy],HouseInfo[h][hz]))
{
dini_Remove(HouseDatei);
}
else return SendClientMessage(playerid,ROT,"Sie sind nicht in der Nähe eines Hauses!");
}
}
}
else return SendClientMessage(playerid,ROT,"Sie sind nicht als Admin eingeloggt!");
}
else return SendClientMessage(playerid,ROT,"Sie haben nicht das benötigte Adminlevel!");
return 1;
}
Wenn ich diesen Befehl eingebe kommt:
"Sie sind nicht in der Nähe eines Hauses!".
Ich habe mir nun den Wert von der for-Schleife ausgeben lassen und sie kommt nur bis "0" und dann wird "Sie sind nicht in der Nähe eines Hauses!" versendet und aus der Command.Ich hoffe auf Hilfe finde einfach keinen Fehler.
mfg.
Opa -
Mit return beendest du die Schleife. Das return muss daher hinter die Schleife:
COMMAND:deletehouse(playerid)
{
new HouseDatei[128];
format(HouseDatei,sizeof(HouseDatei),"Houses/%i",h);
if(SpielerInfo[playerid][Adminlevel]==3)
{
if(aLogin[playerid]==1)
{
for(new h;h<100;h++)
{
if(dini_Exists(HouseDatei))
{
if(IsPlayerInRangeOfPoint(playerid,3,HouseInfo[h][hx],HouseInfo[h][hy],HouseInfo[h][hz]))
{
dini_Remove(HouseDatei);
}
}
}
else return SendClientMessage(playerid,ROT,"Sie sind nicht in der Nähe eines Hauses!");
}
else return SendClientMessage(playerid,ROT,"Sie sind nicht als Admin eingeloggt!");
}
else return SendClientMessage(playerid,ROT,"Sie haben nicht das benötigte Adminlevel!");
return 1;
}E: PWN Tag editiert
-
Bloody du bist echt super!
Bei dir ist es leider einwenig verrutscht jetzt kann ich nicht genau erkennen was wo hingehört
Habe es mit else aber das ned optimal deins ist sicher besser
EDIT//
Ok, nun klappt alles, aber wo gehört jetzt das return usw. genau hin?
Werde es noch öfters benötigen.Danke für deine Hilfe.
Opa -
Bloody du bist echt super!
Bei dir ist es leider einwenig verrutscht jetzt kann ich nicht genau erkennen was wo hingehört
Habe es mit else aber das ned optimal deins ist sicher besser
EDIT//
Ok, nun klappt alles, aber wo gehört jetzt das return usw. genau hin?
Werde es noch öfters benötigen.Danke für deine Hilfe.
OpaWie er schon gesagt hat, mit dem "return" beendet man die Schleife. Daher muss das "return" hinter die Schleife, was bedeutet hinter das "}".
Beispiel: -
Ja das mir klar aber wenn ich es so mache:
klick
Dann kommen folgende Fehler:
C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(3171) : warning 217: loose indentation
C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(3171) : error 029: invalid expression, assumed zero
C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(3171) : warning 215: expression has no effect
C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(3171) : error 001: expected token: ";", but found "return"
C:\Program Files (x86)\Rockstar Games\GTA San Andreas\gamemodes\tdm3.pwn(3176) : warning 225: unreachable codeDanke für die Hilfe!
mfg.
Opa -
Wie kann man die Npcs in Casio oder die Menüs fürs Glückspiel abschalten?
ps: ich weiß die frage hab ich schon gestlellt aber keine antwort bekommen
-
Opa_Schlumpf:
Zeile 3171: Du versuchst bei einer schleife "else return" zu benutzen, was natürlich nicht funktionieren kann.
Zeile 3176: Doppeltes Return, deshalb der fehler.
Und schau mal hier vllt hilfts dir ja: http://pawn.pastebin.com/hsbsvnFq@patoo:
Das geht glaube ich nicht. Kannst ja mal versuchen obs hilft wenn du dich in eine andere Virtuelle Welt setzt.mfg.
-
Danke funkt jetzt.
Jetzt weis auch wie ich solche Abfragen hinbekomme.Thx
mfg.
OpaEDIT//
Dadurch noch niemand was anderes fragte muss ich wohl editieren.Ich habe folgenden Code:
new aktkonto[128];
format(aktkonto,sizeof(aktkonto),"Aktueller Kontostand: {0x00CEFF9B}%i",SpielerInfo[playerid][BEuro]);
SendClientMessage(playerid,WEIS,aktkonto);
Nur werden hier die Farbcodes abgesendet, obwohl ich den Text aber in Farbe haben will.
Wie kann ich das hinbekommen?mfg.
Opa -
@Opa: du hast aber schon 0.3c dafür hergenommen oder?
-
Ja habe ich.
mfg.
Stefan -
00CEFF
Wäre der richtige farbcode @ Opa_Schlumpf. Die letzten beiden zahlen wären der Kontrast, und der wird in den Nachrichten nicht benutzt/unterstützt. Und das 0x am anfang musste auch immer weg lassen.//E: erklärung
-
Ahm ich habe eine kurze wahrscheinlich sehr dumme Frage. Bisher speichere ich beinahe alles in .ini Dateien mit dini.
Meine Frage nun ist wie funktioniert das "enum" genau? Kann man da auch Passwörter etc. speichern, die für immer dann auch gespeichert bleiben?Hoffe auf eine ausführliche und gute Erklärung
-
Ich hatte heute schon einen Beitrag gesehen, welcher alle Fahrzeuge ohne Nummernschild aufgelistet hat (als public meine ich)
Hat zufällig jmd. diese Liste oder den Link dazu?
-
Kannst es ja mal damit probieren,
http://forum.sa-mp.com/showpost.php?p=939582&postcount=1437 -
Ich habe ein komisches Problem.
Bei mir wird die Variable auf 0 gesetzt obwohl sie -1 sein soll.
Mein Code:
else if(SpielerInfo[playerid][spawnstate]==2)//SocialCity (Haus)
{
new datei[128];
format(datei,sizeof(datei),"Houses/%i.txt",SpielerInfo[playerid][hID]);
if(dini_Exists(datei))
{
//Natürlich steht hier bei mir was....
}
else
{
SpielerInfo[playerid][hID]=-1;
SendClientMessage(playerid,ROT,"Ihr Haus existiert nicht mehr!");
new blabla[128];
format(blabla,sizeof(blabla),"HausID: %i",SpielerInfo[playerid][hID]);
SendClientMessage(playerid,ORANGE,blabla);//Hiermit habe ich überprift was hID ist, und es wird 0 ausgegeben o.O
}
} -
=-1 bedeutet das Vom wert 1 abgezogen wird.
versuch mal
SpielerInfo[playerid][hID] = -1; -
wegen eins abziehen,
müsste es dann nicht so lauten:
SpielerInfo[playerid][hID] -=1;EDIT// hat nix geändert der Abstand mehr oder weniger
-