Wie sieht dein print aus?
[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
-
-
new Float:tankPreis=float(random(101)+110)/100.0;
printf("Preis: %f",tankPreis); -
Scheint als klappt bei dir die direkte Berechnung von Floats nicht.
Nutze dann floatdiv:
new Float:tankPreis=floatdiv(float(random(101)+110), 100.0);Bei mir funktioniert beides.
-
Hey, wie müsste ich vorgehen wenn ich allen registrierten Accounts etwas bestimmtes geben möchte, z.B. EXP?
(System ist auf MySQL basiert)Wenn z.B. mein EXP Befehl so ausschaut:
CMD:givexp(playerid, params[]){
new pid, pEXP, cQuery[128];if(!CheckAccesName(playerid)) return
SendClientMessage(playerid, COLOR_RED, ACCES_Fail);if(sscanf(params, "ui", pid, pEXP)) return
SendClientMessage(playerid, COLOR_RED, "Use: /givexp <player> <amount>");if(!IsPlayerConnected(pid)) return
SendClientMessage(playerid, COLOR_RED, ID_Fail);if(!(0 < pEXP < 1001)) return
SendClientMessage(playerid, COLOR_RED, "Min: 1 EXP - Max: 1000 EXP.");format(cQuery, sizeof(cQuery), "You gave to {%06x}%s(%d) {FF0000}%d {FFFFFF}XP", GetPlayerColor(playerid) >>> 8, GetName(playerid), GetName(pid), pEXP);
SendClientMessage(playerid, -1, cQuery);format(cQuery, sizeof(cQuery), "Admin %s gave %s %d XP", GetName(playerid), GetName(pid), pEXP);
writeLog("Logs/GiveXP.txt", cQuery);GivePlayerExp(pid, pEXP);
return 1;
} -
-
Beitrag von Marschl ()
Dieser Beitrag wurde von Trooper[Y] aus folgendem Grund gelöscht: Spam, für Suchen ist der Thread nicht gedacht (). -
Hi, habe 3 Checkpoints auf einer selbst gemappten Map erstellt, nur habe ich eben folgendes lesen dürfen:
"Known Bug: Checkpoints created on server-created objects (CreateObject/CreatePlayerObject) will appear down on the 'real' ground, but will still function correctly. There is no fix available for this issue. A pickup can be used instead."
Kann man mit PickUps Checkpoints erstellen? Falls ja, welche ID denn?
-
Versuch mal 1317.
Ansonsten kannst du dir hiervon was aussuchen: https://wiki.sa-mp.com/wiki/Pickup_IDs
-
Hallo,
ich versteh nicht wieso der Spieler nicht gespawnt wird? Also ich habe vor diesen Spawnbotten sofort verschwinden zu lassen. Jedoch wird SpawnPlayer aufgerufen aber i-wie nicht ausgeführt also er springt nicht zu OnPlayerSpawn?
-
Hallo, wie benutze ich hier Random korrekt :D?
if(pData[playerid][P_HaveExplosion] == 1)
{
new Float:x, Float:y, Float:z;
new RandomExplosion = random(5);
GetPlayerPos(playerid, x, y, z);
RandomExplosion = CreateExplosion(x, y, z, 2, 5.0);}
Erhalte immer warning 204: symbol is assigned a value that is never used: "RandomExplosion"
-
-
Aktuell hast du gar kein Nutzen von Random.
Was genau möchtest du den damit bezwecken ? -
-
Aktuell hast du gar kein Nutzen von Random.
Was genau möchtest du den damit bezwecken ?
Möchte das wenn der Spieler stirbt eine Explosion erstellt wird, aber ich möchte das dass r manchmal passiert, sprich keine 100% Chance. -
if(pData[playerid][P_HaveExplosion] == 1)
{
new Float:x, Float:y, Float:z;
new RandomExplosion = random(5);
GetPlayerPos(playerid, x, y, z);
switch(RandomExplosion)
{
case 0: {CreateExplosion(x, y, z, 2, 5.0);}
case 2: {CreateExplosion(x, y, z, 2, 5.0);}
case 4: {CreateExplosion(x, y, z, 2, 5.0);}
}
}
so zum Beispiel würde es nur eine Explosion geben wenn RandomExplosion jeweils eine 0,2 oder 4 wäre.random(5) gibt der Variable RandomExplosion hier eine zufällige Zahl von *0 - 5.
Danach fragst du einfach ab was für ein Wert die RandomExplosion hat und wenn der Wert wie in dem Beispiel oben 0,2 oder 4 hat gibt es eine Explosion.
Ansonsten nicht. -
random(5) gibt der Variable RandomExplosion hier eine zufällige Zahl von *0 - 5.
Stimmt nicht ganz, bei random(5) ist es von 0 bis 4 (0,1,2,3,4 = 5 Werte).
Etwas aufgeräumter kann man es so schreiben:
if(pData[playerid][P_HaveExplosion] == 1)
{
switch(random(5))
{
case 0,2,4:
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
CreateExplosion(x, y, z, 2, 5.0);
}
}
}
Dann gibt es eine Explosion, wenn 0, 2 oder 4 raus kommt, und keine Explosion, wenn 1 oder 3 raus kommt. -
jo leute ich bins mal wieder mit einem etwas unspektakulären problem ich weiß nicht wieso der timer nicht runterzählt also die zahl ändert sich im spiel nicht
ocmd:co(playerid,params[])
{
for(new i=0;i<5;i++)
{
SetTimerEx("timer", 1000, false, "i", playerid);
}
return 1;
}forward timer();
public timer()
{
for(new i=5;i>0;i--)
{
new zahl=5;
new str[128];
format(str, sizeof(str), "%i", zahl);
GameTextForAll(str, 1000, 1);
zahl--;
}
return 1;
} -
Du hast vergessen beim Timer die playerid mit anzugeben
-
Du hast vergessen beim Timer die playerid mit anzugeben
Die braucht es gar nicht, da er es für alle anzeigt.
Mache es so:
ocmd:co(playerid,params[])
{
SetTimerEx("timer", 1000, false, "i", 5);
return 1;
}forward timer(zahl);
public timer(zahl)
{
new str[16];
format(str, sizeof(str), "%i", zahl);
if(zahl > 0) SetTimerEx("timer", 1000, false, "i", zahl-1); //Startet den Timer erneut, solange zahl > 0 ist.
else format(str, sizeof(str), "Looos!!");
GameTextForAll(str, 1200, 1);
return 1;
} -
Hallo,
ich versteh nicht wieso der Spieler nicht gespawnt wird? Also ich habe vor diesen Spawnbotten sofort verschwinden zu lassen. Jedoch wird SpawnPlayer aufgerufen aber i-wie nicht ausgeführt also er springt nicht zu OnPlayerSpawn?
Mein Code ist halt bei OnPlayerConnect direkt SpawnPlayer. Wie gesagt, das der Spieler sofort spawn soll.
-
Das geht nicht in OnPlayerConnect.
Füge das SpawnPlayer bei OnPlayerRequestClass ein.