Danke, funktioniert super
Zufall
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
-
-
if(strcmp(cmdtext, "/starterlaubnis", true) == 0 || strcmp(cmd, "/se", true) == 0)
{
if(PlayerInfo[playerid][pTeam] == 2)
{
new zufall = 1 + random(2);//zufall wird erstellt und wird 1 oder 2 ausspucken
if(zufall == 1)//Wenn zufall 1 ist
{
SendClientMessage(playerid,0x33FF00FF,"Starterlaubnis genehmigt!!");//Befehl der sagt das man gewonnen hat
return 1;//Befehl Ende
}
else if(zufall == 2)//aber wenn zufall 2 ist
{
SendClientMessage(playerid,0xFF0000FF,"Starterlaubnis nicht genehmigt!");//Nachricht das man verloren hat
return 1;//Befehl Ende
}
}
return 1;
}wenn es else if(zufall == 2)
ist dann geht der zufall garnicht, es muss
if(zufall == 2)
heißen nur so als kleiner tipp
-
Wieso geht das bei mir nicht?
new Float:gRandomPlayerSpawns[][3] = {
{1921.6819,-2232.2805,13.5469}, //LSFLUGHAFEN
{-1375.9813,-260.1061,14.1440}, //SFFLUGHAFEN
{1630.0172,1624.2849,10.8203}, //LVFLUGHAFEN
{408.7224,2536.5388,16.5469} //LVSCHROTTFLUGHAFEN
};OnPlayerSpawn:
new rand = random(sizeof(gRandomPlayerSpawns));
SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player -
Du hast die größe der Array nicht deklariert :
new Float:gRandomPlayerSpawns[][3]
-
Oh, vielen Dank.
Und was für eine Zahl muss dahin? 4?Edit: Mit 4 gehts nicht.
Edit2: Muss bei OnGameModeInit dennoch AddPlayerClass
sein? -
Was mich grad wundert, normal muss da ja nix Deklariert werden da sizeof schon die größe zurückgibt,
sicher das du den Code unter OnPlayerSpawn hast ?new Float:DieSpawns[][3] = {
{0000.0000,0000.0000,0000.0000},
{0000.0000,0000.0000,0000.0000},
{0000.0000,0000.0000,0000.0000}
};new randompos = random(sizeof(DieSpawns));
SetPlayerPos(playerid,DieSpawns[randompos][0],DieSpawns[randompos][1],DieSpawns[randompos][2); -
Ja, 100%^^
-
Mh, seh ich genau so
-
Spammer.
Danke für deine Hilfe, Black.
Es geht nun. -
habe den Befehl so wie beschrieben gemacht allerdings gewinnt man immer
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/zufall", true) == 0)//Befehl beginnt
{
new geld = random(100);
new zufall = random(2);//zufall wird erstellt und wird 1 oder 2 ausspucken
if(zufall == 1)//Wenn zufall 1 ist
{
SendClientMessage(playerid,0x33FF00FF,"Du hast gewonnen!");//Befehl der sagt das man gewonnen hat
GivePlayerMoney(playerid,geld);//Halt der Gewinn. Hier 1$
return 1;//Befehl Ende
}
else if(zufall == 2)//aber wenn zufall 2 ist
{
SendClientMessage(playerid,0xFF0000FF,"Du hast verloren!");//Nachricht das man verloren hat
GivePlayerMoney(playerid,-geld);//Halt abzug von Geld weil man verloren hat
return 1;//Befehl Ende
}
return 1;
}
return 0;
} -
-
else if(zufall == 2)
zu
if(zufall == 2) -
Hallo dazu habe ich eine Frage und zwar:
Wie mache ich das der Spieler dies z.B nur alle 4 Stunden darf sprich wenn er es jetzt schon 1 mal gemach hat das er 4 Stunden warten muss und dann wieder den befehl nutzten darf?
-
kann man auch ein zweites random in ein if(zufall == X) setzen?
also z.B.
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/zufall", true) == 0)//Befehl beginnt
{
new geld = random(100);
new zufall = random(3);//zufall wird erstellt und wird 1 oder 2 ausspucken
if(zufall == 1)//Wenn zufall 1 ist
{
SendClientMessage(playerid,0x33FF00FF,"Du hast gewonnen!");//Befehl der sagt das man gewonnen hat
GivePlayerMoney(playerid,geld);//Halt der Gewinn. Hier 1$
return 1;//Befehl Ende
}
if(zufall == 2)//wenn zufall 2 ist
{
SendClientMessage(playerid,0xFF0000FF,"Du hast verloren!");//Nachricht das man verloren hat
GivePlayerMoney(playerid,-geld);//Halt abzug von Geld weil man verloren hat
return 1;//Befehl Ende
}
if(zufall == 3)//wenn zufall 3 ist
{
new zufall2 = random(2);
if(zufall2 == 1) //wenn zufall2 1 ist
{
SendClientMessage(playerid,0x33FF00FF,"Du hast gewonnen!");//Befehl der sagt das man gewonnen hat
GivePlayerMoney(playerid,geld);//Halt der Gewinn. Hier 1$
return 1;//Befehl Ende
}
if(zufall2 == 2)//aber wenn zufall2 2 ist
{
SendClientMessage(playerid,0xFF0000FF,"Du hast verloren!");//Nachricht das man verloren hat
GivePlayerMoney(playerid,-geld);//Halt abzug von Geld weil man verloren hat
return 1;//Befehl Ende
}
return 1;
}
return 1;
}
return 1;
}bei mir funktioniert das so nicht bzw. nur if(zufall == 1) und if(zufall == 2), aber die 3 nicht... geht das überhaupt?
(ich weiss, das beispiel ist bescheuert, es soll halt einfach nur darstellen, wie ich es meine ;))
MFG selEcT
-
switch(random(zahl-zahl)) // von Zahl bis zahl
{
case 0:
{}
case 1:
{}
// usw...
}Methode ist schnell und einfach
-
BlackFox , wenn ich jetzzt nen Menü mache ein ganz normales mit.
AddMenuComponent(name, "port");
AddMenuComponent(name, "port2"); // oder wie das heißt
Wenn ich das dann mit case & switch mache ist case 0 port und case1 port 2? -
switch(random(zahl-zahl)) // von Zahl bis zahl
{
case 0:
{}
case 1:
{}
// usw...
}Methode ist schnell und einfach
thx...
random geht net mit random(zahl-zahl), da muss einfach die menge der case's drinstehen (also z.B.) 3, dann gehts
danke nochmal
BlackFox , wenn ich jetzzt nen Menü mache ein ganz normales mit.
AddMenuComponent(name, "port");
AddMenuComponent(name, "port2"); // oder wie das heißt
Wenn ich das dann mit case & switch mache ist case 0 port und case1 port 2?das kannste ja selber festlegen:
switch(random(2)) // 2 Case
{
case 0:
{
AddMenuComponent(name, "port"); //oder AddMenuComponent(name, "port2");
}
case 1:
{
AddMenuComponent(name, "port2"); //oder AddMenuComponent(name, "port");
}
}korrigiert mich wenns net stimmt habs net getestet
-
Warum switch random ? Ich mache das bei menüs mit switch(row)).
-
Weil Switch Funktioniert wie ein Schubladen System daher wählt es den Block der im Kopf den Wert hat der in Switch zurückgegeben wird
-
Ja aber warum random und nicht row ?
-
Warum , er wollte es doch für seinen cmd, wenn er nen Menü nimmt , nutzt er
das doch so ...Callback OnPlayerSelectedMenuRow
new Menu:cur = GetPlayerMenu(playerid);if(cur == SEIN_MENU)
{
switch(row)
{
case 0:print("Menu Item 0");
}
}Hier geht es um Random daher erkläre ich ihm wie man Random anwenden kann bzw. noch ein bisschen Platz dabei sparen kann durch die
verschiedenen Statements