also macht es keinen unterscheid. googe mal den unterschied ist für mich keine erklärung sondern eher ein versuch sich besser aussehen zu lassen.
Beiträge von Tround
-
-
sry aber ich hab da kein überblick wie dein busystem funktioniert-.-
aber das sieht für mich falsch aus.
wird das unter onplayerentercheckpoint aufgerufen? vlcht kannste mal ein bisschen mehr zeilen posten. (am besten ganzen public) -
mit einer schleife durch alle spieler gehen und abfragen ob sie im bus sitzen.
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(GetPlayerVehicleID(i)==bus)
{
SendClientMessage(playerid,....
}
}
} -
public OnPlayerText(playerid, text[])
{
ChatLog(playerid, text);
return 1;
}
stock ChatLog(playerid, text[])
{
new File:lFile=fopen("Logs/chat.txt",io_append),logData[250],fyear,fmonth,fday,fhour,fminute,fsecond;
getdate(fyear,fmonth,fday);
gettime(fhour,fminute,fsecond);
format(logData,sizeof(logData),"[d/d/d d:d:d] %s: %s \r\n",fday,fmonth,fyear,fhour,fminute,fsecond,SpielerName(playerid),text);
fwrite(lFile, logData);
fclose(lFile);
return 1;
}
google ftwe: falls du noch keinen spielernamenstock hast hier:
stock SpielerName(playerid)
{
new sn[MAX_PLAYER_NAME];
GetPlayerName(playerid,sn,sizeof sn);
return sn
} -
Ich würde eine boolean Variable verwenden.
hat das einen bestimmten grund oder nur aus lust und laune?
ich versteh nicht warum man freiwillig bools verwenden willob man jetzt 0/1 schreibt oder true/false macht doch eigtl keinen unterschied.
bei bools muss man nur mehr schreiben -
haste auch spiegelung in deinem mat.1 angeschaltet ?
damit es richtige spiegelungen hat brauchste auch eine helle fläche/licht am himmel damit spiegelungen auch zum vorschein kommen.
auf den winkel sollte man auch achten damit man die helle fläche/licht in deinem text sehen kann. -
einfach eine variable setzten und beim an/ausschalten auf 1/0 setzen.
dann beim /ooc befehl abfrage wie die variable steht.new oocanaus;
ocmd:ooc(playerid,params[])
{
if(istadmin...
{
if(oocanaus==0)
{
oocanaus=1;
}
else
{
oocanaus=0;
}
}
return 1;
}
ocmd:o(playerid,params[])
{
if(oocanaus==0)
{
if(istadmin==0)
{
SendClientMessage(playerid,ROT,"Der ooc ist ausgeschaltet!");
}
else
{
SendClientMessageToAll...
}
}
else
{
SendClientMessageToAll...
}
return 1;
} -
kein ding
wir fangen alle mal an
-
SpielerInfo[playerid][sAlter]=strval(inputtext);
-
stock IsNumeric(const string[]) //By Jan "DracoBlue" Schütze (edited by Gabriel "Larcius" Cordes
{
new length=strlen(string);
if(length==0)
{
return 0;
}
for (new i=0; i<length; i++)
{
if (!((string[i] <= '9' && string[i] >= '0') || (i==0 && (string[i]=='-' || string[i]=='+'))))
{
return 0;
}
}
return 1;
}
ins script oder in eine include einfügen dann klappts auch -
um zu überprufen ob etwas eingegeben wurde kannste if(!strlen(inputtext))return... verwenden.
um zu überprüfen ob eine zahl eingegen wurde kannste if(!IsNumeric(inputtext))return .. verwenden.
um die zahl abzuspeichern musste eine globale variable erstellen: new dialogzahl;
um die zahl einzuspeichern ein einfaches = verwenden: dialogzahl=strval(inputtext) ... inputtext wird durch strval in ein integer gemacht.edit: IsNumeric kannste in der uf.inc finden: http://wiki.sa-mp.com/wiki/Useful_Functions
-
du hast das ganze unter
#if defined FILTERSCRIPTdefiniert daher wird es nicht erkannt. da du filterscript nicht definiert hast.
da du einen gamemode machst kannste die ganzen zeilen mit filterscript auch löschen.#include <a_samp>
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}public OnGameModeExit()
{
return 1;
}public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}public OnPlayerConnect(playerid)
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Bitte gib ein Passwort ein","Registrieren","Abbrechen");
return 1; } -
SPECIAL_ACTION_NONE oder 0
http://wiki.sa-mp.com/wiki/SpecialActions -
wie ich finde hattest du unnötige klammern.. obs daran liegt weiss ich nicht :
ocmd:r(playerid,params[])
{
new ftext[128];
if(sscanf(params,"s",ftext))return SendClientMessage(playerid,COLOR_RED,"Benutzung: /radio [Text]");
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_RED,"Du bist in keinem Wagen mit Funkempfang!");
if(Player[playerid][Team]==0)return SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Fraktion!");
new leader = Player[playerid][Leader];
new member = Player[playerid][Team];
new sendername[MAX_PLAYER_NAME];//hier war kleiner fehler
new string[128];
GetPlayerName(playerid,sendername,sizeof(sendername));
if(member==2||leader==2)
{
if(Player[playerid][Rank]==0) { format(string, sizeof(string), ">> Praktikant %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==1) { format(string, sizeof(string), ">> Zivildienstleistender %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==2) { format(string, sizeof(string), ">> Rettungshelfer %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==3) { format(string, sizeof(string), ">> Rettungssanitäter %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==4) { format(string, sizeof(string), ">> Rettungsassistent %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==5) { format(string, sizeof(string), ">> Auszubildender Arzt %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==6) { format(string, sizeof(string), ">> Ausgebildeter Arzt %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==7) { format(string, sizeof(string), ">> Notarzt %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==8) { format(string, sizeof(string), ">> Notarzt || %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==9) { format(string, sizeof(string), ">> Stellv. Oberarzt %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==10) { format(string, sizeof(string), ">> Oberarzt %s: %s.", sendername, ftext); }
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][Team] == 2)
{
SendClientMessage(i, COLOR_FCHAT, string);
}
}
}
}
else if(member==1||leader==1)//haste das hier 2x drin?
{
if(Player[playerid][Rank]==1) { format(string, sizeof(string), ">> Praktikant %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==1) { format(string, sizeof(string), ">> Wachtmeister %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==2) { format(string, sizeof(string), ">> Hauptwachtmeister %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==3) { format(string, sizeof(string), ">> Kommissar %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==4) { format(string, sizeof(string), ">> Hauptkomissar %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==5) { format(string, sizeof(string), ">> Assistent Spectre %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==6) { format(string, sizeof(string), ">> Spectre %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==7) { format(string, sizeof(string), ">> Spectre in Charge %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==8) { format(string, sizeof(string), ">> Supervisory Spectre %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==9) { format(string, sizeof(string), ">> Stellv. Polizeidirektor %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==10) { format(string, sizeof(string), ">> Polizeidirektor %s: %s.", sendername, ftext); }
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][Team] == 1)
{
SendClientMessage(i, COLOR_FCHAT, string);
}
}
}
}
else if(member==1||leader==1)//?
{
if(Player[playerid][Rank]==1) { format(string, sizeof(string), ">> Praktikant %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==1) { format(string, sizeof(string), ">> Wachtmeister %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==2) { format(string, sizeof(string), ">> Hauptwachtmeister %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==3) { format(string, sizeof(string), ">> Kommissar %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==4) { format(string, sizeof(string), ">> Hauptkomissar %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==5) { format(string, sizeof(string), ">> Assistent Spectre %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==6) { format(string, sizeof(string), ">> Spectre %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==7) { format(string, sizeof(string), ">> Spectre in Charge %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==8) { format(string, sizeof(string), ">> Supervisory Spectre %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==9) { format(string, sizeof(string), ">> Stellv. Polizeidirektor %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==10) { format(string, sizeof(string), ">> Polizeidirektor %s: %s.", sendername, ftext); }
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][Team] == 1)
{
SendClientMessage(i, COLOR_FCHAT, string);
}
}
}
}else if(member==13||leader==13)
{
if(Player[playerid][Rank]==1) { format(string, sizeof(string), ">> Praktikant %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==1) { format(string, sizeof(string), ">> Praktikant %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==2) { format(string, sizeof(string), ">> Bauarbeiter %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==3) { format(string, sizeof(string), ">> Abschlepper %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==4) { format(string, sizeof(string), ">> Baustellen Leiter %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==5) { format(string, sizeof(string), ">> Co Leiter %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==6) { format(string, sizeof(string), ">> Geschäftsleiter %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==7) { format(string, sizeof(string), ">> Geschäftsführer %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==8) { format(string, sizeof(string), ">> Geschäftsführer %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==9) { format(string, sizeof(string), ">> Geschäftsführer %s: %s.", sendername, ftext); }
else if(Player[playerid][Rank]==10) { format(string, sizeof(string), ">> Geschäftsführer %s: %s.", sendername, ftext); }
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][Team] == 13)
{
SendClientMessage(i, COLOR_FCHAT, string);
}
}
}
}
else if(member==5||leader==5)
{
if(Player[playerid][Rank]==1) { format(string, sizeof(string), "** Azubi %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==1) { format(string, sizeof(string), "** Azubi %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==2) { format(string, sizeof(string), "** Fahrer %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==3) { format(string, sizeof(string), "** Bodyguard %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==4) { format(string, sizeof(string), "** Leibwache %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==5) { format(string, sizeof(string), "** Stellv. Präsident %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==6) { format(string, sizeof(string), "** Präsident %s: %s. )) **", sendername, ftext); }
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][Team] == 5)
{
SendClientMessage(i, COLOR_FCHAT, string);
}
}
}
}
else if(member==3||leader==3)
{
if(Player[playerid][Rank]==1) { format(string, sizeof(string), "** Azubi %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==1) { format(string, sizeof(string), "** Azubi %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==2) { format(string, sizeof(string), "** Agent %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==3) { format(string, sizeof(string), "** Special Agent %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==4) { format(string, sizeof(string), "** Geheimagent %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==5) { format(string, sizeof(string), "** Co FBI-Direktor %s: %s. )) **", sendername, ftext); }
else if(Player[playerid][Rank]==6) { format(string, sizeof(string), "** FBI-Direktor %s: %s. )) **", sendername, ftext); }
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][Team] == 3)
{
SendClientMessage(i, COLOR_FCHAT, string);
}
}
}
}
else
{
SendClientMessage(playerid,COLOR_RED,"Du gehörst keiner staatlichen Fraktion an!");
}
return 1;
} -
Tround, schlau.
Ich habe gesagt ich habe viel versucht!
Aber immer versagt.
woran scheiterts denn? kannst ja mal das zeigen was bisher gemacht hast -
bei onplayerdisconnect mit GetPlayerPos die koordinaten auslesen und in die ini speichern.
dann beim connecten ins enum oder pvars laden und bei onplayerspawn verwenden. -
hab mal ein bisschen gegoogelt. habe aber leider gar nichts gefunden zu soda.inc . kann auch sein das ich mich geirrt habe.
habe dafür etwas anderes gefunden seif_machines.inc ... leider ist der original thread tot und man kann die include nicht mehr laden. aber habe die include einem einem thread hier im deutschen forum gefunden.
doo .. ist zwar eine alte include aber vlcht funktionierts ja noch -
soda.inc ist dafür gemacht damit man gemappte getränkeautomaten benutzen kann. hab ich zumindest so in erinnerung
-
habe mal ein "bisschen" rumprobiert da mich das thema auch interessiert. habe viele sachen probiert doch es ist alles nicht so das wahre.
hier die beste möglichkeit die ich gefunden habe.
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define RELEASED(%0) \
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid)&&GetPlayerVehicleSeat(playerid)==0&&GetVehicleModel(GetPlayerVehicleID(playerid))==407)
{
if(PRESSED(KEY_FIRE))TogglePlayerControllable(playerid,0);
else if(RELEASED(KEY_FIRE))TogglePlayerControllable(playerid,1);
}
return 1;
}
wie gesagt nicht optimal aber es erfüllt sein zweck. -
ich würde es nicht mit SendClientMessage ausgeben da es dort ein zeichenlimit von 128 gibt. (oder in mehrere nachrichten aufteilen)
lass es am besten in einem Dialog anzeigen.#define DIALOG_SCHEINE 1
format(string,sizeof(string),"{B9008C}Autoschein: {FFFFFF}%s\n {B9008C}MotorradSchein: {FFFFFF}%s\n {B9008C}Flugschein: {FFFFFF}%s\n{B9008C}LKW-Schein: {FFFFFF}%s\n{B9008C}Bootschein: {FFFFFF}%s\n{B9008C}LS-Pass: {FFFFFF}%s\n{B9008C}SF-Pass: {FFFFFF}%s\n{B9008C}LV-Pass: {FFFFFF}%s\n{B9008C}Personalausweis: {FFFFFF}%s ",carlic,bikelic,fluglic,lkwlic,bootlic,lspass,sfpass,lvpass,persolic);
ShowPlayerDialog(playerid,DIALOG_SCHEINE,DIALOG_STLYE_MSGBOX,"Scheine",string,"Ok","");