Ja sizeof(tInfo[]) ist Quatsch, du willst sizeof(BagItems) und lösche das =1...ich wiederhole: Arrays starten bei 0.
#Handy
Ja sizeof(tInfo[]) ist Quatsch, du willst sizeof(BagItems) und lösche das =1...ich wiederhole: Arrays starten bei 0.
#Handy
Bei diesem Code fallen mir so viele komische Dinge auf, dass ich mich frage, wieso du nicht erst einmal die Basics mehr lernst...
Aber wie gesagt, der Fehler liegt in der Schleife. Du greifst auf einen Index zu, der nicht existiert.
Moin wieder mal ne frage ich habe das problem das ich dem spieler eine kettensäge gegeben habe aber wie kann ich nun nur die kettensäge entfernen ohne ihm alle waffen zu nehmen?
stock RemovePlayerWeapon(playerid, weaponid)
{
new plyWeapons[13],plyAmmo[13];
for(new slot,wep,ammo; slot < 13; slot++)
{
GetPlayerWeaponData(playerid, slot, wep, ammo);
if(wep != weaponid)
{
plyWeapons[slot] = wep, plyAmmo[slot] = ammo;
}
}
ResetPlayerWeapons(playerid);
for(new slot; slot < 13; slot++)
{
GivePlayerWeapon(playerid, plyWeapons[slot], plyAmmo[slot]);
}
}
//Zum Entfernen der Kettensäge dann einfach:
RemovePlayerWeapon(playerid, WEAPON_CHAINSAW);
Alles anzeigen
Wie erstellst du denn das Objekt?
Wieso gibst du dir nicht mehr Parameter aus? Dann wurdest du merken, dass BULLET_HIT_TYPE_PLAYER_OBJECT aufgerufen wird, da es sich bei "dynamic Objekten" bzw Streamer Objekten immer um Player Objekte handelt.
printf("%d|%d|%d|%d|%.02f|%.02f|%.02f",playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
Alternativ kannst du auch OnPlayerShootDynamicObject nehmen.
Kannst den Code vereinfachen und so Redundanzen vermeiden:
if(IsPlayerAtAnyJob(playerid,jid))
{
static const tDiagID[] = {DIALOG_FISCHERJOB, DIALOG_CITYJOB, DIALOG_LOGISTICJOB, DIALOG_OELJOB};
new jobstring[64];
format(jobstring,sizeof(jobstring),"Hier arbeiten!\nVerdienst:\t%d$",sInfo[playerid][paycheck][jid]);
ShowPlayerDialog(playerid,tDiagID[jid-1],DIALOG_STYLE_TABLIST,jobnames[jid],jobstring,"ENTER","X");
SetPVarInt(playerid,"StateChange",1);
SetTimerEx("StateChangeTimer",2000,false,"i",playerid);
return 1;
}
Alles anzeigen
Die Frage ist, wie und wo du sInfo[playerid][paycheck] setzt und dem einen Wert gibst
Empfehle dir auf YouTube Finanzfluss (für generelle Investments & Krypto)
Und für mehr theoretische (auch oft subjektive) Ansichten den Blocktrainer auf YouTube
Vielen Dank aber was bedeutet dieses EOS
EOS steht für End Of String und prüft quasi, ob dass '\0' ist.
Ist also ein String leer, ist das erste Zeichen der NULL-Charakter.
Das ist quasi eine schnelle Methode zu prüfen, ob ein String leer ist.
So muss er nicht strlen aufrufen xD
Mal als Tipp, so Funktionen die man immer mal wieder benötigt, wie die Prüfung, ob der Spieler wirklich an seinem Haus ist (welches einem gleich noch die HausID zurückliefert) schön kapseln und in Funktionen auslagern.
Hier bietet es sich an bissl mit Pointern zu spielen:
ocmd:lockhouse(playerid,params[])
{
if(!HavePlayerAnyHouse(playerid)) return SendClientMessage(playerid,-1,"Du besitzt kein Haus");
if(!IsPlayerAtAnyHouseEnter(playerid)) return SendClientMessage(playerid,-1,"Du stehst an keinem Eingang");
new i;
if(!IsPlayerAtOwnHouse(playerid, i)) return SendClientMessage(playerid,-1,"Dies ist nicht dein Haus!");
SendClientMessage(playerid,-1,(hInfo[i][h_lock] ?("Haus aufgeschlossen"):("Haus abgeschlossen")));
hInfo[i][h_lock] = !hInfo[i][h_lock]; // Das ist ein Trick, dadurch wird 1 zu 0 und 0 zu 1 :D
saveHouse(i);
UpdateHouse(i);
return 1;
}
// Liefert 1 zurück, wenn er an seinem eigenen Haus ist + man erhält den HausIndex zurück
stock IsPlayerAtOwnHouse(playerid, &hID)
{
for(new i; i<sizeof(hInfo); i++)
{
if((IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_outx],hInfo[i][h_outy],hInfo[i][h_outz]) || IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_inx],hInfo[i][h_iny],hInfo[i][h_inz])) &&
hInfo[i][h_owner][0] != EOS &&
!strcmp(hInfo[i][h_owner],getPlayerName(playerid),true))
{
hID = i;
return 1;
}
}
return 0;
}
Alles anzeigen
ich stehe auf dem schlauch warum fragt er hier nicht ab ob er an einem dieser punkte steht ?
Kannst du uns ein bisschen mehr Code zeigen?
Gibt auch k<vehicle> als sscanf Parameter, dadurch kann man modelID oder Name angeben
Infos bei: https://ysi.fandom.com/wiki/SSCANF_2.8.1
Wie man so einen Generator programmiert bzw. gibt es sowas in der Art auch schon zum Downloaden/Kaufen?
Also es gibt viele Websiten, die sowas anbieten:
Custom star map creation tool. High-resolution star maps for your art or product
Die Frage die ich mir stelle ist, anscheinend willst du es ja nicht einmal unbedingt selbst programmieren, also was genau suchst du? 😅
Und worum geht es dir?
Also ist die Akkurarität der Sternzeichen wichtig oder geht es dir nur darum, dass sie dargestellt werden?
Oder geht es dir nur um die Sterne und den Himmel?
Etwas präziser wonach du genau suchst, wäre hilfreich und in wenn du es programmieren magst bzw Hilfe magst, in welcher Sprache?
wenns den klimawandel gibt ist das bestimmt so aber ganz glaube ich nicht daran weil temperatur hat sich schon immer verändert sonst hätte es nie eine eiszeit gegeben dowaist
Ja, aber es ist ein großer Unterschied, ob das über einen Zeitraum von 100mio Jahren passiert, oder 100 Jahren.
Auch sehr sehr komisch, dass man das alles berechnen kann und CO2 zufällig genau diesen Effekt hat, den man vorhergesagt hat. Hmmm, bestimmt nur reiner Zufall. Auch nur reiner Zufall, dass das wissenschaftlicher Konsens ist.
Soooo viele Zufälle. Rauchen ist sicherlich auch nicht schädlich, das sagen auch nur diese Mainstream Medien. Die wollen einfach nur nicht, dass wir gesund alt werden!!!
Dass die Erde eine Kugel ist, sagen auch nur diese Mainstream Medien, gesteuert von der NASA. Die wollen nur nicht, dass wir erfahren, dass die Erde flach ist. Das liegt nur daran, dass die Mainstream Medien aus Reptiloiden bestehen und uns steuern wollen mit ihren fake news!
Aber wir bleiben Standhaft!!! Und darauf erstmal unsere Hymne anstimmen:
GUCCI Irgendwie habe ich das Gefühl, dass du entweder das Video nicht verstanden hast oder es nicht verstehen willst.
Diese Branche wusste bereits vor 60 Jahren, dass es den Klimawandel gibt und welche Auswirkungen das auf unseren Planeten hat.
Sie haben nicht nur aktiv nichts dagegen unternommen, sondern sogar noch Ablenkungskampagnen gestartet die alles verschleiern und Verwirrung stiften.
Es sind nicht die Individualpersonen die sich hinterfragen müssen, sondern diese Konzerne & Lobbyisten müssen in die Mangel genommen werden.
Naja aber was ist dann mit
Junge das ist eine Prognose, was in 30 Jahren erreicht sein will.
Um das 1.5 Grad Ziel einhalten zu können müssten wir ab heute schon Net Zero sein + Co² aus der Luft holen.
2050 ist einfach so gute 20 Jahre zu langsam.
Bitte korrigiere mich wenn ich was falsch verstanden habe?
Hast das Video denn auch zu Ende geschaut?
Ab Minute 7 sagen die das doch alles, was du sagst. Ab Minute 8 sagen sie dann, dass sie zwar in Erneuerbare investieren, aber halt nur 5%. Ist halt lächerlich.
Das sind zwei Jungs aus den niederlanden und die beiden recherchieren eigentlich immer gründlich, also die sind mit SIcherheit vertrauenswürdig.
& GUCCI Ja, stimmt schon, dass die zu Funk gehören, aber was hat das mit "vertrauenswürdig" zu tun?
Schau dir doch mal die Videobeschreibung an, dort findest du sämtliche Quellen und Belge...
Man muss nichts können, man muss einfach nur mal ein bisschen Klug sein und nicht immer den Mist auf andere schieben. Denn damit fährt man tatsächlich besser. Vorallem in der heutigen Zeit.
Grundsätzlich ist es natürlich richtig sich an die eigene Nase zu fassen.
ABER ich drop jetzt einfach mal dieses Video:
Ich denke dann wird mein ABER relativ deutlich.