Helló, 1 hónap pihenés és kevés fejlesztgetés után újból elkezdtem írni a filterscriptemet. Egy olyat akartam megoldani, hogy két helyen használom a SelectObjectet és végül OnPlayerSelectDynamicObjectnél ketté osztom a feladatoknak megfelelõen, és honnan tudhatom, hogy melyiket kellene elvégezze? Megadtam egy globális bool változónak egy igaz értéket kettõ között az eggyiknél és az OnPlayerSelectDynamicObjectnél pedig if-el lekérdeztem ha a bool változó értéke igaz akkor teljesítsen az elsõnek, ellentétben pedig a másikat teljesítse. Ez oké is, a parancsnál jó a bool változó a selectnél is lefut, viszont a végén hiába igaz az elsõ, ha a másodikkal kezdem mindíg azt teljesíti és így van ez fordítva is.
A részek:
CMD:om(playerid,params[])
{
print(\" A parancsnal a bool lefut (om) \");
ShowPlayerDialog(playerid,DIALOG_2,DIALOG_STYLE_MSGBOX,\"Használat\",\"Az object másolása igen egyszerû, kilépés után ki kellesz válaszd melyik objectet akarod másolni, majd beállítod, mint az object editelésénél a helyét\",\"OK\",\"\");
return 1;
}
CMD:oe(playerid,params[])
{
teszt[playerid] = true;
print(\" A parancsnal a bool lefut (oe) \");
ShowPlayerDialog(playerid,DIALOG_3,DIALOG_STYLE_MSGBOX,\"Használat\",\"Az objectek editelése egyszerû feladat. Elõször válaszd ki az objectet amelyiket editelni akarod, majd a grafikus felületen szabd kedvedre!\",\"OK\",\"\");
return 1;
}
Ahol megadtam a bool változót. (Most nem írnám ki a dialogot mert abba amúgy is egy SendClientMessage + a SelectObject van mindkettõnél)
public OnPlayerSelectDynamicObject(playerid, objectid, modelid, Float:x, Float:y, Float:z)
{
if(teszt[playerid] == true)
{
print(\" A selectnel a bool lefut (oe) \");
SendClientMessage(playerid, -1, \" Sikeresen kiválasztottad az objectet, mostmár editelheted\");
EditDynamicObject(playerid,objectid);
}
if(teszt[playerid] == false)
{
print(\" A selectnel a bool lefut (om) \");
new Float: rx, Float: ry, Float:rz, WorldID, IntID, objid;
GetPlayerPos(playerid,x,y,z);
IntID = GetPlayerInterior(playerid);
WorldID = GetPlayerVirtualWorld(playerid);
objid = CreateDynamicObject( modelid, Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,WorldID,IntID, -1, 200.0);
EditDynamicObject(playerid, objid);
}
return 1;
}
És az OnPlayerSelectDynamicObjectnél az elválasztás.
És a végeredmény:
Én több megoldást is próbáltam, két bool-al is, és hasonlók de eggyik se mûkött. Remélem valaki választ tud adni problémára, nagyon hálás lennék érte. Ha alternatív megoldásokat tudtok amivel ugyan ezt érem el azt is szívesen meghallgatom és kipróbálom. Elõre is köszönöm szépen.