enum Weapons
{
AK47, // 0
M4, // 1
MP5, // 2
Deagle // 3
}
if(listitem[AK47])
// do smth
ist äquivalent zu
if(listitem[0])
// do smth
vorausgesetzt AK47 ist das erste Objekt in der Liste.
enum Weapons
{
AK47, // 0
M4, // 1
MP5, // 2
Deagle // 3
}
if(listitem[AK47])
// do smth
ist äquivalent zu
if(listitem[0])
// do smth
vorausgesetzt AK47 ist das erste Objekt in der Liste.
Ok danke
wie muss ich das reinkopieren?
OnFilterScriptInit -> OnGameModeInit
OnFilterScriptExit -> OnGameModeExit
Wie kann man ein Server Passwort auf den Sa-MP server machen? Muss man dafür irgendwas im Script ändern oder wo kann man das machen?
Mit freundlichen Grüßen
LukasLP
Nein. In der server.cfg das reinschreiben:
password DEINPASSWORT
ah, ok danke für die hilfe.
Mit freundlichen Grüßen
LukasLP
es gibt ja verschiedene Trailer (LKW-Anhänger). Die meisten können andere Motive annehmen (1 Trailer = 3Motive; zb: Werbung an den Seiten) und meine Frage dazu ist nun, ob man das Abfragen kann? Damit ich zum Beispiel Ladungen besser zuordnen kann.
Nein, das geht leider nicht.
Das liegt wohl auch daran, dass die Texttur nicht einheitlich für alle Spieler angezeigt wird. Das selbe Problem haben die Autos, bei denen ab und an ein Dach drauf ist, obwohl es ein Cabrio für einen anderen Spieler ist.
Wie lässt man einen Motor mit verzögerung starten?
Habe nun:
forward Motorstarten();
ocmd:motor(playerid,params[])
{
if(GetPlayerVehicleSeat(playerid) == 0)
{
new veh = GetPlayerVehicleID(playerid);
if(GetVehicleModel(veh) == 509 || GetVehicleModel(veh) == 481 || GetVehicleModel(veh) == 510) return SendClientMessage(playerid,WEIS,"Fahrräder besitzen keinen Motor.");
else if (Motor[veh] == false)
{
SetTimer("Motorstarten",2000,false,"i",playerid);
SendClientMessage(playerid,WEIS,"*Du drehst den Zündschlüssel herum, und lässt den Motor starten...*");
}
else
{
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(veh,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
SendClientMessage(playerid,ROT,"Motor wurde gestoppt.");
Motor[veh] = false;
}
}
return 1;
}
public Motorstarten()
{
new veh;
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
SendClientMessage(playerid,NEONGRUEN,"Motor wurde gestartet.");
Motor[veh] = true;
}
Es steht dann nur da Motor wurde Gestartet ![]()
Das dürfte gar nicht compilen weil du da einige Fehler hast.
SetTimer("Motorstarten",2000,false,"i",playerid);
kann keine Argumente an Funktionen übergeben und wird deshalb zu
SetTimerEx("Motorstarten",2000,false,"i",playerid);
Du übergibst einen Integer (playerid) als Argument obwohl die Funktion überhaupt keine Argumente annimmt, deshalb:
public Motorstarten(playerid)
{
new veh;
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
SendClientMessage(playerid,NEONGRUEN,"Motor wurde gestartet.");
Motor[veh] = true;
}
SetTimerEx("Motorstarten",2000,false,"i",playerid);
Alles anzeigenDas dürfte gar nicht compilen weil du da einige Fehler hast.
SetTimer("Motorstarten",2000,false,"i",playerid);
kann keine Argumente an Funktionen übergeben und wird deshalb zu
SetTimerEx("Motorstarten",2000,false,"i",playerid);
Du übergibst einen Integer (playerid) als Argument obwohl die Funktion überhaupt keine Argumente annimmt, deshalb:
public Motorstarten(playerid)
{
new veh;
GetVehicleParamsEx(veh,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(veh,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
SendClientMessage(playerid,NEONGRUEN,"Motor wurde gestartet.");
Motor[veh] = true;
}
Du solltest noch zu deinem post hinzufügen das der integer veh in der funktion Motorstart den wert 0 besitzt da die fahrzeugid des fahrzeuges in dem ein spieler sitzt diesem
nicht zugeordnet wird dies macht die funktion fehlerhaft.
Daher new veh =GetPlayerVehicleID (playerid);
oder die variante die ich präferieren würde einfach ein weiteres argument hinzufügen zur funktion, da dieser wert im befehl schon ausgrlesen wurde.
SetTimerEx("Motorstarten",2000,false,"ii",playerid, veh);
public Motorstarten (playerid, veh){
Mal ne kurze frage.
Habe diesen Teil funktzioniert alles Wunderbar:
new string[256];
format(string,30,"%s",dini_Get(File,"Befehle"));
strins(string, "|", strlen(string));
printf(string);
new oldi=0;
new count=0;
for(new i=0; i<strlen(string); i++)
{
if(string[i]=='|')
{
count++;
new tmpstring[sizeof(string)]; tmpstring=string;
strdel(tmpstring, i, strlen(tmpstring));
strdel(tmpstring, 0, oldi+1);
switch(count)
{
case 1: aa = strval(tmpstring);
case 2: bb = strval(tmpstring);
case 3: cc = strval(tmpstring);
case 4: dd = strval(tmpstring);
case 5: ee = strval(tmpstring);
case 6: ff = strval(tmpstring);
case 7: gg = strval(tmpstring);
case 8: hh = strval(tmpstring);
case 9: ii = strval(tmpstring);
case 10: jj = strval(tmpstring);
case 11: kk = strval(tmpstring);
case 12: ll = strval(tmpstring);
case 13: mm = strval(tmpstring);
}
oldi=i;
}
}
printf("%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d",aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll,mm);
Beim ersten Print läuft alles Wunderbar aber wie ihr seht beim zweiten wird aus der ersten 1 eine 0?
Sehe keinen Fehler ihr etwa?
Hier noch von der Serverlog der aussschnit:
[16:48:06] 1|1|1|1|1|1|1|1|1|1|1|1|1
[16:48:06] 0|1|1|1|1|1|1|1|1|1|1|1|1
Heyho,
Ich habe heute ein Interiour gemappt weit oben in der Luft so das kein Flugzeug ect dagegen fliegen kann. Nun habe ich aber das Problem das ich im script die Texturen änder aber ingame selber werden sie nicht geändert. Hier mal meine Code:
Oben im Script:
new awand[40];
Dann unter public OnGameModeInit() :
new awand[40], ib;
awand[ib]=CreateObject(19357,-1458.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(15)
awand[ib]=CreateObject(19357,-1460.2999268,2660.0000000,824.0000000,0.0000000,0.0000000,90.0000000); //amt 9570(21)
awand[ib]=CreateObject(19357,-1466.6998291,2660.0000000,824.0000000,0.0000000,0.0000000,90.0000000); //amt 9570(23)
awand[ib]=CreateObject(19357,-1469.8997803,2660.0000000,824.0000000,0.0000000,0.0000000,90.0000000); //amt 9570(24)
awand[ib]=CreateObject(19357,-1458.5000000,2660.0002441,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1460.1999512,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(32)
awand[ib]=CreateObject(19357,-1466.5000000,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(34)
awand[ib]=CreateObject(19357,-1469.6999512,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(35)
awand[ib]=CreateObject(19357,-1472.9000244,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(36)
awand[ib]=CreateObject(19357,-1476.0999756,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(37)
awand[ib]=CreateObject(19357,-1465.1999512,2658.3000488,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1465.1999512,2655.1000977,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1468.0000000,2666.5000000,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1468.0000000,2672.8999023,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1469.5999756,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(35)
awand[ib]=CreateObject(19357,-1472.8000488,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(35)
awand[ib]=CreateObject(19357,-1476.0000000,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(35)
awand[ib]=CreateObject(19357,-1468.0000000,2679.3000488,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1468.0000000,2682.5000000,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1447.5999756,2660.0000000,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (1)
awand[ib]=CreateObject(19357,-1450.8000488,2660.0000000,821.9000244,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (2)
awand[ib]=CreateObject(19357,-1450.8000488,2660.0000000,826.7999878,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (3)
awand[ib]=CreateObject(1649,-1450.8000488,2660.0000000,826.0000000,0.0000000,0.0000000,180.0000000); //object(wglasssmash) (1)
awand[ib]=CreateObject(19357,-1453.9000244,2660.0000000,824.0000000,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (5)
awand[ib]=CreateObject(19357,-1447.5999756,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (6)
awand[ib]=CreateObject(19357,-1449.0999756,2666.5000000,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (7)
awand[ib]=CreateObject(19357,-1449.0999756,2669.6999512,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (8)
awand[ib]=CreateObject(19357,-1449.0999756,2672.8999023,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (9)
awand[ib]=CreateObject(19357,-1450.5999756,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (10)
awand[ib]=CreateObject(19357,-1453.8000488,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (11)
awand[ib]=CreateObject(19357,-1457.0000000,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (12)
awand[ib]=CreateObject(19357,-1458.5000000,2672.8000488,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (13)
awand[ib]=CreateObject(19357,-1458.5000000,2669.6000977,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (14)
awand[ib]=CreateObject(19357,-1457.0999756,2660.0000000,824.0000000,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (15)
awand[ib]=CreateObject(19357,-1453.6999512,2677.6000977,826.9000244,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (33)
awand[ib]=CreateObject(19357,-1456.9000244,2677.6000977,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (28)
awand[ib]=CreateObject(19357,-1453.6999512,2677.6000977,821.7999878,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (30)
awand[ib]=CreateObject(19357,-1452.0000000,2679.3000488,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (31)
awand[ib]=CreateObject(19357,-1458.5000000,2679.3000488,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (32)
for(new i=0; i<sizeof(awand); i++) SetObjectMaterial(awand[i],1, 5168, "lashops6_las2", "yellow2_128", 0);
Ich bin schon alle Nummern durchgegangen hier:
for(new i=0; i<sizeof(awand); i++) SetObjectMaterial(awand[i],1, 5168, "lashops6_las2", "yellow2_128", 0);
Es wird einfach nix geändert
Hab ich was falsch gemacht?
Alles anzeigenMal ne kurze frage.
Habe diesen Teil funktzioniert alles Wunderbar:
new string[256];
format(string,30,"%s",dini_Get(File,"Befehle"));
strins(string, "|", strlen(string));
printf(string);
new oldi=0;
new count=0;
for(new i=0; i<strlen(string); i++)
{
if(string[i]=='|')
{
count++;
new tmpstring[sizeof(string)]; tmpstring=string;
strdel(tmpstring, i, strlen(tmpstring));
strdel(tmpstring, 0, oldi+1);
switch(count)
{
case 1: aa = strval(tmpstring);
case 2: bb = strval(tmpstring);
case 3: cc = strval(tmpstring);
case 4: dd = strval(tmpstring);
case 5: ee = strval(tmpstring);
case 6: ff = strval(tmpstring);
case 7: gg = strval(tmpstring);
case 8: hh = strval(tmpstring);
case 9: ii = strval(tmpstring);
case 10: jj = strval(tmpstring);
case 11: kk = strval(tmpstring);
case 12: ll = strval(tmpstring);
case 13: mm = strval(tmpstring);
}
oldi=i;
}
}
printf("%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d",aa,bb,cc,dd,ee,ff,gg,hh,ii,jj,kk,ll,mm);
Beim ersten Print läuft alles Wunderbar aber wie ihr seht beim zweiten wird aus der ersten 1 eine 0?
Sehe keinen Fehler ihr etwa?
Hier noch von der Serverlog der aussschnit:
[16:48:06] 1|1|1|1|1|1|1|1|1|1|1|1|1
[16:48:06] 0|1|1|1|1|1|1|1|1|1|1|1|1
Würde dir gerne helfen, ist allerdings ohne Kontext total schwer zu verstehen und sich in deine Lage zu versetzen. Vielleicht erklärst du auch etwas genauer warum es überhaupt zu einer weiteren print-Anweisung kommt? Ich sehe nur eine die dem Muster von unten entspricht.
Alles anzeigenHeyho,
Ich habe heute ein Interiour gemappt weit oben in der Luft so das kein Flugzeug ect dagegen fliegen kann. Nun habe ich aber das Problem das ich im script die Texturen änder aber ingame selber werden sie nicht geändert. Hier mal meine Code:
Oben im Script:
new awand[40];
Dann unter public OnGameModeInit() :
new awand[40], ib;
awand[ib]=CreateObject(19357,-1458.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(15)
awand[ib]=CreateObject(19357,-1460.2999268,2660.0000000,824.0000000,0.0000000,0.0000000,90.0000000); //amt 9570(21)
awand[ib]=CreateObject(19357,-1466.6998291,2660.0000000,824.0000000,0.0000000,0.0000000,90.0000000); //amt 9570(23)
awand[ib]=CreateObject(19357,-1469.8997803,2660.0000000,824.0000000,0.0000000,0.0000000,90.0000000); //amt 9570(24)
awand[ib]=CreateObject(19357,-1458.5000000,2660.0002441,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1460.1999512,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(32)
awand[ib]=CreateObject(19357,-1466.5000000,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(34)
awand[ib]=CreateObject(19357,-1469.6999512,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(35)
awand[ib]=CreateObject(19357,-1472.9000244,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(36)
awand[ib]=CreateObject(19357,-1476.0999756,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(37)
awand[ib]=CreateObject(19357,-1465.1999512,2658.3000488,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1465.1999512,2655.1000977,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1468.0000000,2666.5000000,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1468.0000000,2672.8999023,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1469.5999756,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(35)
awand[ib]=CreateObject(19357,-1472.8000488,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(35)
awand[ib]=CreateObject(19357,-1476.0000000,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //amt 9570(35)
awand[ib]=CreateObject(19357,-1468.0000000,2679.3000488,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1468.0000000,2682.5000000,824.0999756,0.0000000,0.0000000,0.0000000); //amt 9570(28)
awand[ib]=CreateObject(19357,-1447.5999756,2660.0000000,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (1)
awand[ib]=CreateObject(19357,-1450.8000488,2660.0000000,821.9000244,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (2)
awand[ib]=CreateObject(19357,-1450.8000488,2660.0000000,826.7999878,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (3)
awand[ib]=CreateObject(1649,-1450.8000488,2660.0000000,826.0000000,0.0000000,0.0000000,180.0000000); //object(wglasssmash) (1)
awand[ib]=CreateObject(19357,-1453.9000244,2660.0000000,824.0000000,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (5)
awand[ib]=CreateObject(19357,-1447.5999756,2664.8999023,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (6)
awand[ib]=CreateObject(19357,-1449.0999756,2666.5000000,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (7)
awand[ib]=CreateObject(19357,-1449.0999756,2669.6999512,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (8)
awand[ib]=CreateObject(19357,-1449.0999756,2672.8999023,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (9)
awand[ib]=CreateObject(19357,-1450.5999756,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (10)
awand[ib]=CreateObject(19357,-1453.8000488,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (11)
awand[ib]=CreateObject(19357,-1457.0000000,2674.3999023,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (12)
awand[ib]=CreateObject(19357,-1458.5000000,2672.8000488,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (13)
awand[ib]=CreateObject(19357,-1458.5000000,2669.6000977,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (14)
awand[ib]=CreateObject(19357,-1457.0999756,2660.0000000,824.0000000,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (15)
awand[ib]=CreateObject(19357,-1453.6999512,2677.6000977,826.9000244,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (33)
awand[ib]=CreateObject(19357,-1456.9000244,2677.6000977,824.0999756,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (28)
awand[ib]=CreateObject(19357,-1453.6999512,2677.6000977,821.7999878,0.0000000,0.0000000,90.0000000); //object(road_sfw11) (30)
awand[ib]=CreateObject(19357,-1452.0000000,2679.3000488,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (31)
awand[ib]=CreateObject(19357,-1458.5000000,2679.3000488,824.0999756,0.0000000,0.0000000,0.0000000); //object(road_sfw11) (32)
for(new i=0; i<sizeof(awand); i++) SetObjectMaterial(awand[i],1, 5168, "lashops6_las2", "yellow2_128", 0);
Ich bin schon alle Nummern durchgegangen hier:
for(new i=0; i<sizeof(awand); i++) SetObjectMaterial(awand[i],1, 5168, "lashops6_las2", "yellow2_128", 0);
Es wird einfach nix geändert
Hab ich was falsch gemacht?
new awand[40], ib;
"ib" wird deklariert und mit 0 initialisiert. Alle Objekte wandern in "awand[0]" und überschreiben sich immer gegenseitig. Deshalb wird maximal ein Objekt später geändert.
"ib" wird deklariert und mit 0 initialisiert. Alle Objekte wandern in "awand[0]" und überschreiben sich immer gegenseitig. Deshalb wird maximal ein Objekt später geändert.
Und wie kann ich das dann richtig machen? Weil ich habe keine lust bei ca 40 Objekten immer oben ein new zu erstellen und dann
awand1 = CreateObject(19398,-1452.0000000,2682.5000000,824.0999756,0.0000000,0.0000000,0.0000000);
SetObjectMaterial(awand1,1, 5168, "lashops6_las2", "yellow2_128", 0);
Kann man das irgendwie anderes machen?
Alles anzeigenWürde dir gerne helfen, ist allerdings ohne Kontext total schwer zu verstehen und sich in deine Lage zu versetzen. Vielleicht erklärst du auch etwas genauer warum es überhaupt zu einer weiteren print-Anweisung kommt? Ich sehe nur eine die dem Muster von unten entspricht.
Ich speichere mehrere Zahlen nebeneinader und die Prints sind nur zum Testen
Es wird so gespeichert: 1|1|1|1|1|1|1|1|1|1|1|1|1
Und wird auch wieder so geladen: 1|1|1|1|1|1|1|1|1|1|1|1|1
Aber dann lösche ich die "|" und speichere jede zahl so:
case 1: aa = strval(tmpstring);
case 2: bb = strval(tmpstring);
case 3: cc = strval(tmpstring);
case 4: dd = strval(tmpstring);
case 5: ee = strval(tmpstring);
case 6: ff = strval(tmpstring);
case 7: gg = strval(tmpstring);
case 8: hh = strval(tmpstring);
case 9: ii = strval(tmpstring);
case 10: jj = strval(tmpstring);
case 11: kk = strval(tmpstring);
case 12: ll = strval(tmpstring);
case 13: mm = strval(tmpstring);
Dann Printe ich mir die einzelnen Gespeicherten Sachen zum Testen.
Da wird dann aus der oben richtig geprinteten 1 eine 0.
Finde keinen Fehler und kann mir das nicht erklären.
Das ist meine Frage.
kleinkiko:
Da gibt es mehrere Möglichkeiten. Du könntest dir das Leben schwer machen indem du folgendes machst:
new SomeObjectArray[40];
SomeObjectArray[0] = CreateObject(...
SomeObjectArray[1] = CreateObject(...
SomeObjectArray[2] = CreateObject(...
...
Das mag natürlich niemand, ist unsauber und führt zu unwartbarem Code.
Ich würde das so machen:
new SomeObjectArguments[][7] = // Bin mir hier nicht ganz sicher ob das in PAWN möglich ist, also ob man die zweite Dimension eines Arrays explizit festlegen kann, ohne die erste zu bestimmen
{
{ 19357,-1458.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000 },
{ 19358,-1452.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000 },
{ 19359,-1451.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000 }
// Für jedes weitere Objekt fügst du hier die Koordinaten und den ganzen Shit ein, den die Funktion CreateObject erfordert
}
new SomeObjectArray[sizeof(SomeObjectArguments)];
for(new i; i < sizeof(SomeObjectArray); i++) // Loop durch jedes Objekt für das du die Argumente oben eingegeben hast
SomeObjectArray[i] = CreateObject(SomeObjectArguments[i][0], SomeObjectArguments[i][1], SomeObjectArguments[i][2], SomeObjectArguments[i][3], SomeObjectArguments[i][4], SomeObjectArguments[i][5], SomeObjectArguments[i][6]);
@ TheBlueFireKing:
Verstehe deine Frage leider immer noch nicht, es würde helfen wenn du den Kontext näher erklärst, wozu diese Funktion verwendet wird zum Beispiel.
Alles anzeigenkleinkiko:
Da gibt es mehrere Möglichkeiten. Du könntest dir das Leben schwer machen indem du folgendes machst:
new SomeObjectArray[40];
SomeObjectArray[0] = CreateObject(...
SomeObjectArray[1] = CreateObject(...
SomeObjectArray[2] = CreateObject(...
...
Das mag natürlich niemand, ist unsauber und führt zu unwartbarem Code.
Ich würde das so machen:
new SomeObjectArguments[][7] = // Bin mir hier nicht ganz sicher ob das in PAWN möglich ist, also ob man die zweite Dimension eines Arrays explizit festlegen kann, ohne die erste zu bestimmen
{
{ 19357,-1458.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000 },
{ 19358,-1452.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000 },
{ 19359,-1451.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000 },
// Für jedes weitere Objekt fügst du hier die Koordinaten und den ganzen Shit ein, den die Funktion CreateObject erfordert
}
new SomeObjectArray[sizeof(SomeObjectArguments)];
for(new i; i < SomeObjectArray; i++) // Loop durch jedes Objekt für das du die Argumente oben eingegeben hast
SomeObjectArray[i] = CreateObject(SomeObjectArguments[i][0], SomeObjectArguments[i][1], SomeObjectArguments[i][2], SomeObjectArguments[i][3], SomeObjectArguments[i][4], SomeObjectArguments[i][5], SomeObjectArguments[i][6]);
Aber wo kann ich nun da die Texture festlegen? Also welche Texture die Objekte bekommen
Und wie kann ich das dann richtig machen? Weil ich habe keine lust bei ca 40 Objekten immer oben ein new zu erstellen und dann
awand1 = CreateObject(19398,-1452.0000000,2682.5000000,824.0999756,0.0000000,0.0000000,0.0000000);
SetObjectMaterial(awand1,1, 5168, "lashops6_las2", "yellow2_128", 0);
Kann man das irgendwie anderes machen?
Hattest du mit der for-Schleife doch schon richtig gemacht, muss halt nur noch an meinen Code angepasst werden:
for(new i; i<sizeof(SomeObjectArray); i++)
SetObjectMaterial(SomeObjectArray[i],1, 5168, "lashops6_las2", "yellow2_128", 0);
Hattest du mit der for-Schleife doch schon richtig gemacht, muss halt nur noch an meinen Code angepasst werden:
for(new i; i<sizeof(SomeObjectArray); i++)
SetObjectMaterial(SomeObjectArray[i],1, 5168, "lashops6_las2", "yellow2_128", 0);
Bekomme 2 Errors
C:\Users\kleinkiko\Desktop\Map Server\gamemodes\Map.pwn(226 -- 227) : error 008: must be a constant expression; assumed zero
C:\Users\kleinkiko\Desktop\Map Server\gamemodes\Map.pwn(229) : error 033: array must be indexed (variable "SomeObjectArray")
Die Zeilen:
new SomeObjectArray[sizeof(SomeObjectArguments)];
for(new i; i < SomeObjectArray; i++) // Loop durch jedes Objekt für das du die Argumente oben eingegeben hast
SomeObjectArray[i] = CreateObject(SomeObjectArguments[i][0], SomeObjectArguments[i][1], SomeObjectArguments[i][2], SomeObjectArguments[i][3], SomeObjectArguments[i][4], SomeObjectArguments[i][5], SomeObjectArguments[i][6]);
for(new i; i<sizeof(SomeObjectArray); i++)
SetObjectMaterial(SomeObjectArray[i],1, 5168, "lashops6_las2", "yellow2_128", 0);
Hab alles in OnGameModeInit drin
new Float:SomeObjectArguments[][7] = // Bin mir hier nicht ganz sicher ob das in PAWN möglich ist, also ob man die zweite Dimension eines Arrays explizit festlegen kann, ohne die erste zu bestimmen
{
{ 19357.0,-1458.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000 },
{ 19358.0,-1452.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000 },
{ 19359.0,-1451.5000000,2666.4001465,824.0999756,0.0000000,0.0000000,0.0000000 }
// Für jedes weitere Objekt fügst du hier die Koordinaten und den ganzen Shit ein, den die Funktion CreateObject erfordert
};
for(new i; i < sizeof(SomeObjectArray); i++) // Loop durch jedes Objekt für das du die Argumente oben eingegeben hast
SomeObjectArray[i] = CreateObject(floatround(SomeObjectArguments[i][0], floatround_ceil), SomeObjectArguments[i][1], SomeObjectArguments[i][2], SomeObjectArguments[i][3], SomeObjectArguments[i][4], SomeObjectArguments[i][5], SomeObjectArguments[i][6]);
Sollte so klappen, hab das eben gecheckt.