Das würde ich so machen:
switch(random(10))
{
case 0:
{
//10%
switch(random(3))
{
case 0:
{
//A
}
case 1:
{
//B
}
case 3:
{
//C
}
}
}
case 1..9:
{
//90%
switch(random(2))
{
case 0:
{
//D
}
case 1:
{
//E
}
}
}
}
[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
-
-
Beitrag von Kaliber ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: dé Jéffry (). -
Wenn ich das in mein Stock einfüge erhalte ich Fehler. Wenn ich switch(random(10)) zu switch(randomgift(10)) änder erhalte ich auch Errors.
Und noch eine Frage dazu, wieso ist das hier so komisch geschrieben, hat das was zu bedeuten? case 1..9:stock RandomGift(playerid)
{
new randomgift = random(3) + 1;
switch(random(10))
{
case 0:
{
//10%
switch(random(3))
{
case 0:
{
//A
}
case 1:
{
//B
}
case 3:
{
//C
}
}
}
case 1..9:
{
//90%
switch(random(2))
{
case 0:
{
//D
}
case 1:
{
//E
}
}
}
}
return 1;
} -
new randomgift = random(3) + 1;
Das kannst du entfernen, das brauchst du dann nicht mehr. Ich habe das random ja direkt in den switch gepackt.Die Schreibweise 1..9 heißt im switch: Alles von 1 bis 9. Also 1,2,3,4,5,6,7,8&9.
-
Verstehe, aber noch nicht 100 %

Wieso hast du bei dem ersten case 0: nicht case 0..3: gemacht? Weil es ja von 0 bis 3 geht so wie unten auch, oder nicht?
Und übrigens, ich erhalte dabei diesen Warning:
symbol is never used: "playerid" Koordinaten.pwn 321 Wenn ich das (playerid) entferne erscheinen sehr viele Errors.
-
Da ich gerade an einem Script weiterarbeite, hätte ich mal eine Frage zu "floatdiv".
Und zwar versuche ich gerade die K/D-Rate mit dieser Funktion zu berechen.
Das ganze sieht so aus:
KD[playerid] = floatdiv(SpielerInfo[playerid][Kills],SpielerInfo[playerid][Deaths]);
if(sscanf(params,""))return SendClientMessage(playerid, RED,"Benutze: '/stats'");
format(string, sizeof(string), "K/D-Rate: %.2f",KD[playerid]);
ShowPlayerDialog(playerid, DG_stats, DIALOG_STYLE_MSGBOX, ""Desing"Stats:", string, "Ok","Abbrechen");
Leider kommt als Ergebnis (wenn Kills und Deaths beide "0" sind) NaN also "Not a Number" heraus. Kann man das beheben sodass da nicht NaN steht sonder 0.00? -
Wieso hast du bei dem ersten case 0: nicht case 0..3: gemacht? Weil es ja von 0 bis 3 geht so wie unten auch, oder nicht?
Nein, denn 10% sind eine Zahl aus 10 (random) Zahlen. Daher nur 0. Und unten die 90% sind 1 bis 9 = 9 Zahlen aus 10 = 90%.
Zwecks dem playerid: Lass das dran, du musst ja bei den case's noch etwas einfügen, was die playerid betrifft (Geld geben oder so).
@JohnsonC
if(SpielerInfo[playerid][Deaths] > 0) KD[playerid] = floatdiv(SpielerInfo[playerid][Kills],SpielerInfo[playerid][Deaths]);
else KD[playerid] = 0.0; -
Wo ist da der Parameter Fehler O.o?
SCM(playerid,COLOR_RED,"Du musst $%i Strafe sofort zahlen!",Endspeed); -
Du musst format nutzen.
new str[145];
format(str, sizeof(str), "Du musst $%i Strafe sofort zahlen!", Endspeed);
SCM(playerid,COLOR_RED,str); -
Hallo ich wollte mal fragen wie man soein Cp erstellt der die Ganze zeit da ist wie z.b der an der Arena in Lv
-
Der Checkpoint dort ist standardmäßig da und kann auch nicht entfernt oder erkannt werden. Wenn du aber Checkpoints dieser Art erstellen willst, dann schau dir mal diese Include an:
http://forum.sa-mp.com/showthread.php?t=250174 -
damit erstellt man doch auch nur Normale checkpoints
-
Nein, damit erstellt man MapIcons die als Checkpoints dargestellt werden.
Was verstehst du unter einem nicht "normalen Checkpoint"?
-
schon gut
Jeffry:
Ich ja e das Problem bei meinen Dropweaponsystem das ich ca 1000x die Message bekomme und auch ca 1000x die waffe -
Erstelle dazu bitte einen neuen Thread und poste dort, wie du die Pickups erstellst, und den Code von OnPlayerPickUpPickup.
-
Ist ziemlich logisch. Das Pickup ist da und jedesmal wenn du da reingehst bekommst du halt die Waffe und die Nachricht. Oder wird sie beim reingehen ca 1000 mal gespamt?
Du solltest das ein wenig einstellen, so dass man halt nur die Waffe bekommt, sollte man diese nicht haben oder nur geringfügig Munition haben.
Dazu kannst du auch eine Zeit einstellen, wann er das Pickup aufheben darf und diese abfragen bevor er die Waffe bekommt -
ich lösche das direkt nach dem aufnehmen und da wird die Nachricht 1000x gesendet und die Waffe 1000x aufgehoben das ich dann unbegrenzt Muni habe
-
Wie gesagt, poste den Code in einem separaten Thread. Raten bringt ja nichts.
-
Wieder eine kleine Frage zu den Zügen

Kann es sein, das Züge nicht nach der angegebenen Respawn-zeit respawnen?
-
Ist das richtig oder ist das Falsch ich weiß es nicht
if(!strcmp(MD5_Hash(inputtext), mysql_ReturnPasswort(SpielerName(playerid)), false)) -
