Die hooks müssen ganz oben im Code stehen, vor der ersten Nutzung von GivePlayerMoney und GetPlayerMoney. Sonst geht es nicht.
Daher bietet es sich an, sie in eine Include zu schreiben, da die ja meistens ganz oben stehen.
[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
-
-
Wie schreibe ich mir ein Include ?
Mit freundlichen Grüßen
reaL. -
Kopiere eine vorhandene Include, benenne sie so wie sie heißen soll und füge deinen gewünschten Code dort ein.
Dann schreibe sie wie die anderen Includes oben in den Code. -
-
Ok das habe ich hinbekommen aber wie kriege ich jetze meine Varriable sInfo[playerid][Money] I
-
Setze die Deklaration und das enum von sInfo auch in die Include, ganz oben hin.
-
Dann bekomme ich diese Errors
C:\Users\Tobias\Desktop\Neues Script\gamemodes\script.pwn(125) : warning 201: redefinition of constant/macro (symbol "playerInfo")
C:\Users\Tobias\Desktop\Neues Script\gamemodes\script.pwn(130) : error 021: symbol already defined: "Money"
C:\Users\Tobias\Desktop\Neues Script\gamemodes\script.pwn(159) : error 021: symbol already defined: "sInfo"
C:\Users\Tobias\Desktop\Neues Script\gamemodes\script.pwn(1576) : error 032: array index out of bounds (variable "sInfo")
C:\Users\Tobias\Desktop\Neues Script\gamemodes\script.pwn(1594) : error 032: array index out of bounds (variable "sInfo")Include
Code
Alles anzeigen//Spieler enum enum playerInfo{ Money } new sInfo[MAX_PLAYERS][playerInfo]; //===================================================================================================================================================== //===================================================================================================================================================== //GivePlayerMoney stock my_GivePlayerMoney(playerid, betrag) { sInfo[playerid][Money] += betrag; printf("%d",sInfo[playerid][Money]); return GivePlayerMoney(playerid, betrag); } #if defined _ALS_GivePlayerMoney #undef GivePlayerMoney #else #define _ALS_GivePlayerMoney #endif #define GivePlayerMoney my_GivePlayerMoney
-
-
Ja aber ich speichere das ja im Normalen Gamemode
-
Wenn du deine Include so hast:
C
Alles anzeigen//Spieler enum enum playerInfo{ Money }; new sInfo[MAX_PLAYERS][playerInfo]; //===================================================================================================================================================== //===================================================================================================================================================== //GivePlayerMoney stock my_GivePlayerMoney(playerid, betrag) { sInfo[playerid][Money] += betrag; printf("%d",sInfo[playerid][Money]); return GivePlayerMoney(playerid, betrag); } #if defined _ALS_GivePlayerMoney #undef GivePlayerMoney #else #define _ALS_GivePlayerMoney #endif #define GivePlayerMoney my_GivePlayerMoney
dann kannst du die Funktionen (sowie sInfo) ebenfalls in deinem Gamemode verwenden, weil das oben im Gamemode ja mit eingebunden wird.
Das Enum playerInfo und die Deklaration sInfo musst du aus dem normalen Gamemode entfernen, weil du es ja bereits in deiner Include stehen hast. -
Ok das Funktioniert es wird geladen geprintet alles Richtig aber wenn ich habe ein Befehl gemacht wo ich den Spieler 500 Abziehe ingame geht das aber Geprintet wird das gleiche wie vorher
-
m_GivePlayerMoney(playerid,-500);
Wenn du das so schreibst, dann müsste von Money 500$ runter gehen. Wie sieht das bei dir denn aus? Also, was steht in Money für ein Wert, was tippst du als Zahl ein (was abgezogen werden soll) und was wird dann geprintet? -
Beitrag von reaL. ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Funktioniert jetze (). -
-
Nein, das ist ja der Sinn des Hooks, dass er GivePlayerMoney nutzen kann bzw. muss.
-
Ich habe das isinfo genannt damit ich die nicht immer in der Include ändern muss so habe ich das nur im Include das Money
Es Funktioniert jetze so
Mit freundlichen Grüßen
reaL. -
Wie kann ich bei einem Dialog MSG Style Box bestimmte Parts nur für bestimmte Leute anzeigen lassen? Sprich Admin Level 1 sieht nur Admin Level 1 befehle, Admin Level 2 sieht Admin Level 1-2 etc..
-
Nach dem Prinzip:
new string[256];
if(SpielerInfo[playerid][Level] >= 1)
{
format(string, sizeof(string), "%s/help, /info\n", string);
}
if(SpielerInfo[playerid][Level] >= 2)
{
format(string, sizeof(string), "%s/jail, /kick\n", string);
}
if(SpielerInfo[playerid][Level] >= 3)
{
format(string, sizeof(string), "%s/ban, /banall\n", string);
} -
Huh, warum wird mir Ingame kein Dialog angezeigt
CMD:acmds(playerid) {
new string[2048];
{
if(pData[playerid][P_Admin] < 1) return
SendClientMessage(playerid, COLOR_RED, LV_Fail);
}
if(pData[playerid][P_Admin] >= 1)
{
format(string, sizeof(string), "%s{FF8000}/mute /unmute /kick /watch /reports /fixvw\n", string);
}
if(pData[playerid][P_Admin] >= 2)
{
format(string, sizeof(string), "%s{FF8000}/ban /unban /searchban /cuffed /aka /clearchat /hide\n", string);
}
if(pData[playerid][P_Admin] >= 3)
{
format(string, sizeof(string), "%s{FF8000}/banoff /slap /explode /cuff /uncuff /startmap /randommap\n", string);
}
if(pData[playerid][P_Admin] >= 4)
{
format(string, sizeof(string), "%s{FF8000}/lastunbans /announce\n", string);
}
if(pData[playerid][P_Admin] >= 5)
{
format(string, sizeof(string), "%s{FF8000}/savepos /gotopos /setskin /jetpack /givegun /vehicle /givevehicle /silentmode\n", string);
}
if(pData[playerid][P_Admin] >= 6)
{
format(string, sizeof(string), "%s{FF8000}/website /clearaka /changename /lock /tpgun\n", string);
}
if(CheckAccesName(playerid))
{
format(string, sizeof(string), "%s{FF0000}/giveweed /setleveloff /setlevel /exitmode /forcecmd /fakechat", string);
}
ShowPlayerDialog(playerid, D_AdminCmds, DIALOG_STYLE_MSGBOX, "Admin Commands", "", "Close", "");
return 1;
} -
ShowPlayerDialog(playerid, D_AdminCmds, DIALOG_STYLE_MSGBOX, "Admin Commands", "", "Close", "");
Zu
ShowPlayerDialog(playerid, D_AdminCmds, DIALOG_STYLE_MSGBOX, "Admin Commands", string, "Close", "");