[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
-
-
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_GivePlayerMoneydann 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", ""); -
Beitrag von reaL. ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Fail (). -
Hi, wieso funktioniert mein Achievement System nicht? Alles funktioniert außer der Double und Tripplekill.
Man muss innerhalb 4 oder 8 Sekunden 2 oder 3 Kills machen um das Achievement zu erledigen.DoubleKill[killerid] = gettime() + 4;
TripleKill[killerid] = gettime() + 8;// Double and Triple Kill :
if(Spree[killerid] >= 2 && DoubleKill[killerid] < gettime() && pData[killerid][A_Double_Kill] == 0) {
pData[killerid][A_Double_Kill] = 1;
SendClientMessage(killerid, COLOR_GREEN, ">> You have completed a new Achievement{FF0000} Double Kill {33DD11}congrats <<");
}
else if(Spree[killerid] >= 3 && TripleKill[killerid] < gettime() && pData[killerid][A_Tripe_Kill] == 0) {
pData[killerid][A_Tripe_Kill] = 1;
SendClientMessage(killerid, COLOR_GREEN, ">> You have completed a new Achievement{FF0000} Tripple Kill {33DD11}congrats <<");
} -
Bist du denn auch innerhalb der 4 / 8 Sekunden?

