Klar
enum enum_Items
{
itemID,
itemName[36],
Float:itemWeight,
Float:itemMunitionWeight
}
new Items[][enum_Items] = {
{0, "LEER", 0.0, 0.0},
{1, "Wasserflasche", 0.75, 0.0},
{2, "Mariuana", 0.01, 0.0},
{3, "AK-47", 4.5, 0.096},
{4, "Desert Eagle", 2.5, 0.075},
{5, "Schrotflinte", 4.5, 0.3},
{6, "Scharfschützengewehr", 8.5, 0.46}
};
[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
-
-
Hab den Code mal so getestet, ich bekomme da keine Fehler

Hast du eventuell in einem anderen Enum / Globalen-Variable schon den Namen itemWeight vewendet?

-
Merkwürdig, die Variable verwende ich auch nicht in einem anderem Enum oder in einer globalen Variable.
-
Gibt es eigentlich die Moeglichkeit XOR Operationen zu realisieren?
Weiss nicht ob das geht, kenne nur das hier 0101 XOR 1011 = 1110
Kann man dann auch z.B. mit arrays machen? array1={0101} XOR array2={1011} = array3={1110} ? Also wie kann man sowas in PAWN realisieren?Weiterhin habe ich das Problem:
Wenn ich Pi definiere new const Float:pi=3.14; und dann in main ausgeben will mit printf("%d",pi); warum erhalte ich da einen wert von ueber 100000?
-
Guten Abend zusammen,
ich habe da ein kleines Problem mit meinem Script (mal wieder), sobald man sich Registriert hat, soll man 500$ bekommen, das gebe ich ihn auch,
aber sobald er Spawnt, wird sein Geld wieder auf "Null" gesetzt.
SendClientMessage(playerid, -1, "["#FARBE_ORANGE"INFO"#FARBE_WEISS"]: Du hast als Geschlecht ["#FARBE_LILA"Weiblich"#FARBE_WEISS"] ausgewählt!");
sInfo[playerid][sGeschlecht] = 2;
sInfo[playerid][sSkin] = 12;ShowPlayerLoginScreen(playerid, false);
SetSpawnInfo(playerid, 0, 0, 2099.6208, -1803.3022, 13.5546, 134.9301, 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
LoadPlayerWorld(playerid);
GivePlayerMoney(playerid, 500);
SetPlayerScore(playerid, 1);
sInfo[playerid][sEingeloggt] = true;Hoffe ihr könnt mir dabei Helfen, finde den Fehler leider nicht.
Das Level aber zB wird Gesetzt.MfG.
-
Zeig uns doch OnPlayerSpawn Hellsehen können wir nicht
-
-
Weiterhin habe ich das Problem:Wenn ich Pi definiere new const Float:pi=3.14; und dann in main ausgeben will mit printf("%d",pi); warum erhalte ich da einen wert von ueber 100000?
Für floats musst du %f benutzen.
-
Ich gruesse euch kleine Frage
Habe so ein tolles Include und Plugin namens sscanf gefunden.
Leider finde ich Anwendungen nur mit dcmd zcmd etc. aber nicht mit den normalen StuffKann jemand mir eventuell ein Beispiel machen, wie und ob ich sscanf hier bei diesem Befehl sinnvoll einsetzen kann?
C
Alles anzeigenif(!strcmp(cmd, "/soundvalid", true)) { new tmp[20], targetsoundid; tmp = strtok(cmdtext, idx); if(!tmp[0]) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /soundvalid [soundid]"); targetsoundid = strval(tmp); for(new i; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue; PlayerPlaySound(i, targetsoundid, 0,0,0); } printf("Playing SoundID: %i",targetsoundid); return 1; }
Versuche mich gerade an einen /givecash command, aber die Sache mit 2 Integern bereitet mir Probleme, und da dachte ich dass sscanf mir Abhilfe schaffen koennte -
wieso benutzt du nicht ocmd? ist, meiner Meinung nach, übersichtlicher und schöner
-
Guten Tag ich habe mal eine frage ich habe ein Textdraw für mein Geld.
Das Problem wenn ich das Geld an die Richtige Position setze dann passt es wird mein Geld Größer schiebt es sich nach hinten weiter. -
Denke musst das TextDrawAlignment auf rechts stellen.
-
Kann man dann auch z.B. mit arrays machen? array1={0101} XOR array2={1011} = array3={1110} ? Also wie kann man sowas in PAWN realisieren?
Ja, das geht sehr gut in Pawn

Mit dem PI, du musst %f nutzen

Ich empfehle dir übrigens ein MAKRO

#define PI 3.14159265359
//Nutzung:
printf("Pi: %f",PI);PS: Nutze ocmd/zcmd (kein dcmd) ist schneller und schau dir die basics von der sscanf Anwendung an

-
Beitrag von NikBazinga! ()
Dieser Beitrag wurde vom Autor gelöscht (). -
Danke schonmal Kaliber, das werde ich mal so uebernehmen
Also wenn ich das richtig verstehe kann ich sscanf nur in Verbindung mit anderen Kommandodingern nutzen wie ocmd oder dcmd?Die Assemblervariante gefaellt mir super!
Schade
Bin eigentlich super zufrieden mit der C SyntaxWeil wenn ich das richtig sehe kriege ich sonst kein params[] sondern nur cmdtext[] durch OnPlayerCommandText
Oder wenn ich mist Lage Re entschuldigt
Hat jemand eventuell ein Beispiel mit Strtok wie ich es hinkriege 2 oder mehr integer da rauszuholen aus einem Befehl ? -
Seitdem ich bei Register System mit anklickbaren Textdraws erstellt habe, funktioniert mein anderes SKinshop Textdraw nicht mehr. Jemand Idee wieso?
Und zwar dies hier...Code
Alles anzeigennew string[120]; if(clickedid == KKleidung1[playerid]){ if(Skins[playerid] < 0){ Skins[playerid] = 1; PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0); } Skins[playerid] --; SetPlayerSkin(playerid, Skins[playerid]); format(string, sizeof(string), "SKIN ID: %d", Skins[playerid]); TextDrawSetString(SkinIDInfo[playerid], string); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } else if(clickedid == KKleidung2[playerid]){ if(Skins[playerid] > 299){ Skins[playerid] = 298; PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0); } Skins[playerid] ++; SetPlayerSkin(playerid, Skins[playerid]); format(string, sizeof(string), "SKIN ID: %d", Skins[playerid]); TextDrawSetString(SkinIDInfo[playerid], string); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } return 1; } -
Who "Showst" du denn das Skin Textdraw?
-
Who "Showst" du denn das Skin Textdraw?
Hat ja alles funktioniert, solange ich mein Register System nicht mit anklickbaren Textdraws gemacht habe,.
Code
Alles anzeigenif (strcmp("/outfit", cmdtext, true, 10) == 0) { if(IsPlayerInRangeOfPoint(playerid,1,1295.4492,-1873.7307,13.5956)) { new stringo[190]; GetPlayerPos(playerid,XANTES[playerid],YANTES[playerid],ZANTES[playerid]); GetPlayerFacingAngle(playerid,AANTES[playerid]); VirtualWAN[playerid] = GetPlayerVirtualWorld(playerid); InteriorAN[playerid] = GetPlayerInterior(playerid); SetPlayerVirtualWorld(playerid, playerid+7341); SetPlayerCameraPos(playerid, 207.1526, -39.3834, 1002.8735); SetPlayerCameraLookAt(playerid, 207.5223, -38.4558, 1002.6689); SetPlayerPos(playerid,209.20, -34.24, 1001.93); SetPlayerFacingAngle(playerid, 180.0); SetPlayerInterior(playerid,1); Skins[playerid] = 1; KleidungA[playerid] = 1; KleidungB[playerid] = GetPlayerSkin(playerid); TextDrawShowForPlayer(playerid, KKleidung1[playerid]); TextDrawShowForPlayer(playerid, KKleidung2[playerid]); TextDrawShowForPlayer(playerid, Kleidung1); TextDrawShowForPlayer(playerid, Kleidung2); TextDrawShowForPlayer(playerid, SkinIDInfo[playerid]); format(stringo, sizeof(stringo), "SKIN ID: %d", Skins[playerid]); TextDrawSetString(SkinIDInfo[playerid], stringo); SelectTextDraw(playerid, 0xE60005FF); for(new i = 0; i < 10; i++){SCM(playerid, -1, "");} SCM(playerid, -1,"{FFFF00}* INFO: {FFFFFF}Tippe: {FFFF00}'/outfitnehmen' {FFFFFF}Um denn Skin zu nutzen."); SCM(playerid, -1,"{FFFF00}* INFO: {FFFFFF}Tippe: {FFFF00}'/outfitverlassen' {FFFFFF}Um das Geschäft zu verlassen."); return 1; } }
So sieht das alles aus bei OnPlayerClickTextdraw.. entferne ich das Anklickbare Register/Login System... geht der Skinshop wieder.Code
Alles anzeigenpublic OnPlayerClickTextDraw(playerid, Text:clickedid) { if(_:clickedid != INVALID_TEXT_DRAW) { if(clickedid == Login) //Anmelden { if(gPlayerAccount[playerid] == 1 && gPlayerLogged[playerid] == 0) { new string[800]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, MAX_PLAYER_NAME); format(string,sizeof(string),"{FFFFFF}Willkommen auf {0099FF}SOM Reallife!\n\n{0099FF}_____________________________________\n\n{0099FF}-Dein Name: {FFFFFF}%s\n\n{0099FF}-Forum: {FFFFFF}google.de\n\n{0099FF}-Account: {FFFFFF}Dein Account ist Registriert\n\n{0099FF}-Nutze dein {FFFFFF}Passwort\n\n{0099FF}_____________________________________",name); SPD(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbruch"); ClearChatbox(playerid,20); } else if(gPlayerAccount[playerid] == 0 && gPlayerLogged[playerid] == 0) { if(disablereg == true) { SCM(playerid, COLOR_GREY, "Die Registration ist zurzeit ausgeschaltet!"); Kick(playerid); return 1; } else { SPD(playerid,DIALOG_REG,DIALOG_STYLE_MSGBOX,"Account","Du benötigst einen Account, um auf diesem Server zu spielen!","Erstellen","Abbruch"); } CancelSelectTextDraw(playerid); ClearChatbox(playerid,20); } } else if(clickedid == Registration) //Registrieren { if(gPlayerAccount[playerid] == 1 && gPlayerLogged[playerid] == 0) { new string[80]; format(string,sizeof(string),"%s\nBitte logge dich ein.",SERVERNAME); SPD(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login",string,"Login","Abbruch"); ClearChatbox(playerid,20); } else if(gPlayerAccount[playerid] == 0 && gPlayerLogged[playerid] == 0) { if(disablereg == true) { SCM(playerid, COLOR_GREY, "Die Registration ist zurzeit ausgeschaltet!"); Kick(playerid); return 1; } else { SPD(playerid,DIALOG_REG,DIALOG_STYLE_MSGBOX,"Account","Willkommen! Nun kannst du dir einen Account Erstellen.","Erstellen","Abbruch"); } CancelSelectTextDraw(playerid); ClearChatbox(playerid,20); } } if(clickedid == Forum) { SPD(playerid, DIALOG_FORUM, DIALOG_STYLE_MSGBOX,"{0099FF}FORUM","{FFFFFF}Die Webseite ist {0099FF}Leer","OK",""); } if(clickedid == Teamspeak) { SPD(playerid, DIALOG_TS3, DIALOG_STYLE_MSGBOX,"{0099FF}TEAMSPEAK3","{FFFFFF}Die IP lautet {0099FF}Leer","OK",""); } if(clickedid == Raus) { SPD(playerid, DIALOG_TS3, DIALOG_STYLE_MSGBOX,"{0099FF}TEAMSPEAK3","{FFFFFF}Die IP lautet {0099FF}Leer","OK",""); } return 1; } new string[120]; if(clickedid == KKleidung1[playerid]){ if(Skins[playerid] < 0){ Skins[playerid] = 1; PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0); } Skins[playerid] --; SetPlayerSkin(playerid, Skins[playerid]); format(string, sizeof(string), "SKIN ID: %d", Skins[playerid]); TextDrawSetString(SkinIDInfo[playerid], string); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } else if(clickedid == KKleidung2[playerid]){ if(Skins[playerid] > 299){ Skins[playerid] = 298; PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0); } Skins[playerid] ++; SetPlayerSkin(playerid, Skins[playerid]); format(string, sizeof(string), "SKIN ID: %d", Skins[playerid]); TextDrawSetString(SkinIDInfo[playerid], string); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } return 1; } -
Wieso ist dein Skin-System bei OnPlayerClickTextdraw nicht in der if Abfrage inbegriffen? (Also die erste if Abfrage in dem public. (Kann sein dass das nur nicht richtig angezeigt wird bei mir, bin am Handy)
Also ich mein, wieso die geschweifte Klammer der ersten if Abfrage nach dem Register System schließt und nicht erst nach dem Skin-System unmittelbar vor der Schließung der geschweiften Klammer des Publics.
//Edit: ich denke der Auslöser des Problems ist das return am Ende der if-Klammer. Hierdurch wird das Public abgebrochen und das Script kommt gar nicht bis zum Skinsystem
-
Alles anzeigen
Wieso ist dein Skin-System bei OnPlayerClickTextdraw nicht in der if Abfrage inbegriffen? (Also die erste if Abfrage in dem public. (Kann sein dass das nur nicht richtig angezeigt wird bei mir, bin am Handy)
Also ich mein, wieso die geschweifte Klammer der ersten if Abfrage nach dem Register System schließt und nicht erst nach dem Skin-System unmittelbar vor der Schließung der geschweiften Klammer des Publics.
//Edit: ich denke der Auslöser des Problems ist das return am Ende der if-Klammer. Hierdurch wird das Public abgebrochen und das Script kommt gar nicht bis zum Skinsystem
Mein Denkfehler
Das war es. Funktioniert wieder alles. Danke.

