Ich wollte mal fragen wie mann ein Tor scriptet was mit /tor auf geht und mit /tor wieder zu geht
Sufu oder die unzähligen Tuts angucken
Ich wollte mal fragen wie mann ein Tor scriptet was mit /tor auf geht und mit /tor wieder zu geht
Sufu oder die unzähligen Tuts angucken
1. Seit dem ich ein Anti-MoneyCheat drinnen habe speichert mein Geld i-wie nichtmehr x.x
Die Anti-MoneyCheat Defines:
#define GivePlayerMoneyEx(%0,%1) SetPVarInt(%0,"Money",GetPlayerMoneyEx(%0)+%1),GivePlayerMoney(%0,%1)
#define ResetPlayerMoneyEx(%0) SetPVarInt(%0,"Money",0),ResetPlayerMoney(%0)
#define GetPlayerMoneyEx(%0) GetPVarInt(%0,"Money")
dann das das Geld gesavet wird wenn der Spieler off geht:
dini_IntSet(save,"Geld",GetPlayerMoneyEx(playerid));
2.
Also ich hab mein /veh bisschen umgebastel das wenn locked auf 1 ist (/veh vehid farbe1 farbe2 locked)
das das Fahrzeug abgeschlossen wird aber bekomme diesen error...
error 035: argument type mismatch (argument 1)
Mein code:
dcmd_veh(playerid,params[])
{
if(loggedin[playerid] != true) return SCM(playerid,COLOR_WHITE,"SERVER: Du bist nicht eingeloggt!");
if(pInfo[playerid][admin] < 3) return SCM(playerid,COLOR_GREY,"Du bist kein Admin!");
new carid,color1,color2,locked;
if(sscanf(params,"diiz",carid,color1,color2,locked)) return SendClientMessage(playerid,COLOR_GREY,"Benutze: /veh [Fahrzeug ID] [Farbe 1] [Farbe 2] [Locked 0/1");
if(carid < 399 || carid > 612) return SCM(playerid,COLOR_GREY,"Inkorrekte AutoID");
if(color1 < 0 || color1 > 252) return SCM(playerid,COLOR_GREY,"Inkorrekte FarbID");
if(color2 < 0 || color2 > 252) return SCM(playerid,COLOR_GREY,"Inkorrekte FarbID");
new Float:X,Float:Y,Float:Z,Float:Angle, veh;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,Angle);
veh = CreateVehicle(carid,X,Y,Z,Angle,color1,color2,-1);
PutPlayerInVehicle(playerid,veh,0);
if(strcmp(locked,"1",true) == 0) //errorzeile
{
AutoSchloss[veh] = 1;
}
else {}
return 1;
}
/edit Eine Frage Hinzugefügt
welcher Zeile ist der Mismatch?
/edit:
Ich mag Directives irgendwie, doch was ist #error und #section. Über die 2 find ich keine gscheiten Erklärungen..
locked muss ein string sein.
dcmd_veh(playerid,params[])
{
if(loggedin[playerid] != true) return SCM(playerid,COLOR_WHITE,"SERVER: Du bist nicht eingeloggt!");
if(pInfo[playerid][admin] < 3) return SCM(playerid,COLOR_GREY,"Du bist kein Admin!");
new carid,color1,color2,locked[2];
if(sscanf(params,"diiz",carid,color1,color2,locked)) return SendClientMessage(playerid,COLOR_GREY,"Benutze: /veh [Fahrzeug ID] [Farbe 1] [Farbe 2] [Locked 0/1");
if(carid < 399 || carid > 612) return SCM(playerid,COLOR_GREY,"Inkorrekte AutoID");
if(color1 < 0 || color1 > 252) return SCM(playerid,COLOR_GREY,"Inkorrekte FarbID");
if(color2 < 0 || color2 > 252) return SCM(playerid,COLOR_GREY,"Inkorrekte FarbID");
if(locked < 0 || locked > 1) return SendClientMessage(playerid,COLOR_GREY,"Benutze: /veh [Fahrzeug ID] [Farbe 1] [Farbe 2] [Locked 0/1"); //error zeile
new Float:X,Float:Y,Float:Z,Float:Angle, veh;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,Angle);
veh = CreateVehicle(carid,X,Y,Z,Angle,color1,color2,-1);
PutPlayerInVehicle(playerid,veh,0);
if(strcmp(locked,"1",true) == 0)
{
AutoSchloss[veh] = 1;
}
else {}
return 1;
}
error:
error 033: array must be indexed (variable "locked")
Die Zeile:
if(locked < 0 || locked > 1) return SendClientMessage(playerid,COLOR_GREY,"Benutze: /veh [Fahrzeug ID] [Farbe 1] [Farbe 2] [Locked 0/1");
Wie hast du "locked" definiert ?
if(strcmp(locked,"1",true) && strcmp(locked,"0",true)) return SendClientMessage(playerid,COLOR_GREY,"Benutze: /veh [Fahrzeug ID] [Farbe 1] [Farbe 2] [Locked 0/1");
Habs jetzt so gemacht und es kahmen keine errors:
if(locked[1] < 0 || locked[1] > 1) return SendClientMessage(playerid,COLOR_GREY,"Benutze: /veh [Fahrzeug ID] [Farbe 1] [Farbe 2] [Locked 0/1]");
Habs jetzt getestet aber wenn ich jetzt "/veh 522 1 1" mache ist die NRG abgesperrt aber wenn ich dann "/veh 522 1 1 0" mache ist sie offen und bei 1 auch abgesperrt(wie es sein sollte)
wie mach ich das es dann wenn man locked einfach frei lässt die NRG nicht abgesperrt ist ?
ich bräuchte mal ne funktion die zb so aussieht:
stock GetPlayerVehicleSpeed(playerid,vehicleid,speed)
{
//hier die sachen rein die man dafür braucht
}
kann mir das jmd machen?
und am besten noch eine so:
stock SetPlayerVehicleSpeed(playerid,vehicleid,speed)
{
//hier die sachen rein die man dafür braucht
}
//edit oder wie berechnet man von GetVehicleVelocity in kmh um?
Hey,
Also ich habe jetzt eine Animation mit /pi(ssen) jedoch kommt da ja gar nichts raus
Habe auf NOVA gesehen, dass da auch was kommt
Hi,
bräuchte nochmal Hilfe.
error 006: must be assigned to an array
PlayerInfo[playerid][pChar1] = tmp;
Es ist ein Kommando, bei dem pChar1 auf tmp gesetzt wird. tmp ist in diesem Fall das, was der Spieler angegeben hat, z. B. /createchar Test_Test, dann soll tmp Test_Test sein. Ich hab es schon mit
strmid(PlayerInfo[playerid][pChar1], tmp, 0, strlen(cmdtext), 255);
versucht, aber dann ist pChar irgendwas wie 76 oder 81.
MfG
xXPhoenixXx
Mit format könnte es gehen, ich bin mir allerdings nicht sicher, ob ich dich richtig verstanden habe.
Zeig ma den enum zu Playerinfo wenns ein gibt, wie dort pChar1 initialisiert wird.
Hab aber auch nen eigenes Problem: Ist ein großes multidimensionaler Array (knapp 400 zeilen) besser als 4 kleine auf 100 zeilen? Unter dem Hintergrund, dass ich die Informationen in den Arrays benutze um Objekte zu erstellen.
Okay, ich habe versucht, ein Charaktersystem zu erstellen. Mit /createchar [Name] erstellt man sich einen Charakter, und wenn man das tut, dann soll PlayerInfo[playerid][pChar1] = [Name] sein. Hier mal das Kommando:
http://pastebin.com/Sh8S3u7D
EDIT: enum pInfo:
http://pastebin.com/1LbsrPd1
hast du iwo
new PlayerInfo[MAX_PLAYERS][pInfo];
?
Ja, das Script ist ein GF-Edit.
Hallo
Ich möchte die Autos die ich besitze, per Dialog anzeigen lassen. Dazu benutze ich eine for-Schleife, zähle durch und formatiere einen String. Kommt ein neues Auto dazu, nimm ich den "alten" String vorne rein (+Absatz). Jedoch geht das format so nie, die Test-SCM erscheinen
COMMAND:autos(playerid,params[])
{
#pragma unused params
SendClientMessage(playerid,COLOR_GREEN,"Test 0");
new string[150], autoamount = 0;
for(new vehicleid=1;vehicleid<MAX_VEHICLES;vehicleid++)
{
SendClientMessage(playerid,COLOR_GREEN,"Test 1");
if(!strcmp(VehicleSystem[IsBuyableCar[vehicleid]][Owner],PlayerName[playerid]))
{
new vehiclemodelid = GetVehicleModel(vehicleid);
new vehiclename = vehiclemodelid -400;
SendClientMessage(playerid,COLOR_GREEN,"Test 2");
//format(string,sizeof(string),"%s\n%d: %s",string,vehicleid,VehicleNames[vehiclename]);
autoamount ++;
}
}
SendClientMessage(playerid,COLOR_GREEN,"Test 3");
if(autoamount == 0) return SendClientMessage(playerid,COLOR_GREEN,"Du besitzt keine Fahrzeuge");
ShowPlayerDialog(playerid, AutoAnzeige, DIALOG_STYLE_MSGBOX,"Fahrzeuge", string,"Ok","Beenden");
return 1;
}
Edit Formatierung
Was genau geht nicht? Hast den string mal geprintet?
http://wiki.sa-mp.com/wiki/Strcat
Versuch's mal damit.
Also hab mal ein Befehl gemacht das man die Fahrstunde startet aber Error ...
Error:C:\Users\Public\Documents\Keybinder\WWR_Server\gamemodes\WWR.pwn(28656) : error 033: array must be indexed (variable "pTest")
Mfg, René