ich würde dir empfehlen einen kleinen debug zu machen um zu schaun ob alles übereinstimmt
format(string,10,"%i",i);SendClientMessage..usw
denn mit so wenig code wird dir glaub keiner helfen können.
ich würde dir empfehlen einen kleinen debug zu machen um zu schaun ob alles übereinstimmt
format(string,10,"%i",i);SendClientMessage..usw
denn mit so wenig code wird dir glaub keiner helfen können.
du returnst 2x die 1 ...
also is der public komplett sinnlos,
public IsAMotorrad(carid)
{
new Model = GetVehicleModel(carid);
if(Model == 581 || Model == 522 || Model == 461 || Model == 521 || Model == 523 || Model == 463 || Model == 586 || Model == 468 || Model == 471){return 1;}
return 0;
}
new Text:Tacho_Box0[MAX_PLAYERS];
new Text:Tacho_Box1[MAX_PLAYERS];
new Text:Tacho_KMH[MAX_PLAYERS];
new Text:Tacho_Box2[MAX_PLAYERS];
new Text:Tacho_Zustand[MAX_PLAYERS];
new Text:Tacho_Tank[MAX_PLAYERS];
new Text:Tacho_Car[MAX_PLAYERS];
das limit für textdraws ist glaub ich schnell erreicht wenn man 500 slots hat..
7x500 = 3500 textdraws bei einem limit von 2048 ?
korrigiert mich wenn ich falsch liege..
man hätte wenigstens die box nicht für jeden spieler einzeln erstellen müssen.
bin schon enttäuscht das keiner dexter genannt hat.
das wird ein textdraw sein der bei ongamemodeinit geladen wird und bei onplayerconnect angezeigt wird.
http://wiki.sa-mp.com/wiki/TextDrawCreate
http://wiki.sa-mp.com/wiki/TextDrawShowForPlayer
1. müssen die objekte selbst erstellt werden.
2. http://wiki.sa-mp.com/wiki/SelectObject
3. http://wiki.sa-mp.com/wiki/OnPlayerSelectObject
http://wiki.sa-mp.com/wiki/SetPlayerPos
http://wiki.sa-mp.com/wiki/ApplyAnimation
den rest musste schon selber machen..
zumindest werd ich es nicht für dich machen
streamer included?
http://wiki.sa-mp.com/wiki/Animations
unter "GYMNASIUM" findest du die animationen.
also einfach position setzten aufm fahrrad oder sonst was und die animation ausführen.
und vielleicht noch unter onplayerkeystatechange fragen ob der die z.b. die taste sprinten drückt und wie oft und gegebenenfalls den fahrradskill +=1 pro drücken oder so.
welche zeile ist 37579?
habens auch grad getestet scheint zu klappen
kannst ja mal testen und falls es nicht klappt wieder melden^^
joa sieht doch schonmal ganz gut aus. du speicherst ja welche skins in einem team sind hier:
switch(classid)
{
case 0,1,2:klasse[playerid]=1; //Ballas
case 3,4,5:klasse[playerid]=2; //GSF
case 6,7,8:klasse[playerid]=3; // LSV
case 9,10,11:klasse[playerid]=4; //Russische Mafia
case 12,13,14:klasse[playerid]=5; //Aztecas
}
und dann frägst du unter /f ab ob die person im gleichen team ist hier:
if(klasse[playerid]!=klasse[i])continue; //bedeutet so viel wie falls i nicht im gleichen team ist wie playerid wird i übersprungen und es geht zum nächsten spieler weiter
was klappt denn nicht?
klar kann man das machen. es wurde ja schon genannt über mir. http://wiki.sa-mp.com/wiki/CallRemoteFunction
du brauchst nur im hauptscript einen public der den wert returnt und mit callremotefunction im filterscript empfangen und verwenden.
das ganze klappt auch andersrum
im hauptscript:
forward adminabfrage(playerid);public adminabfrage(playerid)
{
return si[playerid][Adminlevel];
}
im filterscript:
CallRemoteFunction("adminabfrage","i",playerid);
Unsinn wen du keine ahnung hast lass es einfach da in script es extra angelegt wurde wie soll dann ein filterscript auch mit playerinfo abfragen können das geht nicht!
oft.. -.-
ajo dann musste halt aussuchen welche skins im team 1 sind und welche in team 2 sind usw...
public OnPlayerRequestClass(playerid, classid)
{
switch(classid)
{
case 1,5,10:klasse[playerid]=1; //skin id 1,5 und 10 sind klasse 1
case 20..200:klasse[playerid]=2; // skin id 20 bis 200 sind klasse 2
}
return 1;
}
ajo hab ja gemeint musste anpassen
stringbert und stringbert2 sind bei mir globale strings die ich für alles verwende..
new stringbert[128],stringbert2[128];
und für sname(playerid) deinen eigenen stock einfügen um den spielernamen auszulesen oder wenn du keine funktion dafür hast mit GetPlayerName auslesen.
und info mit SendClientMessage austauschen..
ich bin mir nicht sicher da ich mit classid noch nie gerabeitet habe.. vlcht gibt es eine möglichkeit die classid auszulesen aber davon weiß ich nichts.
du könntest einen array oder pvar nutzen um die classid einzuspeichern und bei /f wieder abfragen.
new klasse[MAX_PLAYERS];
public OnPlayerRequestClass(playerid, classid)
{
klasse[playerid]=classid;
return 1;
}
ocmd:f(playerid,params[])
{
if(sscanf(params,"s",stringbert2))return info(playerid,"/f [Text]");
format(stringbert,sizeof(stringbert),"((( FChat: {FF9900}%s{FFFFFF}: %s )))",sname(playerid),stringbert2);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i))continue;
if(klasse[playerid]!=klasse[i])continue;
SendClientMessage(i,WEISS,stringbert);
}
return 1;
}
edit: bitte verbessern falls es eine besser möglichkeit gibt..
zudem würde ich dir raten mit switch/case zu arbeiten da es weniger zeilen und weniger auslastung hat als eine if/esle abfrage ..