habs jetzt unter ongamemodeinit gemacht...
und i zu v gemacht... klappt jetzt alles
danke leute
Beiträge von Meisternuke
-
-
error 017: undefined symbol "i"
bei SetVehicleNumberPlate -
ich habs jetzt so:
MEDICCars[0] = AddStaticVehicle(563,1607.4973,1804.1997,31.1757,358.7224,3,1);
MEDICCars[1] = AddStaticVehicle(416,1604.8182,1838.4856,10.9064,268.8970,1,3);
MEDICCars[2] = AddStaticVehicle(416,1615.3304,1838.5038,10.9708,269.1812,1,3);
MEDICCars[3] = AddStaticVehicle(416,1615.3219,1832.3921,10.9711,270.1326,1,3);
MEDICCars[4] = AddStaticVehicle(416,1604.7510,1832.3698,10.9711,269.6634,1,3);
MEDICCars[5] = AddStaticVehicle(598,1633.1672,1840.6040,10.5638,90.3097,3,1);
MEDICCars[6] = AddStaticVehicle(598,1633.3455,1825.5991,10.5666,89.1082,3,1);
for(new v=0;v<sizeof(MEDICCars);v++)
{
SetVehicleNumberPlate(v,"LVMD");
}
aber trotzdem ist ingame das nummernschild noch gleich: -
wo genau muss ich das einfügen?
also
for(new v=0;v<sizeof(MEDICCars);v++)
{
SetVehicleNumberPlate(v,"LVMD");
} -
geht das nicht auch das ich das auch nur einmal machen muss?
alsoSetVehicleNumberPlate(MEDICCars[irgendwas],"LVMD");
??
-
MEDICCars[0] = AddStaticVehicle(563,1607.4973,1804.1997,31.1757,358.7224,3,1);
MEDICCars[1] = AddStaticVehicle(416,1604.8182,1838.4856,10.9064,268.8970,1,3);
MEDICCars[2] = AddStaticVehicle(416,1615.3304,1838.5038,10.9708,269.1812,1,3);
MEDICCars[3] = AddStaticVehicle(416,1615.3219,1832.3921,10.9711,270.1326,1,3);
MEDICCars[4] = AddStaticVehicle(416,1604.7510,1832.3698,10.9711,269.6634,1,3);
MEDICCars[5] = AddStaticVehicle(598,1633.1672,1840.6040,10.5638,90.3097,3,1);
MEDICCars[6] = AddStaticVehicle(598,1633.3455,1825.5991,10.5666,89.1082,3,1);wie mache ich das die obenstehenden autos ein nummernschild erhalten mit LVMD
-
kevin... danke =D
Der Beitrag ist zu kurz. Der Beitrag muss mindestens 15 Zeichen lang sein und 6 Wörter enthalten.
-
Habe hier einen "GiveWanted" befehl:
ocmd:gw(playerid,params[])
{
if(!Fraktion(playerid,1||2))return SendClientMessage(playerid,ROT,"Du bist kein Mitglied des LVPD!");
new pID, reason[128],string[128];
if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,0xFFFF00FF,"/gw [ID] [Grund]");
if(Wanteds(pID,10))return SendClientMessage(playerid,ROT,"Der Spieler kann keine Wanteds mehr erhalten");
format(string,sizeof(string),"Du hast %s Wanteds gegeben. Grund: %s",Spielername(pID),reason);
SendClientMessage(playerid,0xFF9000FF,string);
format(string,sizeof(string),"Du hast von %s Wanteds bekommen. Grund: %s",Spielername(playerid),reason);
SendClientMessage(pID,0xFF9000FF,string);
SetPVarInt(playerid,"Wanteds",GetPVarInt(pID,"Wanteds")+1);Wantedstern = TextDrawCreate(587.000000, 104.000000, "]");
TextDrawBackgroundColor(Wantedstern, 255);
TextDrawFont(Wantedstern, 2);
TextDrawLetterSize(Wantedstern, 0.589999, 2.200000);
TextDrawColor(Wantedstern, -65281);
TextDrawSetOutline(Wantedstern, 1);
TextDrawSetProportional(Wantedstern, 1);Wantedzahl = TextDrawCreate(573.000000, 103.000000, GetPVarInt(playerid,"Wanteds");
TextDrawBackgroundColor(Wantedzahl, -65281);
TextDrawFont(Wantedzahl, 1);
TextDrawLetterSize(Wantedzahl, 0.559999, 2.499999);
TextDrawColor(Wantedzahl, 65535);
TextDrawSetOutline(Wantedzahl, 1);
TextDrawSetProportional(Wantedzahl, 1);
return 1;
}Textdraw Wantedstern ist der Stern
und Wantedzahl ist die Anzahl von Wanteds[maximal 10]
aber irgendwie funktioniert das nicht...
der stern soll nur da sein, wenn der spieler 1-10 wanteds hat, bei 0 keine...
und die zahl bei 0 weg und bei 1-10 halt die wantedanzahl aus der Datei auslesen, kann mir wer da weiterhelfen -
habe nun hier meinen /pay befehl:
ocmd:pay(playerid,params[])
{
new pID, gID, string[128];
if(gID > 0 && GetPlayerMoney(playerid) >= gID)
{
SendClientMessage(playerid,0xffffff,"Du hast nicht genügend Geld auf der Hand!");
return 1;
}
if(gID < 0 || gID > 100000) return SendClientMessage(playerid,ROT,"Du kannst nur maximal 100.000$ übergeben!");
if(sscanf(params, "ud",pID,gID))return SendClientMessage(playerid,ROT,"/pay [ID/Name] [money]");
if (!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht online");
if (pID == playerid)return SendClientMessage(playerid,ROT,"Du kannst dir selber kein Geld geben!");
if (ProxDetectorS(5.0, playerid, pID))
{
format(string,sizeof(string), "%s hat dir %d$ gegeben",Spielername(playerid), gID);
format(string,sizeof(string), "Du hast %s %d$ gegeben",Spielername(pID),gID);
SendClientMessage(pID,ORANGE, string);
SendClientMessage(playerid,ORANGE,string);
GivePlayerMoney(pID,gID);
GivePlayerMoney(playerid,-gID);
}
else
{
SendClientMessage(playerid,ROT,"Du musst näher ran!");
}
return 1;
}alles funktioniert, nur 1 nicht...
wenn ich 10k auf der hand hab, und einem anderen 20k gebe, komme ich ins minus..
kann mir wer helfen?
ansonsten einfach befehl aus euerm script schicken, wo es funktioniert, wäre auch nett, danke schonmal -
sonst nix ändern? also bei dem forward oder dem public?
-
hier mein heal [ID] befehl für medics... alles ist gut, der Spieler wird geheilt usw...
doch entweder startet der timer nicht, oder der timer ruft den public nicht auf, kann wer helfen?ocmd:heal(playerid,params[])
{
if(!Fraktion(playerid,3))return SendClientMessage(playerid,ROT,"Du bist kein Medic!");
new pID, string[128];
if(sscanf(params,"u",pID))return SendClientMessage(playerid, ROT, "Benutze: /heal [ID]");
if(Heal[playerid] == 1)return SendClientMessage(playerid, ROT, "Du kannst erst wieder nach 60 Sekunden heilen!");
if(pID == playerid) return SendClientMessage(playerid, ROT, "Du kannst dich nicht selbst heilen!");
new Float:health;
GetPlayerHealth(playerid,health);
if(health < 100)
if (pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,ROT,"Spieler nicht gefunden");
if (ProxDetectorS(3.0, playerid, pID))
{
SetPlayerHealth(pID, 100);
GivePlayerMoney(pID, -500);
GivePlayerMoney(playerid, 500);
Heal[playerid] = 1;
SetTimer("Healfrei", 60000,false);
format(string,sizeof (string),"Du wurdest von %s für 500$ geheilt!",Spielername(playerid));
SendClientMessage(pID,ORANGE,string);
format(string,sizeof (string),"Du hast %s für 500$ geheilt!",Spielername(pID));
SendClientMessage(playerid, ORANGE,string);
SendClientMessage(playerid, ORANGE,"Du kannst erst in 60 Sekunden jemanden heilen!");
}
else
{
SendClientMessage(playerid, ROT, "Du musst näher ran!");
}
return 1;
}forward Healfrei(playerid);
public Healfrei(playerid)
{
Heal[playerid] = 0;
return true;
} -
jo ähhm.. egal welchen betrag ich eingebe... es koommt immer Du hast nicht so viel Geld auf der Hand!... egal ob mit dem vom Vinnii oder dir xivo
-
alles funktioinert sehr gut... bis auf das, das ich so viel geld geben kann, das ich auch ins minus gehe...
wie umgehe ich das, daif(GetPlayerMoney(playerid) <= gID)return SendClientMessage(playerid,ROT,"Du hast nicht so viel Geld auf der Hand!");
nicht geht...ocmd:pay(playerid,params[])
{
new pID, gID, string[128];
if(GetPlayerMoney(playerid) <= gID)return SendClientMessage(playerid,ROT,"Du hast nicht so viel Geld auf der Hand!");
if(sscanf(params, "ud",pID,gID))return SendClientMessage(playerid,ROT,"/pay [ID/Name] [money]");
if (!IsPlayerConnected(pID))return SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht online");
if (pID == playerid)return SendClientMessage(playerid,ROT,"Du kannst dir selber kein Geld geben!");
format(string,sizeof(string), "%s hat dir %d$ gegeben",Spielername(playerid), gID);
format(string,sizeof(string), "Du hast %s %d$ gegeben",Spielername(pID),gID);
SendClientMessage(pID,ORANGE, string);
SendClientMessage(playerid,ORANGE,string);
GivePlayerMoney(pID,gID);
GivePlayerMoney(playerid,-gID);
return 1;
} -
wie mache ich es das zb bei cp 10/20 eine meldung kommt, fast geschaft und zb bei 18... noch 2 Checkpoints?
oder wie kann ich eine bustour machen, wobei bei jedem checkpoint eine andere haltestelle angezeigt wird...bsp. SendClientMessage(playerid,ORANGE,"Haltestelle: XYZ LS");
hier aus meinem script:
public OnPlayerEnterCheckpoint(playerid)
{
if(Praxis[playerid][pmi_bAktiv])
{
Praxis[playerid][pmi_Checkpoint]++;
DisablePlayerCheckpoint(playerid);
new playercp = Praxis[playerid][pmi_Checkpoint];
if(playercp == sizeof(Praxis_Punkte))
{
Praxis[playerid][pmi_bAktiv]=false;
SendClientMessage(playerid,GELB,"Bestanden!!!");
RemovePlayerFromVehicle(FSAutos[playerid]);
DestroyVehicle(FSAutos[playerid]);
SetPlayerVirtualWorld(playerid,0);
SetPlayerPos(playerid,1174.3204,1350.9961,10.9219);
SetPlayerWorldBounds(playerid,20000,-20000,20000,-20000);
SetPVarInt(playerid,"Fuehrerschein",1);
SpielerSpeichern(playerid);
}
else
{
SetPlayerCheckpoint(playerid,Praxis_Punkte[playercp][P_fX],Praxis_Punkte[playercp][P_fY],Praxis_Punkte[playercp][P_fZ],Praxis_Punkte[playercp][P_fRad]);
}
return 1;
}
return 1;
} -
ich hab jetzt mal alles im script wo SetPlayerInterior ist mit // gemacht...
nur noch goto und gethere... aber es funktioniert trotzdem nicht...
vllt könnte mal jemand bei mir schauen, teamviewer oder sonstiges -
habe hier 2 befehle:
ocmd:gethere(playerid,params[])
{
if(!Admin(playerid,2))return SendClientMessage(playerid,ROT,"Du bist kein Admin [2]");
new pID, string[128];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutze: /gethere [ID]");
SetPlayerInterior(pID, GetPlayerInterior(playerid));
SetPlayerVirtualWorld(pID, GetPlayerVirtualWorld(playerid));
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
SetPlayerPos(pID,X,Y,Z);
format(string,sizeof string,"Admin: %s dich zu sich geportet!",Spielername(playerid));
SendClientMessage(pID,BLAU,string);
format(string, sizeof string,"Du hast %s zu dir geportet!",Spielername(pID));
SendClientMessage(playerid,BLAU,string);
return 1;
}ocmd:goto(playerid,params[])
{
if(!Admin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin [1]");
new pID;
if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutze: /goto [ID]");
SetPlayerInterior(playerid, GetPlayerInterior(pID));
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(pID));
new Float:X,Float:Y,Float:Z;
GetPlayerPos(pID,X,Y,Z);
SetPlayerPos(playerid,X,Y,Z);
return 1;
}aber egal ob ich /goto oder /gethere mache.. mein interior/virtuelle welt, bzw, des spielers wird nicht geändert.
Woran liegt es? -
... d = zahl
s = buchstaben.. right?danke
-
ocmd:spawnc(playerid,params[])
{
if(!Admin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin [1]");
{
new cID, string[128];
if(sscanf(params,"u",cID))return SendClientMessage(playerid,GELB,"Benutze /spawnc [Carid]");
{
format(string,sizeof string,"Auto %s wurde neu gespawnt!",cID);
SendClientMessage(playerid,BLAU,string);
SetVehicleToRespawn(cID);
}
}
return 1;
}
Ich möchte das das auto mit der eingegebenen id respawnt wird...
ingame kommt aber nur: Auto y wurde neu gespawnt!
wo hab ich hier einen fehler?hab jetzt aus dem if(sscanf(params,"u",cID))
if(sscanf(params,"i",cID))
gemacht... jetzt respawnt alles einwandfrei...
aber der text ist nun so:
Auto wurde neu gespawnt! -
ganz oben:
//gates
new LVPDGate[1],LVPDGateH[1],SWATGate[2];Unter OnGameModeInit:
LVPDGate[0] = CreateObject(971,2335.15014648,2444.10009766,7.17587233,0.00000000,0.00000000,60.00000000); //object(subwaygate) (1)
LVPDGateH[0] = CreateObject(971,2293.88623047,2499.27758789,5.74178362,0.00000000,0.00000000,270.00000000); //object(subwaygate) (3)
SWATGate[0] = CreateObject(988,2251.19140625,2500.58471680,3.21131253,0.00000000,0.00000000,270.00000000); //object(ws_apgate) (1)
SWATGate[1] = CreateObject(988,2251.19140625,2495.16357422,3.21131253,0.00000000,0.00000000,270.00000000); //object(ws_apgate) (2)unter OnPlayerCommandText:
if(strcmp("auf", cmdtext, true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 20, 2335.15014648,2444.10009766,7.17587233))
{
if(Fraktion(playerid,1)||Fraktion(playerid,2))
{
MoveObject(LVPDGate[0],2335.14941406,2444.09960938,0.20571980,4);
SendClientMessage(playerid,BLAU,"Tor zur LVPD-Garage geöffnet");
SetTimer("LVPDGatezuruck", 8000, false);
return true;
}
}
if(IsPlayerInRangeOfPoint(playerid, 20, 2293.88623047,2499.27758789,5.74178362))
{
if(Fraktion(playerid,1)||Fraktion(playerid,2))
{
MoveObject(LVPDGateH[0],2293.88574219,2499.27734375,11.05909061,4);
SendClientMessage(playerid,BLAU,"Hintertor zur LVPD-Garage geöffnet");
SetTimer("LVPDGateHzuruck", 8000, false);
return true;
}
}
if(IsPlayerInRangeOfPoint(playerid, 20, 2251.19140625,2497.87414551,3.21131253))
{
if(Fraktion(playerid,2))
{
MoveObject(SWATGate[0],2251.19140625,2506.16308594,3.21131253,4);
MoveObject(SWATGate[1],2251.19140625,2511.58398438,3.21131253,4);
SendClientMessage(playerid,BLAU,"Tor zur SWAT-Garage geöffnet");
SetTimer("SWATGatezuruck", 8000, false);
return true;
}
}und dann i-wo unten:
forward LVPDGatezuruck();
public LVPDGatezuruck()
{
MoveObject(LVPDGate[0],2335.15014648,2444.10009766,7.17587233, 4);
return true;
}
forward LVPDGateHzuruck();
public LVPDGateHzuruck()
{
MoveObject(LVPDGateH[0],2293.88623047,2499.27758789,5.74178362, 4);
return true;
}
forward SWATGatezuruck();
public SWATGatezuruck()
{
MoveObject(SWATGate[0],2251.19140625,2500.58471680,3.21131253, 4);
MoveObject(SWATGate[1],2251.19140625,2495.16357422,3.21131253, 4);
return true;
}Egal ob ich Fraktion 1 oder Fraktion 2 bin... es passiert bei /auf nix... keine nachricht, keine bewegung, bitte um Hilfe...
ps: hab es auch schon mit else if(IsPlayerInRangeOfPoint... versucht...
bitte um schnelle hilfe//e
ohhgott bin ich blöd..
bei [pwn]if(strcmp("auf", cmdtext, true) == 0)
/ vergessen... -
noch schnell was anderes...
wie kann ich checken ob der spieler aussteigt?