public CheckWeapon()
{
new i = 0,Weaps[13][2],_w = 0;
for(; i<MAX_PLAYERS; i++)
{
for (; _w < 13; _w++)
{
GetPlayerWeaponData(i, _w, Weaps[_w][0], Weaps[_w][1]);
printf("Weapon: %d / Ammo: %d",Weaps[_w][0],Weaps[_w][1]);
}
}
return 1;
}
Leider wird bei "Weapon" und "Ammo" immer 0 ausgegeben, obwohl ich Waffen besitze..
Hab ich was falsch gemacht?
[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
-
-
Hatte mir gerade einen kleinen Befehl gebastelt.
ocmd:checkwp(playerid,params[]){
new i=0,_w=0,Weapon[13][2];
for(;i<GetMaxPlayers();i++)for(;_w<13;_w++)GetPlayerWeaponData(i,_w,Weapon[_w][0],Weapon[_w][1]),printf("Weapon: %d | Ammo: %d",Weapon[_w][0],Weapon[_w][1]);
}
Ausgabe:Code[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 24 | Ammo: 500[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0
-
Hatte mir gerade einen kleinen Befehl gebastelt.
ocmd:checkwp(playerid,params[]){
new i=0,_w=0,Weapon[13][2];
for(;i<GetMaxPlayers();i++)for(;_w<13;_w++)GetPlayerWeaponData(i,_w,Weapon[_w][0],Weapon[_w][1]),printf("Weapon: %d | Ammo: %d",Weapon[_w][0],Weapon[_w][1]);
}
Ausgabe:Code[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 24 | Ammo: 500[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0[16:55:00] Weapon: 0 | Ammo: 0
Hilft leider nicht..Brauche es in nem Timer..
-
public CheckWeapon()
{
new Weaps[13][2];
for(new i = 0; i<MAX_PLAYERS; i++)
{
for (new _w; _w < 13; _w++)
{
GetPlayerWeaponData(i, _w, Weaps[_w][0], Weaps[_w][1]);
printf("Weapon: %d / Ammo: %d",Weaps[_w][0],Weaps[_w][1]);
}
}
return 1;
}So ist es richtig.
Enum: Dein Code tut nicht wenn du mehr als einen Spieler im Server hast, da sich "_w" nicht zu 0 zurücksetzt, daher funktioniert es immer nur für ID 0, sonst für keinen.
Und es ist entgegen allen Programmier-Regeln, seinen gesamten Code in eine Zeile zu schreiben, das macht kein Mensch, weil es absoluter Käse ist und außer dass es keiner lesen kann es nichts bringt. -
So ist es richtig.
Danke dir ,)
Hätte gedacht, es ist egal, wann man die Variable erstellt.. -
Und es ist entgegen allen Programmier-Regeln, seinen gesamten Code in eine Zeile zu schreiben, das macht kein Mensch, weil es absoluter Käse ist und außer dass es keiner lesen kann es nichts bringt.
Vergiss nicht zu erwähnen, dass man es tunlichst unterlassen sollte Funktionen als Schleifenbedingungen zu nutzen, sieht man leider viel zu oftErikSon: Nicht immer.
Hier sollte anzumerken sein, dass man die Variable _w auch wieder auf 0 setzen muss.Wenn man globale Variablen nutzt, hat man evtl irgendwann das Problem mit Überschneidungen, deswegen gibt es ja auch sowas wie "Ebenen"/Gültigkeitsbereiche in Programmier/Scriptsprachen
-
public CheckWeapon()
{
new Weaps[13][2];
for(new i = 0; i<MAX_PLAYERS; i++)
{
for (new _w; _w < 13; _w++)
{
GetPlayerWeaponData(i, _w, Weaps[_w][0], Weaps[_w][1]);
printf("Weapon: %d / Ammo: %d",Weaps[_w][0],Weaps[_w][1]);
}
}
return 1;
}So ist es richtig.
Enum: Dein Code tut nicht wenn du mehr als einen Spieler im Server hast, da sich "_w" nicht zu 0 zurücksetzt, daher funktioniert es immer nur für ID 0, sonst für keinen.
Und es ist entgegen allen Programmier-Regeln, seinen gesamten Code in eine Zeile zu schreiben, das macht kein Mensch, weil es absoluter Käse ist und außer dass es keiner lesen kann es nichts bringt.
Habs mir jetzt genau angeschaut..
Angeblich habe ich 2x eine Deagle, obwohl man die ja nur 1x haben kann ;P
Habe es ausgeben lassen, da stand dann:[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 24
[18:02:20] Waffe 0
[18:02:20] Waffe 29
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 0
[18:02:20] Waffe 24
Der fragt irgendwie auch viel zu viel ab..
Normalerweise solln es ja nur 13 sein, aber irgendwie sinds 27//E
Habe vergessen zu machen, dass es bei Bots nicht abgefragt wird, deswegen waren es mehr als 13
Also, jetzt nur noch das Problem, warum ich 2x Deagle habe -
public CheckWeapon()
{
new Weaps[13][2];
for(new i = 0; i<MAX_PLAYERS; i++)
{
for (new _w; _w < 13; _w++)
{
GetPlayerWeaponData(i, _w, Weaps[_w][0], Weaps[_w][1]);
printf("playerid: %d slot: %d Weapon: %d / Ammo: %d",i, _w, Weaps[_w][0],Weaps[_w][1]);
}
}
return 1;
}Lass es mal so laufen, und poste dann was im Log steht.
-
//E
Ne, klappt doch..
Irgendwie gerade bisl durcheinander.Habe jetzt nochmal gemacht, dass dann auch die Leute, die nicht connected sind, ausgeschlossen werden und jetzt klappts ,)
Danke dir! -
Wie macht man denn das die Gelben Kegel weg sind? Und das der Stunt Bonus weg ist und das der name weiß bei jedem spieler ist?
MFG
-
Gelber Kegel:
DisableInteriorEnterExits(); //OnGameModeInitStunt-Bonus:
EnableStuntBonusForAll(false); //OnGameModeInitSpieler-Farbe:
SetPlayerColor(playerid,-1); //OnPlayerConnect -
Gelber Kegel:
DisableInteriorEnterExits(); //OnGameModeInitStunt-Bonus:
EnableStuntBonusForAll(false); //OnGameModeInitSpieler-Farbe:
SetPlayerColor(playerid,-1); //OnGameModeInitDanke aber, bekomme einen ERROR.
C:\Users\****\Desktop\GTA Server\gamemodes\SM.pwn(48) : error 017: undefined symbol "playerid"
Zeile:
SetPlayerColor(playerid,-1); //Spieler TAB Farbe entfernenMFG
-
Du musst das SetPlayerColor unter OnPlayerConnect einfügen, mein Fehler, Sorry
-
Du musst das SetPlayerColor unter OnPlayerConnect einfügen, mein Fehler, Sorry
Danke
-
Hey, gibt es irgendeine Möglichkeit, abzufragen, ob der Spieler die Taste "R" drückt?
-
Hey, gibt es irgendeine Möglichkeit, abzufragen, ob der Spieler die Taste "R" drückt?
-
Hast du dir die Seite überhaupt mal angeschaut?
Da gibt es keine Taste "R", deswegen frage ich ja auch, ob es eine Möglichkeit gibt, die Taste abzufragen.. -
Ich bin mir nicht sicher aber ich glaube nicht, da man meines wissens nach keine Keys definieren kann.
-
Hast du dir die Seite überhaupt mal angeschaut?
Da gibt es keine Taste "R", deswegen frage ich ja auch, ob es eine Möglichkeit gibt, die Taste abzufragen..Wenn es dort kein R gibt dann gibt es wohl doch auch keine Möglichkeit oder?
-
Wenn es dort kein R gibt dann gibt es wohl doch auch keine Möglichkeit oder?
Könnte ja sein..
Aber ist egal, ich habe es mit meiner eigenen Lösung gemacht..
Es war für "Anti-AFK-Ghost" gedacht, jedoch hab ichs schon
Danke trotzdem!